@@ -651,7 +651,7 @@ export function queryLogsVolume<TQuery extends DataQuery, TOptions extends DataS
651651 options : any
652652) : Observable < DataQueryResponse > {
653653 const timespan = options . range . to . valueOf ( ) - options . range . from . valueOf ( ) ;
654- const intervalInfo = getIntervalInfo ( logsVolumeRequest . scopedVars , timespan ) ;
654+ const intervalInfo = getIntervalInfo ( timespan , 400 ) ;
655655
656656 logsVolumeRequest . interval = intervalInfo . interval ;
657657 logsVolumeRequest . scopedVars . __interval = { value : intervalInfo . interval , text : intervalInfo . interval } ;
@@ -795,32 +795,36 @@ const MINUTE = 60 * SECOND;
795795const HOUR = 60 * MINUTE ;
796796const DAY = 24 * HOUR ;
797797
798- function getIntervalInfo ( scopedVars : ScopedVars , timespanMs : number ) : { interval : string ; intervalMs ?: number } {
799- if ( scopedVars . __interval_ms ) {
800- let intervalMs : number = scopedVars . __interval_ms . value ;
801- let interval = '' ;
802- // below 5 seconds we force the resolution to be per 1ms as interval in scopedVars is not less than 10ms
803- if ( timespanMs < SECOND * 5 ) {
804- intervalMs = MILLISECOND ;
805- interval = '1ms' ;
806- } else if ( intervalMs > HOUR ) {
807- intervalMs = DAY ;
808- interval = '1d' ;
809- } else if ( intervalMs > MINUTE ) {
810- intervalMs = HOUR ;
811- interval = '1h' ;
812- } else if ( intervalMs > SECOND ) {
813- intervalMs = MINUTE ;
814- interval = '1m' ;
815- } else {
816- intervalMs = SECOND ;
817- interval = '1s' ;
818- }
819798
820- return { interval, intervalMs } ;
799+ function getIntervalInfo ( timespanMs : number , resolution : number ) : { interval : string ; intervalMs ?: number } {
800+ let intervalMs = timespanMs / resolution ;
801+ let interval = '' ;
802+
803+ // below 5 seconds we force the resolution to be per 1ms as interval in scopedVars is not less than 10ms
804+ if ( timespanMs < SECOND * 5 ) {
805+ intervalMs = MILLISECOND ;
806+ interval = '1ms' ;
807+ } else if ( intervalMs > HOUR ) {
808+ intervalMs = DAY ;
809+ interval = '1d' ;
810+ } else if ( intervalMs > 10 * MINUTE ) {
811+ intervalMs = HOUR ;
812+ interval = '1h' ;
813+ } else if ( intervalMs > MINUTE ) {
814+ intervalMs = 10 * MINUTE ;
815+ interval = '10m' ;
816+ } else if ( intervalMs > 10 * SECOND ) {
817+ intervalMs = MINUTE ;
818+ interval = '1m' ;
819+ } else if ( intervalMs > SECOND ) {
820+ intervalMs = 10 * SECOND ;
821+ interval = '10s' ;
821822 } else {
822- return { interval : '$__interval' } ;
823+ intervalMs = SECOND ;
824+ interval = '1s' ;
823825 }
826+
827+ return { interval, intervalMs } ;
824828}
825829
826830// Copy/pasted from grafana/data as it is deprecated there.
0 commit comments