Skip to content

Commit e80fde8

Browse files
committed
Remove workaround for live metrics race condition
1 parent 7d4c26a commit e80fde8

File tree

5 files changed

+234
-29
lines changed

5 files changed

+234
-29
lines changed

.github/workflows/build-common.yml

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
required: false
99

1010
env:
11-
EXPORTER_VERSION: 1.1.0 # to be updated with the latest version
11+
EXPORTER_VERSION: 1.3.0-beta.1 # to be updated with the latest version
1212

1313
jobs:
1414
spotless:
@@ -47,11 +47,10 @@ jobs:
4747
java-version: 17
4848

4949
- name: Using a local standalone exporter dependency?
50-
if: ${{ hashFiles('azure-monitor-opentelemetry-autoconfigure-1.0.0-beta.*.jar') != '' }}
5150
run: |
52-
echo "exporter_version: ${{ env.EXPORTER_VERSION }}"
53-
mvn -version
54-
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
51+
if [ -f "azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" ]; then
52+
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
53+
fi
5554
5655
- name: Setup Gradle
5756
uses: gradle/actions/setup-gradle@v4
@@ -94,11 +93,11 @@ jobs:
9493
java-version: 17
9594

9695
- name: Using a local standalone exporter dependency?
97-
if: ${{ hashFiles('azure-monitor-opentelemetry-autoconfigure-1.0.0-beta.*.jar') != '' }}
96+
shell: bash
9897
run: |
99-
echo "exporter_version: ${{ env.EXPORTER_VERSION }}"
100-
mvn -version
101-
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
98+
if [ -f "azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" ]; then
99+
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
100+
fi
102101
103102
- name: Setup Gradle
104103
uses: gradle/actions/setup-gradle@v4
@@ -166,11 +165,11 @@ jobs:
166165
java-version: 17
167166

168167
- name: Using a local standalone exporter dependency?
169-
if: ${{ hashFiles('azure-monitor-opentelemetry-autoconfigure-1.0.0-beta.*.jar') != '' }}
168+
shell: bash
170169
run: |
171-
echo "exporter_version: ${{ env.EXPORTER_VERSION }}"
172-
mvn -version
173-
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
170+
if [ -f "azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" ]; then
171+
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
172+
fi
174173
175174
- name: Setup Gradle
176175
uses: gradle/actions/setup-gradle@v4
@@ -240,11 +239,10 @@ jobs:
240239
java-version: 17
241240

242241
- name: Using a local standalone exporter dependency?
243-
if: ${{ hashFiles('azure-monitor-opentelemetry-autoconfigure-1.0.0-beta.*.jar') != '' }}
244242
run: |
245-
echo "exporter_version: ${{ env.EXPORTER_VERSION }}"
246-
mvn -version
247-
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
243+
if [ -f "azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" ]; then
244+
mvn install:install-file -Dfile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.jar" -DpomFile="azure-monitor-opentelemetry-autoconfigure-${{ env.EXPORTER_VERSION }}.pom" -DgroupId="com.azure" -DartifactId="azure-monitor-opentelemetry-autoconfigure" -Dversion="${{ env.EXPORTER_VERSION }}"
245+
fi
248246
249247
- name: Setup Gradle
250248
uses: gradle/actions/setup-gradle@v4

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ build/
66
# Intellij
77
/.idea/
88

