Habilitar o CloudWatch Application Signals - Amazon CloudWatch

Habilitar o CloudWatch Application Signals

Use o CloudWatch Application Signals para instrumentar as aplicações de forma automática na AWS para que você possa acompanhar a performance das aplicações em relação aos seus objetivos de negócios. O Application Signals fornece uma visualização unificada e centrada em aplicações para as aplicações em Java, as dependências e as bordas. Para obter mais informações, consulte Application Signals.

O CloudWatch Application Signals utiliza o agente do CloudWatch para receber métricas e rastreamentos das aplicações instrumentadas de forma automática, aplicar regras para reduzir a alta cardinalidade, como opção, e, em seguida, publicar a telemetria processada no CloudWatch. É possível fornecer uma configuração personalizada ao agente do CloudWatch, especificamente para o Application Signals, ao usar o arquivo de configuração do agente. Para começar, a existência de uma seção application_signals na seção metrics_collected dentro da seção logs do arquivo de configuração do agente especifica que o agente do CloudWatch receberá métricas das aplicações instrumentadas de forma automática. De maneira semelhante, a existência de uma seção application_signals na seção traces_collected dentro da seção traces do arquivo de configuração do agente especifica que o agente do CloudWatch está habilitado para receber rastreamentos das aplicações instrumentadas de forma automática. Além disso, como opção, é possível aprovar as regras de configuração personalizadas para reduzir a publicação de telemetria de alta cardinalidade, conforme descrito nesta seção.

  • Para os clusters do Amazon EKS, quando você instala o complemento Amazon CloudWatch Observability do EKS, por padrão, o agente do CloudWatch é habilitado para receber métricas e rastreamentos das aplicações instrumentadas de forma automática. Caso deseje, opcionalmente, aprovar regras de configuração personalizadas, você poderá fazê-lo ao aprovar uma configuração do agente personalizada para o complemento do Amazon EKS ao criá-lo ou atualizá-lo usando a configuração adicional, conforme descrito em (Opcional) Configuração adicional.

  • Para o RedHat OpenShift na AWS (ROSA), quando você instala o operador do agente do CloudWatch usando charts do Helm, o agente do CloudWatch é habilitado por padrão para receber métricas e rastreamentos das suas aplicações automaticamente instrumentadas. Se desejar, você pode opcionalmente fornecer regras de configuração personalizadas ao transmitir uma configuração personalizada do agente por meio do chart do Helm, conforme descrito em (Opcional) Configuração adicional.

  • Para as outras plataformas compatíveis, incluindo o Amazon EC2, é necessário iniciar o agente do CloudWatch com uma configuração do agente que habilite o Application Signals ao especificar as seções application_signals e, opcionalmente, quaisquer regras de configuração personalizadas, conforme descrito posteriormente nesta seção.

