@@ -195,8 +195,8 @@ record RateKey(String cluster, String host) {
195195 rates .add (v );
196196 }
197197 }
198- try (var resp = run ("METRICS hosts | STATS sum(rate(request_count, 1second ))" )) {
199- assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(rate(request_count, 1second ))" , "double" , null ))));
198+ try (var resp = run ("METRICS hosts | STATS sum(rate(request_count))" )) {
199+ assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(rate(request_count))" , "double" , null ))));
200200 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
201201 assertThat (values , hasSize (1 ));
202202 assertThat (values .get (0 ), hasSize (1 ));
@@ -218,42 +218,21 @@ record RateKey(String cluster, String host) {
218218 assertThat ((double ) values .get (0 ).get (0 ), closeTo (rates .stream ().mapToDouble (d -> d ).max ().orElse (0.0 ), 0.1 ));
219219 assertThat ((double ) values .get (0 ).get (1 ), closeTo (rates .stream ().mapToDouble (d -> d ).min ().orElse (0.0 ), 0.1 ));
220220 }
221- try (
222- var resp = run ("METRICS hosts | STATS max(rate(request_count)), avg(rate(request_count)), max(rate(request_count, 1minute))" )
223- ) {
221+ try (var resp = run ("METRICS hosts | STATS max(rate(request_count)), avg(rate(request_count))" )) {
224222 assertThat (
225223 resp .columns (),
226224 equalTo (
227225 List .of (
228226 new ColumnInfoImpl ("max(rate(request_count))" , "double" , null ),
229- new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ),
230- new ColumnInfoImpl ("max(rate(request_count, 1minute))" , "double" , null )
231- )
232- )
233- );
234- List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
235- assertThat (values , hasSize (1 ));
236- assertThat (values .get (0 ), hasSize (3 ));
237- assertThat ((double ) values .get (0 ).get (0 ), closeTo (rates .stream ().mapToDouble (d -> d ).max ().orElse (0.0 ), 0.1 ));
238- final double avg = rates .isEmpty () ? 0.0 : rates .stream ().mapToDouble (d -> d ).sum () / rates .size ();
239- assertThat ((double ) values .get (0 ).get (1 ), closeTo (avg , 0.1 ));
240- assertThat ((double ) values .get (0 ).get (2 ), closeTo (rates .stream ().mapToDouble (d -> d * 60.0 ).max ().orElse (0.0 ), 0.1 ));
241- }
242- try (var resp = run ("METRICS hosts | STATS avg(rate(request_count)), avg(rate(request_count, 1second))" )) {
243- assertThat (
244- resp .columns (),
245- equalTo (
246- List .of (
247- new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ),
248- new ColumnInfoImpl ("avg(rate(request_count, 1second))" , "double" , null )
227+ new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null )
249228 )
250229 )
251230 );
252231 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
253232 assertThat (values , hasSize (1 ));
254233 assertThat (values .get (0 ), hasSize (2 ));
234+ assertThat ((double ) values .get (0 ).get (0 ), closeTo (rates .stream ().mapToDouble (d -> d ).max ().orElse (0.0 ), 0.1 ));
255235 final double avg = rates .isEmpty () ? 0.0 : rates .stream ().mapToDouble (d -> d ).sum () / rates .size ();
256- assertThat ((double ) values .get (0 ).get (0 ), closeTo (avg , 0.1 ));
257236 assertThat ((double ) values .get (0 ).get (1 ), closeTo (avg , 0.1 ));
258237 }
259238 try (var resp = run ("METRICS hosts | STATS max(rate(request_count)), min(rate(request_count)), min(cpu), max(cpu)" )) {
@@ -336,34 +315,26 @@ record RateKey(String cluster, String host) {
336315 }
337316 }
338317 }
339- try (
340- var resp = run ("METRICS hosts | STATS avg(rate(request_count, 1minute)), avg(rate(request_count)) BY cluster | SORT cluster" )
341- ) {
318+ try (var resp = run ("METRICS hosts | STATS avg(rate(request_count)) BY cluster | SORT cluster" )) {
342319 assertThat (
343320 resp .columns (),
344321 equalTo (
345- List .of (
346- new ColumnInfoImpl ("avg(rate(request_count, 1minute))" , "double" , null ),
347- new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ),
348- new ColumnInfoImpl ("cluster" , "keyword" , null )
349- )
322+ List .of (new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ), new ColumnInfoImpl ("cluster" , "keyword" , null ))
350323 )
351324 );
352325 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
353326 assertThat (values , hasSize (bucketToRates .size ()));
354327 for (int i = 0 ; i < bucketToRates .size (); i ++) {
355328 List <Object > row = values .get (i );
356- assertThat (row , hasSize (3 ));
329+ assertThat (row , hasSize (2 ));
357330 String key = sortedKeys .get (i );
358- assertThat (row .get (2 ), equalTo (key ));
331+ assertThat (row .get (1 ), equalTo (key ));
359332 List <Double > rates = bucketToRates .get (key );
360333 if (rates .isEmpty ()) {
361334 assertThat (row .get (0 ), equalTo (0.0 ));
362- assertThat (row .get (1 ), equalTo (0.0 ));
363335 } else {
364336 double avg = rates .stream ().mapToDouble (d -> d ).sum () / rates .size ();
365- assertThat ((double ) row .get (0 ), closeTo (avg * 60.0f , 0.1 ));
366- assertThat ((double ) row .get (1 ), closeTo (avg , 0.1 ));
337+ assertThat ((double ) row .get (0 ), closeTo (avg , 0.1 ));
367338 }
368339 }
369340 }
@@ -427,40 +398,6 @@ record RateKey(String host, String cluster, long interval) {}
427398 }
428399 }
429400 }
430- try (var resp = run ("""
431- METRICS hosts
432- | STATS avg(rate(request_count, 1minute)), avg(rate(request_count)) BY ts=bucket(@timestamp, 1minute)
433- | SORT ts
434- | LIMIT 5
435- """ )) {
436- assertThat (
437- resp .columns (),
438- equalTo (
439- List .of (
440- new ColumnInfoImpl ("avg(rate(request_count, 1minute))" , "double" , null ),
441- new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ),
442- new ColumnInfoImpl ("ts" , "date" , null )
443- )
444- )
445- );
446- List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
447- assertThat (values , hasSize (sortedKeys .size ()));
448- for (int i = 0 ; i < sortedKeys .size (); i ++) {
449- List <Object > row = values .get (i );
450- assertThat (row , hasSize (3 ));
451- long key = sortedKeys .get (i );
452- assertThat (row .get (2 ), equalTo (DEFAULT_DATE_TIME_FORMATTER .formatMillis (key )));
453- List <Double > bucketValues = bucketToRates .get (key );
454- if (bucketValues .isEmpty ()) {
455- assertNull (row .get (0 ));
456- assertNull (row .get (1 ));
457- } else {
458- double avg = bucketValues .stream ().mapToDouble (d -> d ).sum () / bucketValues .size ();
459- assertThat ((double ) row .get (0 ), closeTo (avg * 60.0f , 0.1 ));
460- assertThat ((double ) row .get (1 ), closeTo (avg , 0.1 ));
461- }
462- }
463- }
464401 }
465402
466403 public void testRateWithTimeBucketAndCluster () {
@@ -554,41 +491,6 @@ record GroupKey(String cluster, long interval) {}
554491 }
555492 }
556493 }
557- try (var resp = run ("""
558- METRICS hosts
559- | STATS avg(rate(request_count, 1minute)), avg(rate(request_count)) BY ts=bucket(@timestamp, 1minute), cluster
560- | SORT ts, cluster
561- | LIMIT 5""" )) {
562- assertThat (
563- resp .columns (),
564- equalTo (
565- List .of (
566- new ColumnInfoImpl ("avg(rate(request_count, 1minute))" , "double" , null ),
567- new ColumnInfoImpl ("avg(rate(request_count))" , "double" , null ),
568- new ColumnInfoImpl ("ts" , "date" , null ),
569- new ColumnInfoImpl ("cluster" , "keyword" , null )
570- )
571- )
572- );
573- List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
574- assertThat (values , hasSize (sortedKeys .size ()));
575- for (int i = 0 ; i < sortedKeys .size (); i ++) {
576- List <Object > row = values .get (i );
577- assertThat (row , hasSize (4 ));
578- var key = sortedKeys .get (i );
579- assertThat (row .get (2 ), equalTo (DEFAULT_DATE_TIME_FORMATTER .formatMillis (key .interval )));
580- assertThat (row .get (3 ), equalTo (key .cluster ));
581- List <Double > bucketValues = rateBuckets .get (key );
582- if (bucketValues .isEmpty ()) {
583- assertNull (row .get (0 ));
584- assertNull (row .get (1 ));
585- } else {
586- double avg = bucketValues .stream ().mapToDouble (d -> d ).sum () / bucketValues .size ();
587- assertThat ((double ) row .get (0 ), closeTo (avg * 60.0f , 0.1 ));
588- assertThat ((double ) row .get (1 ), closeTo (avg , 0.1 ));
589- }
590- }
591- }
592494 try (var resp = run ("""
593495 METRICS hosts
594496 | STATS
@@ -730,32 +632,24 @@ record RateKey(String cluster, String host) {
730632 rates .add (v );
731633 }
732634 }
733- try (var resp = run ("METRICS hosts | STATS sum(abs(rate(request_count, 1second )))" )) {
734- assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(abs(rate(request_count, 1second )))" , "double" , null ))));
635+ try (var resp = run ("METRICS hosts | STATS sum(abs(rate(request_count)))" )) {
636+ assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(abs(rate(request_count)))" , "double" , null ))));
735637 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
736638 assertThat (values , hasSize (1 ));
737639 assertThat (values .get (0 ), hasSize (1 ));
738640 assertThat ((double ) values .get (0 ).get (0 ), closeTo (rates .stream ().mapToDouble (d -> d ).sum (), 0.1 ));
739641 }
740- try (var resp = run ("METRICS hosts | STATS sum(10.0 * rate(request_count, 1second ))" )) {
741- assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(10.0 * rate(request_count, 1second ))" , "double" , null ))));
642+ try (var resp = run ("METRICS hosts | STATS sum(10.0 * rate(request_count))" )) {
643+ assertThat (resp .columns (), equalTo (List .of (new ColumnInfoImpl ("sum(10.0 * rate(request_count))" , "double" , null ))));
742644 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
743645 assertThat (values , hasSize (1 ));
744646 assertThat (values .get (0 ), hasSize (1 ));
745647 assertThat ((double ) values .get (0 ).get (0 ), closeTo (rates .stream ().mapToDouble (d -> d * 10.0 ).sum (), 0.1 ));
746648 }
747- try (var resp = run ("METRICS hosts | STATS sum(20 * rate(request_count, 1second ) + 10 * floor(rate(request_count, 1second )))" )) {
649+ try (var resp = run ("METRICS hosts | STATS sum(20 * rate(request_count) + 10 * floor(rate(request_count)))" )) {
748650 assertThat (
749651 resp .columns (),
750- equalTo (
751- List .of (
752- new ColumnInfoImpl (
753- "sum(20 * rate(request_count, 1second) + 10 * floor(rate(request_count, 1second)))" ,
754- "double" ,
755- null
756- )
757- )
758- )
652+ equalTo (List .of (new ColumnInfoImpl ("sum(20 * rate(request_count) + 10 * floor(rate(request_count)))" , "double" , null )))
759653 );
760654 List <List <Object >> values = EsqlTestUtils .getValuesList (resp );
761655 assertThat (values , hasSize (1 ));
0 commit comments