APM-Java-Agent für die Arbeit mit OpenTelemetry konfigurieren
Der APM-Java-Agent kann für die Arbeit mit OpenTelemetry konfiguriert werden.
Sie können die Instrumentierung und Überwachung des APM-Java-Agent weiterhin verwenden und eine Verbindung mit der vorhandenen OpenTelemetry-Überwachung herstellen lassen.
Wenn Sie vorhandene OpenTelemetry-Agents mit APM verwenden möchten, finden Sie weitere Informationen unter OpenTelemetry und andere Tracer konfigurieren.
OpenTelemetry Automatische Java-Agent-Instrumentierung (opentelemetry-javaagent.jar) wird nicht unterstützt. Dieses Feature soll mit Anwendungen/Bibliotheken arbeiten, die mit den OpenTelemetry-APIs manuelle Instrumentierung ausführen und ihre eigenen Spans/Traces (opentelemetry-api) erstellen.
Nachdem der APM-Java-Agent konfiguriert wurde, funktioniert er ähnlich wie der APM-Java-Agent-Hybridmodus. Er funktioniert jedoch auch mit den OpenTelemetry-APIs neben den OpenTracing-APIs.
In diesem Abschnitt werden folgende Themen behandelt:
W3C Die Gepäckweitergabe wird ab Version 1.17 von APM Java Agent unterstützt.
Nur-Tracer-Szenario ist nicht verfügbar. Wenn der APM-Java-Agent jedoch so konfiguriert ist, dass er mit OpenTelemetry funktioniert, wird sein Standardwert an W3C
angepasst. Dies ist das Format, das OpenTelemetry standardmäßig verwendet.
OpenTelemetry in APM-Agent aktivieren
Der APM-Java-Agent unterstützt OpenTelemetry-Traces und -Metriken. Verwenden Sie die folgende Eigenschaft, um OpenTelemetry für manuelle Instrumentierung und benutzerdefinierte Metriken zu aktivieren:
Eigenschaftstyp und Beschreibung | Eigenschaften | Standardwert | Beispiel |
---|---|---|---|
AgentConfig.properties Datei |
com.oracle.apm.agent.otel |
false | com.oracle.apm.agent.hybrid=false |
Systemeigenschaften Systemeigenschaften aktualisieren. |
com.oracle.apm.agent.otel |
false | com.oracle.apm.agent.otel=false |
Umgebungsvariablen Umgebungsvariablen aktualisieren. |
com_oracle_apm_agent_otel |
false |
Für Windows: Für Linux: |
Für OpenTelemetry ist Java 8 und höher erforderlich. Die Eigenschaft:
com.oracle.apm.agent.otel=false
wird für Java 7 oder höher durchgesetzt.
Beim Hochfahren des APM-Java-Agent wird die Instanz OpenTelemetry gestartet. Auf die Instanz OpenTelemetry kann mit GlobalOpenTelemetry.get()
zugegriffen werden.
Andere OpenTelemetry-Versionen verwenden
Für den APM-Java-Agent 1.14 sind OpenTelemetry 1.38.0-Librarys integriert. Da der APM-Java-Agent die manuelle Instrumentierung für OpenTelemetry unterstützt, kann die API-Version, von der Ihr Projekt abhängt, unterschiedlich sein.
- Erstellen Sie das Verzeichnis
opentelemetry
im Agent-Home-Verzeichnis. Beispiel:oracle-apm-agent/opentelemetry
. - Kopieren Sie die OpenTelemetry-Bibliotheken, die im neuen Verzeichnis verwendet werden sollen.
Bibliotheken müssen die folgende Artefakt-ID aufweisen. Bibliotheken, die nicht mit opentelemetry beginnen, sind abhängig von Librarys der Opentelemetrie.
-
Opentelemetrie-api
-
Opentelemetrie-API-Inkubator
-
opentelemetry-Kontext
-
opentelemetry-exporter-common
-
opentelemetry-exporter-otlp
-
opentelemetry-exporter-otlp-common
-
opentelemetry-exporter-sender-okhttp
-
Opentelemetrie-Extension-Trace-Propagatoren
-
opentelemetry-sdk
-
opentelemetry-sdk-common
-
opentelemetry-sdk-extension-autoconfigure
-
opentelemetry-sdk-extension-autoconfigure-spi
-
opentelemetry-sdk-logs
-
opentelemetry-sdk-metrics
-
opentelemetry-sdk-trace
- Anmerkungen
- kotlin-stdlib
- kotlin-stdlib-common
- kotlin-stdlib-jdk7
- kotlin-stdlib-jdk8
-
okhttp
-
okio-3.6.0.jarokio-jvm
Hinweis
Librarys mit unterschiedlicher OpenTelemetry-Version können unterschiedliche Library-Namen aufweisen. -
- Verwenden Sie den APM-Befehl
apm-java-agent-installer provision-agent-upgrade
mit der Option-overwrite
, umoracle-apm-agent/bootstrap/ApmAgent.jar
zu aktualisieren.Dieser Schritt ist erforderlich, um
ApmAgent.jar
so zu aktualisieren, dass benutzerdefinierte Opentelemetriebibliotheken verwendet werden. Beispiel:java -jar apm-java-agent-installer-<version>.jar provision-agent-upgrade -destination=<oracle-apm-agent_parent_path> -overwrite
Propagierungseinstellungen
Die Details zur Propagierungstypbehandlung des APM-Java-Agent finden Sie unter OpenTelemetry und andere Tracer konfigurieren.
Standardmäßig verwendet es das Format B3
(Multi-Header), um die Propagierung zu verarbeiten. Wenn der APM-Java-Agent jedoch für die Arbeit mit OpenTelemetry konfiguriert ist, wird dieser Standardwert an W3C
angepasst. Dies ist das Format, das OpenTelemetry standardmäßig verwendet.
com.oracle.apm.agent.tracer.propagation.type
in der Datei AgentConfig.properties
angeben, wird das Standardverhalten außer Kraft gesetzt, sodass Sie den gewünschten Propagierungstyp verwenden können. Denken Sie daran, dass auch Folgendes angepasst werden muss, um alles miteinander zu verbinden und zusammenzuarbeiten:
- OpenTelemetry update: OpenTelemetry verfügt über eine eigene Eigenschaft zum Ändern der verwendeten Propagatoren.
Sie können die Systemeigenschaft
otel.propagators
oder die UmgebungsvariableOTEL_PROPAGATORS
verwenden, um die Propagatoren zu aktualisieren. Wertdetails finden Sie unter https://opentelemetry.io/docs/languages/sdk-configuration/general/#otel_propagatorsHinweis
Wenn Sie OpenTelemetry ändern möchten, um dasselbe
B3
-Headerformat zu verwenden, das der APM-Java-Agent standardmäßig verwendet, aktualisieren Sie OpenTelemetry, um denb3multi
-Propagator zu verwenden. Wenn SieB3SINGLE
für die Propagierung verwenden, aktualisieren Sie OpenTelemetry, um den PropagatorB3
zu verwenden. - Browser-Agent-Update: Wenn Sie Browser-Agent-Injection verwenden, müssen Sie javascript so aktualisieren, dass ein anderer Propagierungstyp verwendet wird. Standardmäßig wird
B3
(Multi-Header) verwendet. Weitere Informationen finden Sie unter Ajax-Aufrufinstrumentierung konfigurieren.