Skip to content

Commit bca73d9

Browse files
authored
Disable _OTELRESOURCE_ custom metric in non-AKS env (Azure#40312)
* Disable _OTELRESOURCE_ custome metric in non AKS env * Fix tests
1 parent 44c4dca commit bca73d9

File tree

2 files changed

+9
-21
lines changed

2 files changed

+9
-21
lines changed

sdk/monitor/azure-monitor-opentelemetry-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/pipeline/TelemetryItemExporter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.azure.monitor.opentelemetry.exporter.implementation.logging.OperationLogger;
1111
import com.azure.monitor.opentelemetry.exporter.implementation.models.ContextTagKeys;
1212
import com.azure.monitor.opentelemetry.exporter.implementation.models.TelemetryItem;
13+
import com.azure.monitor.opentelemetry.exporter.implementation.utils.AksResourceAttributes;
1314
import com.fasterxml.jackson.annotation.JsonInclude;
1415
import com.fasterxml.jackson.core.JsonGenerator;
1516
import com.fasterxml.jackson.core.io.SerializedString;
@@ -137,8 +138,10 @@ CompletableResultCode internalSendByBatch(TelemetryItemBatchKey telemetryItemBat
137138
List<ByteBuffer> byteBuffers;
138139
// Don't send _OTELRESOURCE_ custom metric when OTEL_RESOURCE_ATTRIBUTES env var is empty
139140
// Don't send _OTELRESOURCE_ custom metric to Statsbeat yet
141+
// Don't Send _OTELRESOURCE_ when the app is running on other env other than AKS
140142
// insert _OTELRESOURCE_ at the beginning of each batch
141-
if (!"Statsbeat".equals(telemetryItems.get(0).getName())) {
143+
// TODO (heya) add a json config for customers to disable _OTELRESOURCE_ metric to the ingestion service when this feature is GA
144+
if (!"Statsbeat".equals(telemetryItems.get(0).getName()) && AksResourceAttributes.isAks(telemetryItemBatchKey.resource)) {
142145
telemetryItems.add(0, createOtelResourceMetric(telemetryItemBatchKey));
143146
}
144147
try {

sdk/monitor/azure-monitor-opentelemetry-exporter/src/test/java/com/azure/monitor/opentelemetry/exporter/AzureMonitorExportersEndToEndTest.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void testBuildTraceExporter() throws Exception {
5555
countDownLatch.await(10, SECONDS);
5656
assertThat(customValidationPolicy.getUrl())
5757
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
58-
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(2);
58+
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(1);
5959

6060
// validate span
6161
TelemetryItem spanTelemetryItem =
@@ -85,19 +85,8 @@ public void testBuildMetricExporter() throws Exception {
8585
countDownLatch.await(10, SECONDS);
8686
assertThat(customValidationPolicy.getUrl())
8787
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
88-
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(2);
89-
90-
// validate metric
91-
TelemetryItem metricTelemetryItem =
92-
customValidationPolicy.getActualTelemetryItems().stream()
93-
.filter(item -> item.getName().equals("Metric"))
94-
.filter(item -> {
95-
MetricsData metricsData = (MetricsData) item.getData().getBaseData();
96-
return metricsData.getMetrics().stream().noneMatch(metricDataPoint -> metricDataPoint.getName().equals("_OTELRESOURCE_"));
97-
})
98-
.findFirst()
99-
.get();
100-
validateMetric(metricTelemetryItem);
88+
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(1);
89+
validateMetric(customValidationPolicy.getActualTelemetryItems().get(0));
10190
}
10291

10392
@Test
@@ -116,7 +105,7 @@ public void testBuildLogExporter() throws Exception {
116105
countDownLatch.await(10, SECONDS);
117106
assertThat(customValidationPolicy.getUrl())
118107
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
119-
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(2);
108+
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(1);
120109

121110
// validate log
122111
TelemetryItem logTelemetryItem =
@@ -149,7 +138,7 @@ public void testBuildTraceMetricLogExportersConsecutively() throws Exception {
149138
countDownLatch.await(10, SECONDS);
150139
assertThat(customValidationPolicy.getUrl())
151140
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
152-
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(6);
141+
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(3);
153142

154143
// validate telemetry
155144
TelemetryItem spanTelemetryItem =
@@ -160,10 +149,6 @@ public void testBuildTraceMetricLogExportersConsecutively() throws Exception {
160149
TelemetryItem metricTelemetryItem =
161150
customValidationPolicy.getActualTelemetryItems().stream()
162151
.filter(item -> item.getName().equals("Metric"))
163-
.filter(item -> {
164-
MetricsData metricsData = (MetricsData) item.getData().getBaseData();
165-
return metricsData.getMetrics().stream().noneMatch(metricDataPoint -> metricDataPoint.getName().equals("_OTELRESOURCE_"));
166-
})
167152
.findFirst()
168153
.get();
169154
TelemetryItem logTelemetryItem =

0 commit comments

Comments
 (0)