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, seselectors
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, seselectors
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 deaction
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 pelosselectors
.drop
: especifica o descarte da métrica e dos rastreamentos que correspondem aosselectors
.replace
: especifica a substituição das dimensões das métricas e dos rastreamentos que correspondem aosselectors
. A substituição ocorre de acordo com a seçãoreplacements
.
replacements
Necessário seaction
forreplace
. Uma matriz de pares de dimensões e valores que serão aplicados às métricas e aos rastreamentos que correspondem aosselectors
especificados quando aaction
forreplace
. Cada substituição deve fornecer os seguintes campos:target_dimension
: obrigatório, sereplacements
não for um campo vazio. Especifica a dimensão que precisa ser substituída.value
: obrigatório, sereplacements
não for um campo vazio. O valor que substituirá o valor original portarget_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) Setrue
, 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ãos
,m
,h
,ms
,us
ens
.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çãoagent
também deve ser configurado comotrue
.
-
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:
A regra
keep01
garante que quaisquer métricas e rastreamentos com a dimensãoService
comopet-clinic-frontend
e a dimensãoRemoteService
comocustomers-service
sejam mantidos.Para as métricas e os rastreamentos processados após a aplicação de
keep01
, a regradrop01
garante que as métricas e os rastreamentos com a dimensãoOperation
comoGET /api/customer/owners/*
sejam descartados.Para as métricas e os rastreamentos processados após a aplicação de
drop01
, a regrareplace01
atualiza as métricas e os rastreamentos que têm a dimensãoOperation
comoPUT /api/customer/owners/*/pets/*
e a dimensãoRemoteOperation
comoPUT /owners
, de modo que a dimensãoOperation
passe a ser substituída porPUT /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": {} } } } }