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.

AVAILABILITY
Este recurso está em Disponibilidade Limitada. Para usá-lo, solicite acesso enviando um email para aemcs-apm-beta@adobe.com - o Adobe habilita o OpenTelemetry para seus ambientes logo após responder à sua solicitação. Se seu ambiente usa atualmente a integração APM integrada do Adobe, essa integração interromperá o envio de dados quando OpenTelemetry estiver habilitada, já que os dois não poderão ser executados ao mesmo tempo.
Observe que ele não está disponível para ambientes com escopo HIPAA, RDE (Rapid Development Environments) e sandboxes.

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:

Fluxo lógico de telemetria dos serviços da AEM para a plataforma de observabilidade do cliente

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

Sinal
O que você ganha
Como habilitar
Rastreamentos
Abrange as solicitações manipuladas pelo aplicativo: solicitações HTTP de entrada, processamento de servlet e chamadas de saída.
Configure e implante o arquivo otel.yaml usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuração
Métricas
Métricas de tempo de execução da JVM (memória, coleta de lixo, threads, utilização do CPU) e métricas de solicitação do servidor HTTP (taxa, latência e taxa de erros).
Configure e implante o arquivo otel.yaml com metrics: true usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuração
Logs
Entradas de log do aplicativo AEM (AVISO e acima), enviadas usando o sinal de logs OpenTelemetry. Observe que os logs do Dispatcher e do CDN NÃO são enviados.
Configure e implante o arquivo otel.yaml com logs: true usando o Pipeline de configuração do Cloud Manager. Consulte o tutorial de configuração

Alguns 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.count e http.server.request.duration.
WARNING
Se você enviar logs por meio de OpenTelemetry e por meio de Encaminhamento de Logs para o mesmo destino, você receberá mensagens de log duplicadas. Habilite somente um caminho por destino ou envie cada um para um destino diferente.
O encaminhamento de logs é um mecanismo separado e continua a funcionar como funciona atualmente.

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.name identifica 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.environment identifica o tipo de ambiente, como prod ou stage.

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, generic etc.) e endpoint OTLP/HTTPS
  • A credencial de autenticação (authHeaderName e authHeaderValue), referenciada como uma variável de ambiente secret do Cloud Manager chamada OTEL_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:

Hospedado pelo fornecedor (SaaS)
Auto-hospedado
Instalação
Nada para instalar ou operar.
Você instala, atualiza e dimensiona a plataforma.
Local dos dados
A telemetria deixa o ambiente e pode precisar de uma revisão de segurança ou privacidade.
A telemetria permanece na infraestrutura que você controla.
Recursos
Painéis, alertas e exibições de APM normalmente são incorporados. Alguns recursos são específicos do fornecedor.
Os recursos dependem do software escolhido.
Custo
Os preços normalmente dependem do volume de dados.
Você paga pelo tempo de infraestrutura e engenharia.
Disponibilidade
O fornecedor opera o serviço.
Você gerencia tempo de atividade, armazenamento, backups e retenção.

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.

Recursos adicionais

recommendation-more-help
experience-manager-learn-help-cloud-service