open-telemetry/opentelemetry-java-instrumentation

Description: OpenTelemetry auto-instrumentation and instrumentation libraries for Java

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 9 minutes ago
Added to GitGenius on April 2nd, 2023
Created on September 25th, 2019
Open Issues & Pull Requests: 253 (-4)
Number of forks: 1,113
Total Stargazers: 2,571 (+0)
Total Subscribers: 54 (+0)

Issue Activity (beta)

Open issues: 187
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 392 days
Stale 30+ days: 166
Stale 90+ days: 141

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 3

Top labels

  • enhancement (520)
  • needs triage (425)
  • bug (408)
  • stale (308)
  • contribution welcome (175)
  • needs author feedback (151)
  • new instrumentation (60)
  • needs repro (41)

Repository Insights (GitGenius)

Median issue/PR response: 0.3 hours
Mean response time: 170.6 days
90th percentile: 843.1 days
Tracked items: 1,441

Most active contributors

Detailed Description

The OpenTelemetry Java Instrumentation repository provides a comprehensive solution for automatic telemetry collection from Java applications without requiring code modifications. The project centers on a Java agent JAR that can be attached to any Java 8 or later application, where it dynamically injects bytecode to capture telemetry data from numerous popular libraries and frameworks. This approach enables organizations to gather observability data from their Java systems with minimal operational overhead.

The repository's core offering is the opentelemetry-javaagent.jar, which includes instrumentation for all supported libraries and available data exporters, providing an out-of-the-box experience. Users enable the agent by adding the -javaagent flag to their JVM startup parameters. By default, the agent uses the OTLP exporter configured to send data to an OpenTelemetry collector at http://localhost:4318, though this is highly configurable through Java system properties and environment variables. The project also publishes standalone instrumentation libraries for several frameworks, offering flexibility for users who prefer not to use the full Java agent approach.

The repository supports an extensive list of libraries, frameworks, and application servers, with comprehensive documentation detailing which instrumentation is enabled by default and which can be suppressed or disabled. Beyond automatic instrumentation, the project provides mechanisms for manual instrumentation when developers need to add custom attributes to automatically generated spans or create spans for proprietary code. Additionally, the repository supports Logger MDC auto-instrumentation, allowing trace information such as trace IDs and span IDs to be injected into custom application logs.

The project includes extensibility features through agent extensions and custom distributions. Extensions allow users to add new capabilities like custom samplers or span exporters without forking the repository or creating separate distributions. The repository also provides guidance on creating custom agent distributions for organizations with specialized requirements.

GitGenius activity data reveals this is an actively maintained project with strong community engagement. The median issue and pull request response latency is 0.3 hours, indicating rapid triage and feedback cycles. Across 1,440 tracked items, the most common issue labels are enhancement (435 occurrences), needs triage (411), and bug (384), reflecting ongoing feature development and quality improvements. The project's core maintainers are Lauri Tulmin from Splunk and Trask Stalnaker from Microsoft, with Tulmin showing the highest activity level at 1,596 tracked events and Stalnaker at 1,096 events. Gregor Zeitlinger from Grafana Labs is the third most active contributor with 350 events. The repository's contributor network overlaps with projects including github/gh-aw, solo-io/gloo, and microsoft/vscode, indicating cross-organizational collaboration within the observability ecosystem.

The project is classified across multiple domains including telemetry, distributed tracing, instrumentation agents, performance monitoring, metrics, and application observability, reflecting its comprehensive role in the Java observability landscape. The repository maintains detailed troubleshooting documentation and provides debug logging capabilities through the -Dotel.javaagent.debug flag, though this is noted to have significant performance implications and should only be enabled when necessary.

opentelemetry-java-instrumentation
by
open-telemetryopen-telemetry/opentelemetry-java-instrumentation

Repository Details

Fetching additional details & charts...