Erste Schritte • Mitmachen • Kontakt aufnehmen
Mitwirkender • Umfang
Dieses Projekt stellt eine Java-Agent-JAR bereit, die an jede Java 8+-Anwendung angehängt werden kann und dynamisch Bytecode einfügt, um Telemetriedaten aus einer Reihe beliebter Bibliotheken und Frameworks zu erfassen. Sie können die Telemetriedaten in verschiedenen Formaten exportieren. Sie können den Agenten und den Exporter auch über Befehlszeilenargumente oder Umgebungsvariablen konfigurieren. Das Endergebnis ist die Möglichkeit, Telemetriedaten aus einer Java-Anwendung ohne Codeänderungen zu sammeln.
Dieses Repository veröffentlicht auch eigenständige Instrumentierung für mehrere Bibliotheken (Tendenz steigend), die verwendet werden können, wenn Sie dies der Verwendung des Java-Agenten vorziehen. Weitere Informationen finden Sie in der Spalte „Instrumentierung eigenständiger Bibliotheken“ unter „Unterstützte Bibliotheken“. Wenn Sie nach einer Dokumentation zur Verwendung dieser suchen.
Laden Sie die neueste Version herunter.
Dieses Paket umfasst den Instrumentierungsagenten sowie Instrumentierungen für alle unterstützten Bibliotheken und alle verfügbaren Datenexporteure. Das Paket bietet ein völlig automatisches, sofort einsatzbereites Erlebnis.
Hinweis: Es gibt 2.x-Releases und 1.x-Releases. Die Version 2.0 beinhaltete bedeutende Breaking Changes, deren Einzelheiten in den Versionshinweisen zu finden sind. Es wird empfohlen, die neueste Version 2.x zu verwenden, die über die neuesten Funktionen und Verbesserungen verfügt. 1.x erhält für eine begrenzte Zeit Sicherheitspatches und enthält keine weiteren Fehlerbehebungen und Verbesserungen.
Aktivieren Sie den Instrumentierungsagenten mithilfe des Flags -javaagent
für die JVM.
java -javaagent:path/to/opentelemetry-javaagent.jar
-jar myapp.jar
Standardmäßig verwendet der OpenTelemetry-Java-Agent den OTLP-Exporter, der zum Senden von Daten an einen OpenTelemetry-Collector unter http://localhost:4318
konfiguriert ist.
Konfigurationsparameter werden als Java-Systemeigenschaften ( -D
-Flags) oder als Umgebungsvariablen übergeben. Die vollständige Liste der Konfigurationselemente finden Sie in der Konfigurationsdokumentation. Zum Beispiel:
java -javaagent:path/to/opentelemetry-javaagent.jar
-Dotel.resource.attributes=service.name=your-service-name
-Dotel.traces.exporter=zipkin
-jar myapp.jar
Der Agent ist hochgradig konfigurierbar! Viele Aspekte des Verhaltens des Agenten können entsprechend Ihren Anforderungen konfiguriert werden, z. B. die Wahl des Exporters, die Konfiguration des Exporters (z. B. wohin Daten gesendet werden), Header für die Weitergabe von Ablaufverfolgungskontexten und vieles mehr.
Eine detaillierte Liste der Agent-Konfigurationsoptionen finden Sie in den Agent-Konfigurationsdokumenten.
Eine detaillierte Liste zusätzlicher SDK-Konfigurationsumgebungsvariablen und Systemeigenschaften finden Sie in den SDK-Konfigurationsdokumenten.
Hinweis: Es ist sehr wahrscheinlich, dass sich die Namen der Konfigurationsparameter im Laufe der Zeit ändern. Schauen Sie also bitte hier noch einmal vorbei, wenn Sie eine neue Version ausprobieren! Bitte melden Sie alle Fehler oder unerwartetes Verhalten, die Sie finden.
Wir unterstützen eine beeindruckend große Anzahl an Bibliotheken und Frameworks sowie die meisten der beliebtesten Anwendungsserver ... direkt nach dem Auspacken! Klicken Sie hier, um die vollständige Liste anzuzeigen und mehr über deaktivierte Instrumentierung und die Unterdrückung unerwünschter Instrumentierung zu erfahren.
Erweiterungen fügen dem Agent neue Funktionen und Fähigkeiten hinzu, ohne dass eine separate Distribution erstellt oder dieses Repository abgezweigt werden muss. Sie können beispielsweise benutzerdefinierte Sampler oder Span-Exporteure erstellen, neue Standardwerte festlegen und alles in den Agenten einbetten, um eine einzige JAR-Datei zu erhalten.
Für die meisten Anwender ist die Out-of-the-Box-Instrumentierung völlig ausreichend und es muss nichts weiter getan werden. Manchmal möchten Benutzer jedoch Attribute zu den ansonsten automatischen Spans hinzufügen oder manuell Spans für ihren eigenen benutzerdefinierten Code erstellen.
Ausführliche Anweisungen finden Sie unter Manuelle Instrumentierung.
Es ist möglich, Trace-Informationen wie Trace-IDs und Span-IDs in Ihre benutzerdefinierten Anwendungsprotokolle einzufügen. Einzelheiten finden Sie unter Automatische Instrumentierung des Logger-MDC.
So aktivieren Sie die interne Debug-Protokollierung des Agenten:
-Dotel.javaagent.debug=true
Hinweis : Diese Protokolle sind äußerst ausführlich. Aktivieren Sie die Debug-Protokollierung nur bei Bedarf. Die Debug-Protokollierung wirkt sich negativ auf die Leistung Ihrer Anwendung aus.
Siehe CONTRIBUTING.md.
Triager (@open-telemetry/java-instrumentation-triagers):
Genehmiger (@open-telemetry/java-instrumentation-approvers):
Betreuer (@open-telemetry/java-instrumentation-maintainers):
Emeritierte Betreuer:
Erfahren Sie mehr über Rollen im Community-Repository.
Vielen Dank an alle, die bereits dazu beigetragen haben!