Veja a seguir uma visão geral dos campos que estão relacionados ao CloudWatch Application Signals no arquivo de configuração do agente do CloudWatch.

  • logs

    • metrics_collected: este campo pode conter seções que especificam que o agente deve coletar logs para habilitar casos de uso, como o CloudWatch Application Signals e o Container Insights, com uma observabilidade aprimorada para o Amazon EKS.

      nota

      Anteriormente, essa seção também era usada para especificar que o agente deveria coletar logs que estivessem no formato de métrica incorporada. Essas configurações não são mais necessárias.

      • application_signals (Opcional) Especifica que você deseja habilitar que o CloudWatch Application Signals receba métricas das aplicações instrumentadas de forma automática para viabilizar o CloudWatch Application Signals.

        • rules (Opcional) Uma matriz de regras para selecionar condicionalmente as métricas e os rastreamentos e aplicar ações para tratar cenários de alta cardinalidade. Cada regra pode conter os seguintes campos:

          • rule_name (Opcional) O nome da regra.

          • selectors (Opcional) Uma matriz de agentes de correspondências de dimensão para as métricas e para os rastreamentos. Cada seletor deve fornecer os seguintes campos:

            • dimension: obrigatório, se selectors não for um campo vazio. Esse campo especifica a dimensão para as métricas e para os rastreamentos a serem usados ​​como filtros.

            • match: obrigatório, se selectors não for um campo vazio. Um padrão curinga usado para realizar a correspondência de valores da dimensão especificada.

          • action (Opcional) A ação a ser aplicada às métricas e aos rastreamentos que correspondem aos seletores especificados. O valor de action deve ser uma das seguintes palavras-chave:

            • keep: especifica somente o envio de métricas e de rastreamentos para o CloudWatch, se eles forem correspondidos pelos selectors.

            • drop: especifica o descarte da métrica e dos rastreamentos que correspondem aos selectors.

            • replace: especifica a substituição das dimensões das métricas e dos rastreamentos que correspondem aos selectors. A substituição ocorre de acordo com a seção replacements.

          • replacements Necessário se action for replace. Uma matriz de pares de dimensões e valores que serão aplicados às métricas e aos rastreamentos que correspondem aos selectors especificados quando a action for replace. Cada substituição deve fornecer os seguintes campos:

            • target_dimension: obrigatório, se replacements não for um campo vazio. Especifica a dimensão que precisa ser substituída.

            • value: obrigatório, se replacements não for um campo vazio. O valor que substituirá o valor original por target_dimension.

        • limiter (Opcional) Use esta seção para limitar quantas métricas e dimensões o Application Signals enviará ao CloudWatch com a finalidade de otimizar seus custos.

          • disabled (Opcional) Se true, o recurso de limitação de métricas estará desabilitado. O padrão é false

          • drop_threshold (Opcional) O número máximo de métricas distintas por serviço em um intervalo de rotação que podem ser exportadas por um agente do CloudWatch. O padrão é 500.

          • rotation_interval (Opcional) O intervalo no qual o limitador redefine os registros de métricas para contagem de distinção. O intervalo é expresso como uma string com uma sequência de números e um sufixo de unidade. As frações são compatíveis. Os sufixos de unidades compatíveis são s, m, h, ms, us e ns.

            O padrão é 1h para uma hora.

          • log_dropped_metrics (Opcional) Especifica se o agente deve gravar os registros em log nos logs do agente do CloudWatch quando as métricas do Application Signals são descartadas. O padrão é false.

            nota

            Para ativar esse registro log, o parâmetro debug na seção agent também deve ser configurado como true.

  • traces

    • traces_collected

      • application_signals: opcional. Especifique isso para habilitar que o agente do CloudWatch receba rastreamentos das aplicações instrumentadas de forma automática para viabilizar o CloudWatch Application Signals.

nota

Embora as regras application_signals personalizadas sejam especificadas na seção metrics_collected, que está contida na seção logs, elas também se aplicam de forma implícita à seção traces_collected. O mesmo conjunto de regras se aplicará às métricas e aos rastreamentos.

Quando existem múltiplas regras com ações diferentes, elas se aplicam na seguinte sequência: keep, drop e replace.

Veja a seguir um exemplo de um arquivo de configuração completo para o agente do CloudWatch que aplica as regras personalizadas.

{ "logs": { "metrics_collected": { "application_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "application_signals": {} } } }

Para o arquivo de configuração no exemplo anterior, as rules são processadas da seguinte forma:

  1. A regra keep01 garante que quaisquer métricas e rastreamentos com a dimensão Service como pet-clinic-frontend e a dimensão RemoteService como customers-service sejam mantidos.

  2. Para as métricas e os rastreamentos processados após a aplicação de keep01, a regra drop01 garante que as métricas e os rastreamentos com a dimensão Operation como GET /api/customer/owners/* sejam descartados.

  3. Para as métricas e os rastreamentos processados após a aplicação de drop01, a regra replace01 atualiza as métricas e os rastreamentos que têm a dimensão Operation como PUT /api/customer/owners/*/pets/* e a dimensão RemoteOperation como PUT /owners, de modo que a dimensão Operation passe a ser substituída por PUT /api/customer/owners/{ownerId}/pets{petId}.

Veja a seguir um exemplo completo de um arquivo de configuração do CloudWatch que gerencia a cardinalidade no Application Signals ao alterar o limite de métricas para 100, ao habilitar o registro em log de métricas descartadas e ao definir o intervalo de rotação para duas horas.

{ "logs": { "metrics_collected": { "application_signals": { "limiter": { "disabled": false, "drop_threshold": 100, "rotation_interval": "2h", "log_dropped_metrics": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }