@@ -610,7 +610,7 @@ export function queryLogsVolume<TQuery extends DataQuery, TOptions extends DataS
610
610
options : any
611
611
) : Observable < DataQueryResponse > {
612
612
const timespan = options . range . to . valueOf ( ) - options . range . from . valueOf ( ) ;
613
- const intervalInfo = getIntervalInfo ( logsVolumeRequest . scopedVars , timespan ) ;
613
+ const intervalInfo = getIntervalInfo ( timespan , 400 ) ;
614
614
615
615
logsVolumeRequest . interval = intervalInfo . interval ;
616
616
logsVolumeRequest . scopedVars . __interval = { value : intervalInfo . interval , text : intervalInfo . interval } ;
@@ -754,32 +754,36 @@ const MINUTE = 60 * SECOND;
754
754
const HOUR = 60 * MINUTE ;
755
755
const DAY = 24 * HOUR ;
756
756
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
- }
778
757
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' ;
780
781
} else {
781
- return { interval : '$__interval' } ;
782
+ intervalMs = SECOND ;
783
+ interval = '1s' ;
782
784
}
785
+
786
+ return { interval, intervalMs } ;
783
787
}
784
788
785
789
// Copy/pasted from grafana/data as it is deprecated there.
0 commit comments