9-
# Visual Studio
10-
.vs
9+
# VS Code
10+
bin/
Binary file not shown.
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
<!-- Copyright (c) Microsoft Corporation. All rights reserved.
2+
Licensed under the MIT License. -->
3+
4+
<project xmlns="http://maven.apache.org/POM/4.0.0"
5+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<parent>
9+
<groupId>com.azure</groupId>
10+
<artifactId>azure-client-sdk-parent</artifactId>
11+
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
12+
<relativePath>../../parents/azure-client-sdk-parent</relativePath>
13+
</parent>
14+
15+
<groupId>com.azure</groupId>
16+
<artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
17+
<version>1.3.0-beta.1</version> <!-- {x-version-update;com.azure:azure-monitor-opentelemetry-autoconfigure;current} -->
18+
19+
<name>Azure Monitor OpenTelemetry SDK Autoconfigure Distro</name>
20+
<description>This package contains Azure Monitor OpenTelemetry SDK Autoconfigure Distro.</description>
21+
22+
<distributionManagement>
23+
<site>
24+
<id>azure-java-build-docs</id>
25+
<url>${site.url}/site/${project.artifactId}</url>
26+
</site>
27+
</distributionManagement>
28+
29+
<scm>
30+
<url>https://github.com/Azure/azure-sdk-for-java</url>
31+
</scm>
32+
33+
<properties>
34+
<jacoco.min.linecoverage>0.30</jacoco.min.linecoverage>
35+
<jacoco.min.branchcoverage>0.20</jacoco.min.branchcoverage>
36+
<!-- Configures the Java 9+ run to perform the required module exports, opens, and reads that are necessary for testing but shouldn't be part of the module-info. -->
37+
<javaModulesSurefireArgLine>
38+
--add-opens com.azure.monitor.opentelemetry.autoconfigure/com.azure.monitor.opentelemetry.autoconfigure=ALL-UNNAMED
39+
--add-exports com.azure.core/com.azure.core.implementation.util=ALL-UNNAMED
40+
--add-reads com.azure.monitor.opentelemetry.autoconfigure=com.azure.core.tracing.opentelemetry
41+
</javaModulesSurefireArgLine>
42+
43+
<checkstyle.suppressionsLocation>checkstyle-suppressions.xml</checkstyle.suppressionsLocation>
44+
<spotbugs.skip>false</spotbugs.skip>
45+
<spotbugs.excludeFilterFile>spotbugs-exclude.xml</spotbugs.excludeFilterFile>
46+
</properties>
47+
48+
<dependencies>
49+
<dependency>
50+
<groupId>com.azure</groupId>
51+
<artifactId>azure-core</artifactId>
52+
<version>1.55.5</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
53+
</dependency>
54+
<dependency>
55+
<groupId>com.azure</groupId>
56+
<artifactId>azure-json</artifactId>
57+
<version>1.5.0</version> <!-- {x-version-update;com.azure:azure-json;dependency} -->
58+
</dependency>
59+
<dependency>
60+
<groupId>com.azure</groupId>
61+
<artifactId>azure-core-http-netty</artifactId>
62+
<version>1.15.13</version> <!-- {x-version-update;com.azure:azure-core-http-netty;dependency} -->
63+
</dependency>
64+
<dependency>
65+
<groupId>io.opentelemetry</groupId>
66+
<artifactId>opentelemetry-api</artifactId>
67+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-api;external_dependency} -->
68+
</dependency>
69+
<dependency>
70+
<groupId>io.opentelemetry</groupId>
71+
<artifactId>opentelemetry-sdk</artifactId>
72+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk;external_dependency} -->
73+
</dependency>
74+
<dependency>
75+
<groupId>io.opentelemetry</groupId>
76+
<artifactId>opentelemetry-sdk-metrics</artifactId>
77+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk-metrics;external_dependency} -->
78+
</dependency>
79+
<dependency>
80+
<groupId>io.opentelemetry</groupId>
81+
<artifactId>opentelemetry-sdk-logs</artifactId>
82+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk-logs;external_dependency} -->
83+
</dependency>
84+
<dependency>
85+
<groupId>io.opentelemetry</groupId>
86+
<artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId>
87+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi;external_dependency} -->
88+
</dependency>
89+
<dependency>
90+
<groupId>io.opentelemetry</groupId>
91+
<artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
92+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk-extension-autoconfigure;external_dependency} -->
93+
</dependency>
94+
<dependency>
95+
<groupId>io.opentelemetry</groupId>
96+
<artifactId>opentelemetry-semconv</artifactId>
97+
<version>0.14.1</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-semconv;external_dependency} -->
98+
</dependency>
99+
100+
<!-- Added this dependency to include necessary annotations used by reactor core.
101+
Without this dependency, javadoc throws a warning as it cannot find enum When.MAYBE
102+
which is used in @Nullable annotation in reactor core classes -->
103+
<dependency>
104+
<groupId>com.google.code.findbugs</groupId>
105+
<artifactId>jsr305</artifactId>
106+
<version>3.0.2</version> <!-- {x-version-update;com.google.code.findbugs:jsr305;external_dependency} -->
107+
<scope>provided</scope>
108+
</dependency>
109+
110+
<!-- Test dependencies -->
111+
<dependency>
112+
<groupId>org.assertj</groupId>
113+
<artifactId>assertj-core</artifactId>
114+
<version>3.22.0</version> <!-- {x-version-update;org.assertj:assertj-core;external_dependency} -->
115+
<scope>test</scope>
116+
</dependency>
117+
<dependency>
118+
<groupId>org.mockito</groupId>
119+
<artifactId>mockito-core</artifactId>
120+
<version>4.11.0</version> <!-- {x-version-update;org.mockito:mockito-core;external_dependency} -->
121+
<scope>test</scope>
122+
</dependency>
123+
<!-- bytebuddy dependencies are required for mockito 4.11.0 to work with Java 21. Mockito 4.11.0 is the last release -->
124+
<!-- of Mockito supporting Java 8 as a baseline. -->
125+
<dependency>
126+
<groupId>net.bytebuddy</groupId>
127+
<artifactId>byte-buddy</artifactId>
128+
<version>1.17.5</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy;external_dependency} -->
129+
<scope>test</scope>
130+
</dependency>
131+
<dependency>
132+
<groupId>net.bytebuddy</groupId>
133+
<artifactId>byte-buddy-agent</artifactId>
134+
<version>1.17.5</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy-agent;external_dependency} -->
135+
<scope>test</scope>
136+
</dependency>
137+
<dependency>
138+
<groupId>io.opentelemetry</groupId>
139+
<artifactId>opentelemetry-sdk-testing</artifactId>
140+
<version>1.49.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-sdk-testing;external_dependency} -->
141+
<scope>test</scope>
142+
</dependency>
143+
<dependency>
144+
<groupId>com.azure</groupId>
145+
<artifactId>azure-data-appconfiguration</artifactId>
146+
<version>1.8.1</version> <!-- {x-version-update;com.azure:azure-data-appconfiguration;dependency} -->
147+
<scope>test</scope>
148+
</dependency>
149+
<dependency>
150+
<groupId>com.azure</groupId>
151+
<artifactId>azure-messaging-eventhubs</artifactId>
152+
<version>5.20.4</version> <!-- {x-version-update;com.azure:azure-messaging-eventhubs;dependency} -->
153+
<scope>test</scope>
154+
</dependency>
155+
<dependency>
156+
<groupId>com.azure</groupId>
157+
<artifactId>azure-core-tracing-opentelemetry</artifactId>
158+
<version>1.0.0-beta.58</version> <!-- {x-version-update;com.azure:azure-core-tracing-opentelemetry;dependency} -->
159+
<scope>test</scope>
160+
</dependency>
161+
<dependency>
162+
<groupId>com.azure</groupId>
163+
<artifactId>azure-core-test</artifactId>
164+
<version>1.27.0-beta.10</version> <!-- {x-version-update;com.azure:azure-core-test;dependency} -->
165+
<scope>test</scope>
166+
</dependency>
167+
<dependency>
168+
<groupId>com.azure</groupId>
169+
<artifactId>azure-messaging-eventhubs-checkpointstore-blob</artifactId>
170+
<version>1.20.8</version> <!-- {x-version-update;com.azure:azure-messaging-eventhubs-checkpointstore-blob;dependency} -->
171+
<scope>test</scope>
172+
</dependency>
173+
<dependency>
174+
<groupId>com.azure</groupId>
175+
<artifactId>azure-identity</artifactId>
176+
<version>1.16.2</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
177+
<scope>test</scope>
178+
</dependency>
179+
<dependency>
180+
<groupId>io.github.hakky54</groupId>
181+
<artifactId>logcaptor</artifactId>
182+
<version>2.9.3</version> <!-- {x-version-update;io.github.hakky54:logcaptor;external_dependency} -->
183+
<scope>test</scope>
184+
</dependency>
185+
</dependencies>
186+
187+
<build>
188+
<plugins>
189+
<plugin>
190+
<groupId>org.apache.maven.plugins</groupId>
191+
<artifactId>maven-enforcer-plugin</artifactId>
192+
<version>3.5.0</version> <!-- {x-version-update;org.apache.maven.plugins:maven-enforcer-plugin;external_dependency} -->
193+
<configuration>
194+
<rules>
195+
<bannedDependencies>
196+
<includes>
197+
<include>io.opentelemetry:opentelemetry-semconv:[0.14.1]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-semconv;external_dependency} -->
198+
<include>io.opentelemetry:opentelemetry-api:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-api;external_dependency} -->
199+
<include>io.opentelemetry:opentelemetry-sdk:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-sdk;external_dependency} -->
200+
<include>io.opentelemetry:opentelemetry-sdk-metrics:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-sdk-metrics;external_dependency} -->
201+
<include>io.opentelemetry:opentelemetry-sdk-logs:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-sdk-logs;external_dependency} -->
202+
<include>io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi;external_dependency} -->
203+
<include>io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:[1.49.0]</include> <!-- {x-include-update;io.opentelemetry:opentelemetry-sdk-extension-autoconfigure;external_dependency} -->
204+
<include>com.squareup.okio:okio:[3.9.1]</include> <!-- {x-include-update;com.squareup.okio:okio;external_dependency} -->
205+
</includes>
206+
</bannedDependencies>
207+
</rules>
208+
</configuration>
209+
</plugin>
210+
</plugins>
211+
</build>
212+
</project>

smoke-tests/framework/src/main/java/com/microsoft/applicationinsights/smoketest/SmokeTestExtension.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -290,16 +290,11 @@ private void clearOutAnyInitLogs() throws Exception {
290290
HttpHelper.getResponseCodeEnsuringSampled(contextRootUrl);
291291
waitForHealthCheckTelemetry(contextRootUrl);
292292
if (!useOld3xAgent) {
293-
try {
294-
await()
295-
.untilAsserted(
296-
() ->
297-
assertThat(mockedIngestion.getLiveMetrics().getRequestCount(contextRootUrl))
298-
.isEqualTo(1));
299-
} catch (ConditionTimeoutException e) {
300-
// TODO (trask) need to fix race condition in live metrics
301-
// where sometimes it loses telemetry
302-
}
293+
await()
294+
.untilAsserted(
295+
() ->
296+
assertThat(mockedIngestion.getLiveMetrics().getRequestCount(contextRootUrl))
297+
.isEqualTo(1));
303298
}
304299
System.out.println("Clearing any RequestData from health check.");
305300
mockedIngestion.resetData();

0 commit comments

Comments
 (0)