99
1010import io .opentelemetry .proto .collector .metrics .v1 .ExportMetricsServiceRequest ;
1111import io .opentelemetry .proto .metrics .v1 .ResourceMetrics ;
12-
1312import org .elasticsearch .test .ESTestCase ;
1413import org .elasticsearch .xpack .oteldata .otlp .proto .BufferedByteStringAccessor ;
1514
@@ -75,8 +74,7 @@ public void testGroupingDifferentGroupUnit() throws Exception {
7574 assertEquals (2 , groupCount .get ());
7675 }
7776
78- public void testGroupingDuplicateName () throws Exception {
79- // Group data points
77+ public void testGroupingDuplicateNameSameTimeSeries () throws Exception {
8078 ExportMetricsServiceRequest metricsRequest = createMetricsRequest (
8179 List .of (
8280 createGaugeMetric ("system.cpu.usage" , "{percent}" , List .of (createDoubleDataPoint (nowUnixNanos , List .of ()))),
@@ -93,6 +91,22 @@ public void testGroupingDuplicateName() throws Exception {
9391 assertEquals (1 , groupCount .get ());
9492 }
9593
94+ public void testGroupingDuplicateNameDifferentTimeSeries () throws Exception {
95+ ExportMetricsServiceRequest metricsRequest = createMetricsRequest (
96+ List .of (
97+ createGaugeMetric ("system.cpu.usage" , "" , List .of (createDoubleDataPoint (nowUnixNanos , List .of ()))),
98+ createGaugeMetric ("system.cpu.usage" , "{percent}" , List .of (createLongDataPoint (nowUnixNanos , List .of ())))
99+ )
100+ );
101+ context .groupDataPoints (metricsRequest );
102+ assertEquals (2 , context .totalDataPoints ());
103+ assertEquals (0 , context .getIgnoredDataPoints ());
104+
105+ AtomicInteger groupCount = new AtomicInteger (0 );
106+ context .consume (dataPointGroup -> groupCount .incrementAndGet ());
107+ assertEquals (2 , groupCount .get ());
108+ }
109+
96110 public void testGroupingDifferentResource () throws Exception {
97111 ResourceMetrics resource1 = createResourceMetrics (
98112 List .of (keyValue ("service.name" , "test-service_1" )),
0 commit comments