Skip to content

Commit 01c823d

Browse files
committed
smoke
1 parent e47aeaa commit 01c823d

File tree

51 files changed

+346
-30
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+346
-30
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/AiOverrideSampler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public SamplingResult shouldSample(
6060
SpanContext parentSpanContext = Span.fromContext(parentContext).getSpanContext();
6161

6262
SamplingOverrides samplingOverrides =
63-
SpanDataMapper.isRequest(spanKind, parentSpanContext, attributes::get)
63+
SpanDataMapper.isRequest(spanKind, parentSpanContext, null, attributes::get)
6464
? requestSamplingOverrides
6565
: dependencySamplingOverrides;
6666

agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/configuration/SamplingPercentageTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ void testRoundToNearest() {
3737
assertThat(roundToNearest(50)).isEqualTo(50);
3838
assertThat(roundToNearest(10)).isEqualTo(10);
3939
assertThat(roundToNearest(2)).isEqualTo(2);
40-
assertThat(roundToNearest(0.1f)).isEqualTo(0.1f);
41-
assertThat(roundToNearest(0.001f)).isEqualTo(0.001f);
40+
assertThat(roundToNearest(0.1)).isEqualTo(0.1);
41+
assertThat(roundToNearest(0.001)).isEqualTo(0.001);
4242
assertThat(roundToNearest(0)).isEqualTo(0);
4343

4444
// imperfect

agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import io.opentelemetry.api.trace.SpanContext;
4444
import io.opentelemetry.api.trace.SpanId;
4545
import io.opentelemetry.api.trace.SpanKind;
46+
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
4647
import io.opentelemetry.sdk.resources.Resource;
4748
import io.opentelemetry.sdk.trace.ReadableSpan;
4849
import io.opentelemetry.sdk.trace.data.EventData;
@@ -184,17 +185,34 @@ public TelemetryItem map(SpanData span, long itemCount) {
184185
}
185186

186187
public static boolean isRequest(SpanData span) {
187-
return isRequest(span.getKind(), span.getParentSpanContext(), span.getAttributes()::get);
188+
return isRequest(
189+
span.getKind(),
190+
span.getParentSpanContext(),
191+
span.getInstrumentationScopeInfo(),
192+
span.getAttributes()::get);
188193
}
189194

190195
public static boolean isRequest(ReadableSpan span) {
191-
return isRequest(span.getKind(), span.getParentSpanContext(), span::getAttribute);
196+
return isRequest(
197+
span.getKind(),
198+
span.getParentSpanContext(),
199+
span.getInstrumentationScopeInfo(),
200+
span::getAttribute);
192201
}
193202

194203
public static boolean isRequest(
195-
SpanKind kind, SpanContext parentSpanContext, Function<AttributeKey<String>, String> attrFn) {
204+
SpanKind kind,
205+
SpanContext parentSpanContext,
206+
@Nullable InstrumentationScopeInfo scopeInfo,
207+
Function<AttributeKey<String>, String> attrFn) {
208+
String instrumentationName = scopeInfo == null ? null : scopeInfo.getName();
196209
if (kind == SpanKind.INTERNAL) {
197-
return !parentSpanContext.isValid();
210+
// TODO (trask) AI mapping: need semantic convention for determining whether to map INTERNAL
211+
// to request or dependency (or need clarification to use SERVER for this)
212+
return !parentSpanContext.isValid()
213+
&& instrumentationName != null
214+
&& (instrumentationName.startsWith("io.opentelemetry.spring-scheduling-")
215+
|| instrumentationName.equals("io.opentelemetry.methods"));
198216
} else if (kind == SpanKind.CLIENT || kind == SpanKind.PRODUCER) {
199217
return false;
200218
} else if (kind == SpanKind.CONSUMER

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import com.azure.core.http.policy.HttpPipelinePolicy;
3131
import com.azure.core.util.FluxUtil;
3232
import com.azure.monitor.opentelemetry.exporter.implementation.models.MetricsData;
33-
import com.azure.monitor.opentelemetry.exporter.implementation.models.RequestData;
33+
import com.azure.monitor.opentelemetry.exporter.implementation.models.RemoteDependencyData;
3434
import com.azure.monitor.opentelemetry.exporter.implementation.models.TelemetryItem;
3535
import com.azure.monitor.opentelemetry.exporter.implementation.utils.MockLogData;
3636
import com.azure.monitor.opentelemetry.exporter.implementation.utils.TestUtils;
@@ -123,14 +123,15 @@ private static void validateTraceExporterEndToEnd(String testName) throws Except
123123
List<TelemetryItem> actualTelemetryItems = generateTraces(testName);
124124
assertThat(actualTelemetryItems.size()).isGreaterThan(0);
125125
TelemetryItem actualTelemetryItem = actualTelemetryItems.get(0);
126-
assertThat(actualTelemetryItem.getName()).isEqualTo("Request");
126+
assertThat(actualTelemetryItem.getName()).isEqualTo("RemoteDependency");
127127
assertThat(actualTelemetryItem.getInstrumentationKey()).isEqualTo(INSTRUMENTATION_KEY);
128128
assertThat(actualTelemetryItem.getTags())
129129
.containsEntry("ai.cloud.role", "unknown_service:java");
130130
assertThat(actualTelemetryItem.getTags())
131131
.hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).contains("otel"));
132-
assertThat(actualTelemetryItem.getData().getBaseType()).isEqualTo("RequestData");
133-
RequestData actualData = (RequestData) actualTelemetryItem.getData().getBaseData();
132+
assertThat(actualTelemetryItem.getData().getBaseType()).isEqualTo("RemoteDependencyData");
133+
RemoteDependencyData actualData =
134+
(RemoteDependencyData) actualTelemetryItem.getData().getBaseData();
134135
assertThat(actualData.getName()).isEqualTo(testName);
135136
assertThat(actualData.getProperties())
136137
.containsExactly(entry("color", "red"), entry("name", "apple"));

smoke-tests/apps/ActuatorMetrics/src/smokeTest/resources/applicationinsights.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
{
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
29
"preview": {
310
"metricIntervalSeconds": 5,
411
"processors": [

smoke-tests/apps/ActuatorMetrics/src/smokeTest/resources/disabled_applicationinsights.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
{
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
29
"instrumentation": {
310
"micrometer": {
411
"enabled": false

smoke-tests/apps/AutoPerfCounters/src/smokeTest/resources/applicationinsights.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
{
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
29
"preview": {
310
"metricIntervalSeconds": 5
411
}

smoke-tests/apps/AzureSdk/src/smokeTest/resources/controller_spans_enabled_applicationinsights.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
{
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
29
"preview": {
310
"captureControllerSpans": true
411
}

smoke-tests/apps/AzureSdk/src/smokeTest/resources/disabled_applicationinsights.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
{
2-
"connectionString": "InstrumentationKey=00000000-0000-0000-0000-0FEEDDADBEEF;IngestionEndpoint=http://host.docker.internal:6060/",
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
39
"instrumentation": {
410
"azureSdk": {
511
"enabled": false

smoke-tests/apps/Cassandra/src/smokeTest/resources/disabled_applicationinsights.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
{
2+
"role": {
3+
"name": "testrolename",
4+
"instance": "testroleinstance"
5+
},
6+
"sampling": {
7+
"percentage": 100
8+
},
29
"instrumentation": {
310
"cassandra": {
411
"enabled": false

0 commit comments

Comments
 (0)