In order to enable the metrics for a Java application, one has to point the JVM to an additional Jar file which sends metrics to the dashboard. It does this by default without any modifications. One can then see the metrics on the Azure live metrics dashboard. Now as these metrics are not stored anywhere, we had to modify this open-source instrumentation Jar, such that it stores these fine-grained metrics. We decided to go with Azure File Shares to store these metrics as CSVs.
Main magic happens here. Unfortunately you still have to enter your Azure File Share credentials manually in storageConnectionString
.
See documentation at https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-in-process-agent.
See response to CVE-2021-44228 Apache Log4j 2.
Download the main repo and submodule:
git clone https://github.com/microsoft/ApplicationInsights-Java
cd ApplicationInsights-Java
git submodule init
git submodule update
Publish all the artifacts from the submodule to your local maven repository:
cd otel
./gradlew publishToMavenLocal
cd ..
Build the agent jar file:
./gradlew -DskipWinNative=true :agent:agent:shadowJar
The agent jar file should now be available under agent/agent/build/libs
.
We follow the same style guidelines and recommended Intellij setup as the OpenTelemetry Java Instrumentation repo.
While developing, if you find errorprone is getting in your way (e.g. it won't let you add
System.out.println
to your code), you can disable it by adding the following to your
~/.gradle/gradle.properties
:
disableErrorProne=true
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.