@@ -610,7 +610,7 @@ export function queryLogsVolume<TQuery extends DataQuery, TOptions extends DataS
610610 options : any
611611) : Observable < DataQueryResponse > {
612612 const timespan = options . range . to . valueOf ( ) - options . range . from . valueOf ( ) ;
613- const intervalInfo = getIntervalInfo ( logsVolumeRequest . scopedVars , timespan ) ;
613+ const intervalInfo = getIntervalInfo ( timespan , 400 ) ;
614614
615615 logsVolumeRequest . interval = intervalInfo . interval ;
616616 logsVolumeRequest . scopedVars . __interval = { value : intervalInfo . interval , text : intervalInfo . interval } ;
@@ -754,32 +754,36 @@ const MINUTE = 60 * SECOND;
754754const HOUR = 60 * MINUTE ;
755755const DAY = 24 * HOUR ;
756756
757- function getIntervalInfo ( scopedVars : ScopedVars , timespanMs : number ) : { interval : string ; intervalMs ?: number } {
758- if ( scopedVars . __interval_ms ) {
759- let intervalMs : number = scopedVars . __interval_ms . value ;
760- let interval = '' ;
761- // below 5 seconds we force the resolution to be per 1ms as interval in scopedVars is not less than 10ms
762- if ( timespanMs < SECOND * 5 ) {
763- intervalMs = MILLISECOND ;
764- interval = '1ms' ;
765- } else if ( intervalMs > HOUR ) {
766- intervalMs = DAY ;
767- interval = '1d' ;
768- } else if ( intervalMs > MINUTE ) {
769- intervalMs = HOUR ;
770- interval = '1h' ;
771- } else if ( intervalMs > SECOND ) {
772- intervalMs = MINUTE ;
773- interval = '1m' ;
774- } else {
775- intervalMs = SECOND ;
776- interval = '1s' ;
777- }
778757
779- return { interval, intervalMs } ;
758+ function getIntervalInfo ( timespanMs : number , resolution : number ) : { interval : string ; intervalMs ?: number } {
759+ let intervalMs = timespanMs / resolution ;
760+ let interval = '' ;
761+
762+ // below 5 seconds we force the resolution to be per 1ms as interval in scopedVars is not less than 10ms
763+ if ( timespanMs < SECOND * 5 ) {
764+ intervalMs = MILLISECOND ;
765+ interval = '1ms' ;
766+ } else if ( intervalMs > HOUR ) {
767+ intervalMs = DAY ;
768+ interval = '1d' ;
769+ } else if ( intervalMs > 10 * MINUTE ) {
770+ intervalMs = HOUR ;
771+ interval = '1h' ;
772+ } else if ( intervalMs > MINUTE ) {
773+ intervalMs = 10 * MINUTE ;
774+ interval = '10m' ;
775+ } else if ( intervalMs > 10 * SECOND ) {
776+ intervalMs = MINUTE ;
777+ interval = '1m' ;
778+ } else if ( intervalMs > SECOND ) {
779+ intervalMs = 10 * SECOND ;
780+ interval = '10s' ;
780781 } else {
781- return { interval : '$__interval' } ;
782+ intervalMs = SECOND ;
783+ interval = '1s' ;
782784 }
785+
786+ return { interval, intervalMs } ;
783787}
784788
785789// Copy/pasted from grafana/data as it is deprecated there.
0 commit comments