Azure Monitor Telemetry for Java
Guides Java teams in exporting OpenTelemetry data to Azure Monitor.
The documentation clearly states that telemetry is sent to Azure Monitor/Application Insights and that a connection string is used; no malicious behavior or excessive permissions are evident. However, it does not cover sensitive-attribute filtering, retention, user confirmation, egress controls, or rollback, so points are deducted.
Installation, initialization, spans, metrics, and exception-handling paths are documented, but the target package is deprecated, examples mix the old exporter package with autoconfigure, versions use beta.x/LATEST, and there are no dedicated tests or failure diagnostics for this skill's key paths. Static calibration therefore limits the score.
The Java OpenTelemetry/Azure Monitor audience, trigger phrases, and migration boundary are reasonably clear. Non-fit scenarios, runtime prerequisites, dependency compatibility, Chinese-language support, and mainland-China network reachability are not sufficiently specified, so points are deducted.
The skill has front matter, MIT licensing, version and author metadata, installation guidance, layered examples, migration notes, and reference categories. It lacks a clear maintenance owner, changelog, stable version policy, troubleshooting guidance, and explicit data-governance limitations; LATEST also weakens dependency stability.
It can guide telemetry setup, span and metric creation, and migration direction, but the target package is deprecated, some examples may not align fully with the recommended package/API, and no directly verified execution output is included. Additional manual validation is likely required.
It identifies auditable Maven, GitHub, migration, OpenTelemetry, and Application Insights materials, but the supplied evidence is static and contains no key-path tests, CI results, or independently reproducible execution evidence, so only limited credit is justified.
- The skill targets a deprecated package; migration to autoconfigure should take priority over copying the legacy dependency.
- Do not hard-code real connection strings or sensitive business attributes; review telemetry contents, egress, retention, and compliance requirements.
- Verify AzureMonitorExporter.customize, dependency versions, and imports against the locked project versions and the official migration guidance.
- Mainland-China network reachability, Azure region endpoints, and enterprise egress policies are not verified in the supplied files and require separate validation.
What it does & when to use it
This Agent Skill helps Java developers send OpenTelemetry traces, metrics, and logs to Azure Monitor or Application Insights. It covers Maven dependencies, connection strings, autoconfiguration, span creation and nesting, span attributes, exception recording, custom SpanProcessors, and basic metrics. The exporter package itself is deprecated, and the source recommends migrating to azure-monitor-opentelemetry-autoconfigure. It is most useful for maintaining legacy integrations or planning migration, rather than starting a new implementation with the deprecated package.
Provides Java examples for adding the Maven dependency, configuring OpenTelemetry with APPLICATIONINSIGHTS_CONNECTION_STRING or an explicit connection string, and calling AzureMonitorExporter.customize. It shows how to create and end spans, add attributes, record exceptions, connect parent and child spans through Context, register a custom SpanProcessor, and create counters and histograms through OpenTelemetry.
- A Java team maintains an application that already uses azure-monitor-opentelemetry-exporter and needs configuration guidance.
- A service team wants to export Java application traces, metrics, and logs to Application Insights.
- A developer needs to initialize OpenTelemetry with an environment-based or explicit Azure connection string.
- An engineering team wants richer debugging context by adding business attributes to spans.
- A service needs consistent span customization or exception recording through OpenTelemetry APIs.
- A team is migrating an existing exporter integration to azure-monitor-opentelemetry-autoconfigure.
Pros & cons
- Covers exporting traces, metrics, and logs to Azure Monitor/Application Insights.
- Includes copyable Java examples for setup, spans, attributes, exceptions, and metrics.
- Explains custom SpanProcessor registration, nested spans, and migration steps.
- Published by Microsoft under the MIT license.
- The target exporter package is deprecated and is not the recommended long-term choice for new projects.
- Some examples use `1.0.0-beta.x` or `LATEST` placeholders rather than fixed production versions.
- The source provides no skill-specific platform test results or independent coverage evidence.
- Exporting telemetry requires an Azure Monitor/Application Insights connection string and network access.
How to install
To install the repository collection, run npx skills add microsoft/skills and select the required skill in the wizard; the README says skills are installed in the selected agent directory, such as .github/skills/. The source does not provide a standalone installation command for this skill. The legacy Java dependency is shown as com.azure:azure-monitor-opentelemetry-exporter:1.0.0-beta.x; new projects should use com.azure:azure-monitor-opentelemetry-autoconfigure instead.
How to use
In an Agent Skills-compatible coding agent, use a trigger such as opentelemetry azure java, application insights java otel, or azure monitor tracing java. Set APPLICATIONINSIGHTS_CONNECTION_STRING or pass a connection string explicitly, then initialize AutoConfiguredOpenTelemetrySdk and customize it with AzureMonitorExporter. Because the exporter is deprecated, ask for an autoconfigure-based implementation or migration guidance for new work.
Compared to similar skills
The source explicitly positions azure-monitor-opentelemetry-autoconfigure as the replacement for the deprecated exporter. It adds automatic configuration, automatic instrumentation for common libraries, and tighter OpenTelemetry SDK integration.