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