Skip to content

Commit

Permalink
Disable _OTELRESOURCE_ custom metric in non-AKS env (#40312)
Browse files Browse the repository at this point in the history
* Disable _OTELRESOURCE_ custome metric in non AKS env

* Fix tests
  • Loading branch information
heyams committed May 22, 2024
1 parent 44c4dca commit bca73d9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.azure.monitor.opentelemetry.exporter.implementation.logging.OperationLogger;
import com.azure.monitor.opentelemetry.exporter.implementation.models.ContextTagKeys;
import com.azure.monitor.opentelemetry.exporter.implementation.models.TelemetryItem;
import com.azure.monitor.opentelemetry.exporter.implementation.utils.AksResourceAttributes;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.io.SerializedString;
Expand Down Expand Up @@ -137,8 +138,10 @@ CompletableResultCode internalSendByBatch(TelemetryItemBatchKey telemetryItemBat
List<ByteBuffer> byteBuffers;
// Don't send _OTELRESOURCE_ custom metric when OTEL_RESOURCE_ATTRIBUTES env var is empty
// Don't send _OTELRESOURCE_ custom metric to Statsbeat yet
// Don't Send _OTELRESOURCE_ when the app is running on other env other than AKS
// insert _OTELRESOURCE_ at the beginning of each batch
if (!"Statsbeat".equals(telemetryItems.get(0).getName())) {
// TODO (heya) add a json config for customers to disable _OTELRESOURCE_ metric to the ingestion service when this feature is GA
if (!"Statsbeat".equals(telemetryItems.get(0).getName()) && AksResourceAttributes.isAks(telemetryItemBatchKey.resource)) {
telemetryItems.add(0, createOtelResourceMetric(telemetryItemBatchKey));
}
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public void testBuildTraceExporter() throws Exception {
countDownLatch.await(10, SECONDS);
assertThat(customValidationPolicy.getUrl())
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(2);
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(1);

// validate span
TelemetryItem spanTelemetryItem =
Expand Down Expand Up @@ -85,19 +85,8 @@ public void testBuildMetricExporter() throws Exception {
countDownLatch.await(10, SECONDS);
assertThat(customValidationPolicy.getUrl())
.isEqualTo(new URL("https://test.in.applicationinsights.azure.com/v2.1/track"));
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(2);

// validate metric
TelemetryItem metricTelemetryItem =
customValidationPolicy.getActualTelemetryItems().stream()
.filter(item -> item.getName().equals("Metric"))
.filter(item -> {
MetricsData metricsData = (MetricsData) item.getData().getBaseData();
return metricsData.getMetrics().stream().noneMatch(metricDataPoint -> metricDataPoint.getName().equals("_OTELRESOURCE_"));
})
.findFirst()
.get();
validateMetric(metricTelemetryItem);
assertThat(customValidationPolicy.getActualTelemetryItems().size()).isEqualTo(1);
validateMetric(customValidationPolicy.getActualTelemetryItems().get(0));
}

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

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

// validate telemetry
TelemetryItem spanTelemetryItem =
Expand All @@ -160,10 +149,6 @@ public void testBuildTraceMetricLogExportersConsecutively() throws Exception {
TelemetryItem metricTelemetryItem =
customValidationPolicy.getActualTelemetryItems().stream()
.filter(item -> item.getName().equals("Metric"))
.filter(item -> {
MetricsData metricsData = (MetricsData) item.getData().getBaseData();
return metricsData.getMetrics().stream().noneMatch(metricDataPoint -> metricDataPoint.getName().equals("_OTELRESOURCE_"));
})
.findFirst()
.get();
TelemetryItem logTelemetryItem =
Expand Down

0 comments on commit bca73d9

Please sign in to comment.