Observabilidade via OpenTelemetry
Saiba como o AEM as a Cloud Service usa o OpenTelemetry para enviar rastreamentos, métricas e logs para a plataforma de Monitoramento de desempenho de aplicativo (APM) de sua escolha.
O Adobe está substituindo a integração interna de Monitoramento de Desempenho de Aplicativo (APM) no AEM as a Cloud Service por OpenTelemetry, um padrão aberto para coletar e exportar rastreamentos, métricas e logs. Com o OpenTelemetry, você traz seu próprio ponto de extremidade APM e monitora o AEM junto com o restante dos seus aplicativos, usando as ferramentas que suas equipes já conhecem. Para obter mais informações, consulte a documentação do OpenTelemetry.
Este artigo explica o que a integração oferece, como a telemetria flui do AEM para a plataforma APM, o que você controla e o que considerar antes de ativá-la. O tutorial de configuração explica como configurar o OpenTelemetry para o seu ambiente do AEM.
Por que OpenTelemetry
Com o OpenTelemetry, você pode:
- Escolha sua plataforma: envie telemetria para qualquer back-end que aceite o OpenTelemetry Protocol sobre HTTPS (OTLP/HTTPS), incluindo seu provedor atual, se ele oferecer suporte a OTLP.
- Ver o cenário completo: obtenha rastreamentos, métricas e logs por meio de uma integração, em vez de mecanismos separados.
- Investigue mais rápido: encontre solicitações lentas ou com falha, rastreie a integridade da JVM ao longo do tempo e correlacione o comportamento do AEM com outros serviços durante um incidente.
- Mantenha o controle: configure para qual destino enviar dados, usando o Pipeline de configuração do Cloud Manager, e gerencie painéis, alertas e retenção em sua própria plataforma.
A Adobe fornece e atualiza o agente Java OpenTelemetry que é executado com o AEM para que você não o instale nem atualize. Você decide para onde vai a telemetria.
Como funciona
O diagrama a seguir mostra o fluxo lógico de telemetria dos serviços da AEM para a sua plataforma de observabilidade:
O agente Java OpenTelemetry coleta telemetria de aplicativos dos serviços da AEM e envia-a para um coletor OpenTelemetry em execução no ambiente do AEM. O coletor processa a telemetria e a encaminha por OTLP/HTTPS para a plataforma de observabilidade configurada.
Somente a telemetria gerada pelo aplicativo AEM é enviada. As informações sobre o tempo de execução e a plataforma subjacentes, como nomes de host internos, endereços, identificadores de contêiner e detalhes do sistema operacional ou do processo, são removidas antes que os dados saiam do ambiente.
Qual telemetria está disponível
otel.yaml usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuraçãootel.yaml com metrics: true usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuraçãootel.yaml com logs: true usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuraçãoAlguns detalhes a serem considerados:
- Para manter os rastreamentos concentrados nas solicitações de aplicativos, atividades internas de alto volume, como testes de integridade e tarefas do scheduler (Quartz), são filtradas.
- As extensões internas refinadas da estrutura do AEM, como a resolução de recursos do Sling, os serviços OSGi e o acesso ao JCR, não são emitidas nesta versão.
- As métricas usam nomes OpenTelemetry padrão, por exemplo
jvm.memory.used,jvm.gc.duration,jvm.thread.countehttp.server.request.duration.
Como os serviços da AEM são identificados
Cada rastreamento, métrica e entrada de log contém atributos de recursos que permitem que sua plataforma diferencie ambientes e níveis:
-
service.nameidentifica o programa, o ambiente, a camada e o tipo de ambiente, seguindo este padrão:code language-text cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>Por exemplo,
cm-p12345-e67890-aem-publish-prodé o serviço de Publicação do ambiente 67890 no programa 12345, executado em um ambiente de produção. -
deployment.environmentidentifica o tipo de ambiente, comoprodoustage.
Use esses atributos para filtrar e agrupar a telemetria, e para correlacionar logs com rastreamentos e métricas do mesmo serviço.
O que você controla
Você configura a integração implantando o arquivo config/otel.yaml usando o Pipeline de configuração do Cloud Manager.
O arquivo de configuração de exemplo é:
kind: "Otel"
version: "v1"
metadata:
envTypes:
- "dev"
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "<YOUR_OTLP_HTTPS_ENDPOINT>"
authHeaderName: "Authorization"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true
logs: true
advancedNetworking: false
A configuração determina:
- Os tipos de ambiente (
prod,stage,dev) aos quais se aplica - O tipo de destino (
newrelic,dynatrace,genericetc.) e endpoint OTLP/HTTPS - A credencial de autenticação (
authHeaderNameeauthHeaderValue), referenciada como uma variável de ambiente secret do Cloud Manager chamadaOTEL_CUSTOMER_AUTH - Se métricas (
metrics: true) e logs (logs: true) são exportados além dos rastreamentos - Se a Rede Avançada (
advancedNetworking: true) é usada para o destino
A credencial de autenticação (authHeaderValue) deve ser armazenada como uma variável de ambiente secret do Cloud Manager chamada OTEL_CUSTOMER_AUTH e referenciada do arquivo de configuração. Nunca armazene credenciais como texto simples no repositório.
Se o seu ponto de extremidade OTLP/HTTPS for privado ou exigir tráfego de saída de um endereço IP estável e conhecido, habilite a Rede Avançada com saída dedicada. A configuração advancedNetworking não tem efeito a menos que a Cloud Manager já tenha provisionado a Rede Avançada para o ambiente. Um endpoint SaaS público usa o caminho de rede de saída padrão.
Destinos compatíveis
É possível enviar telemetria para qualquer plataforma APM que exponha um terminal OTLP/HTTPS, incluindo:
- New Relic
- Dynatrace
- Datadog
- Grafana Cloud
- Nuvem de observação do Splunk
- Traço0
- Colmeia
- Observabilidade Elástica
- Lógica Sumo
- Observabilidade do ServiceNow Cloud
Esta lista não é exaustiva. O OpenTelemetry define o formato de telemetria e o protocolo de exportação, e sua plataforma selecionada determina como os dados são consultados, visualizados, retidos e alertados.
Escolher uma plataforma de observabilidade
Você precisa de uma plataforma que aceite OTLP/HTTPS para receber a telemetria. A Adobe não fornece, você deve oferecer sua própria plataforma de observabilidade.
Se sua organização já usar uma das plataformas acima, comece por lá. Caso contrário, escolha entre uma plataforma SaaS (hospedada pelo fornecedor) e uma plataforma auto-hospedada:
Antes de começar
- Ambientes: você pode habilitar OpenTelemetry individualmente em ambientes de produção, preparo e desenvolvimento. No entanto, ambientes com escopo HIPAA, programas de sandbox e RDEs (Rapid Development Environments, ambientes de desenvolvimento rápido) NÃO são compatíveis.
- Versões: a integração oferece suporte ao OpenTelemetry Java agent 2.x e ao protocolo de exportação OTLP/HTTPS.
Próximas etapas
Siga o tutorial de configuração para configurar OpenTelemetry com o projeto de amostra WKND do AEM ou com seu próprio projeto do AEM.