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 ter 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 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": {} } } } }