Configurar o Agente Java do APM para Trabalhar com OpenTelemetry
O Agente Java do APM pode ser configurado para funcionar com OpenTelemetry.
Você pode continuar usando a instrumentação e o monitoramento do Agente Java do APM e fazer com que ele se conecte ao monitoramento OpenTelemetry existente.
Se quiser poder utilizar agentes OpenTelemetry existentes com o APM, consulte o seguinte: Configurar OpenTelemetry e Outros Rastreadores.
OpenTelemetry A instrumentação automática do agente Java (opentelemetry-javaagent.jar) não é suportada. Esse recurso destina-se a trabalhar com aplicativos/bibliotecas que estão usando as APIs OpenTelemetry para fazer instrumentação manual, criando seus próprios intervalos/rastreamentos (opentelemetry-api).
Depois que o agente Java do APM é configurado, ele funciona semelhante ao modo híbrido do agente Java do APM, com a exceção de que também funciona com as APIs OpenTelemetry junto com as APIs OpenTracing.
Esta seção abrange os seguintes tópicos:
W3C A propagação de bagagem é suportada a partir da versão 1.17 do agente Java do APM.
O cenário somente para rastreador não está disponível. No entanto, quando o agente Java do APM estiver configurado para funcionar com OpenTelemetry, seu valor padrão será ajustado para W3C
, que é o formato que o OpenTelemetry usa por padrão.
Ativar OpenTelemetry no Agente do APM
O agente Java do APM suporta rastreamentos e métricas OpenTelemetry. Use a seguinte propriedade para ativar OpenTelemetry para instrumentação manual e métricas personalizadas:
Tipo e Descrição de Propriedades | Propriedades | Padrão | Exemplo |
---|---|---|---|
AgentConfig.properties Atualiza o arquivo |
com.oracle.apm.agent.otel |
falso | com.oracle.apm.agent.hybrid=false |
Propriedades do Sistema Atualiza as propriedades do sistema. |
com.oracle.apm.agent.otel |
falso | com.oracle.apm.agent.otel=false |
Variáveis de Ambiente Atualiza as variáveis de ambiente. |
com_oracle_apm_agent_otel |
falso |
Para Windows: Para Linux: |
OpenTelemetry requer o Java 8 e versões posteriores. A propriedade:
com.oracle.apm.agent.otel=false
é imposta no Java 7 ou abaixo.
Na inicialização do agente Java do APM, a instância OpenTelemetry é iniciada. A instância OpenTelemetry pode ser acessada com GlobalOpenTelemetry.get()
.
Usar outras versões do OpenTelemetry
O agente Java do APM 1.14 tem bibliotecas OpenTelemetry 1.38.0 incorporadas. Como o agente Java do APM suporta instrumentação manual para OpenTelemetry, a versão da API da qual seu projeto depende pode ser diferente.
- Crie o diretório
opentelemetry
no diretório home do agente. Por exemplo:oracle-apm-agent/opentelemetry
. - Copie as bibliotecas OpenTelemetry a serem usadas no novo diretório.
As bibliotecas devem ter o seguinte id de artefato, e as que não começam com opentelemetry dependem de bibliotecas de opentelemetry.
-
opentelemetria-api
-
opentelemetria-api-incubadora
-
contexto da opentelemetria
-
opentelemetry-exporter-comum
-
opentelemetry-exporter-otlp
-
opentelemetry-exporter-otlp-common
-
opentelemetry-exporter-sender-okhttp
-
opentelemetria-extensão-traço-propagadores
-
opentelemetria-sdk
-
opentelemetry-sdk-common
-
opentelemetry-sdk-extension-autoconfigure
-
opentelemetry-sdk-extension-autoconfigure-spi
-
opentelemetry-sdk-logs
-
opentelemetry-sdk-metrics
-
opentelemetry-sdk-trace
- anotações
- kotlin-stdlib
- kotlin-stdlib-comum
- kotlin-stdlib-jdk7
- kotlin-stdlib-jdk8
-
okhttp
-
okio-3.6.0.jarokio-jvm
Observação
As bibliotecas de outra versão do OpenTelemetry podem ter nomes de biblioteca diferentes. -
- Use o comando
apm-java-agent-installer provision-agent-upgrade
do APM com a opção-overwrite
para atualizaroracle-apm-agent/bootstrap/ApmAgent.jar
.Esta etapa é necessária para atualizar
ApmAgent.jar
para usar bibliotecas de opentelemetria personalizadas. Por exemplo:java -jar apm-java-agent-installer-<version>.jar provision-agent-upgrade -destination=<oracle-apm-agent_parent_path> -overwrite
Definições de Propagação
Os detalhes do tratamento do tipo de propagação do agente Java do APM podem ser vistos em Configurar OpenTelemetry e Outros Rastreadores.
Por padrão, ele usa o formato B3
(multicabeçalho) para tratar a propagação. No entanto, quando o agente Java do APM estiver configurado para funcionar com OpenTelemetry, esse valor padrão será ajustado para W3C
, que é o formato que OpenTelemetry usa por padrão.
com.oracle.apm.agent.tracer.propagation.type
no arquivo AgentConfig.properties
, ele substituirá o comportamento padrão, permitindo que você use o tipo de propagação que preferir. Tenha em mente que o seguinte também precisa ser ajustado para ter tudo se conectando e trabalhando juntos:
- Atualização OpenTelemetry: OpenTelemetry tem sua própria propriedade para alterar quais propagadores são usados.
Você pode usar a propriedade do sistema:
otel.propagators
ou a variável de ambiente:OTEL_PROPAGATORS
para atualizar os propagadores. Para obter detalhes do valor, consulte https://opentelemetry.io/docs/languages/sdk-configuration/general/#otel_propagatorsObservação
Se você quiser alterar OpenTelemetry para usar o mesmo formato de cabeçalhos
B3
que o agente Java do APM usa por padrão, atualize OpenTelemetry para usar o propagadorb3multi
. Se você estiver usandoB3SINGLE
para propagação, atualize OpenTelemetry para usar o propagadorB3
. - Atualização do Agente do Browser: Se você estiver usando a injeção do Agente do Browser, será necessário atualizar o javascript para usar outro tipo de propagação. Por padrão, ele usa
B3
(multicabeçalho). Para obter detalhes, consulte Configurar Instrumentação de Chamadas Ajax.