Métricas coletadas pelo Application Signals
O Application Signals coleta métricas de aplicação padrão e métricas de runtime das aplicações para os quais você o habilita.
As métricas padrão da aplicação estão relacionadas às partes mais críticas da performance, latência e disponibilidade do serviço.
As métricas de runtime monitoram as métricas da aplicação ao longo do tempo, incluindo uso de memória, uso de CPU e coleta de resíduos. O Application Signals exibe as métricas de runtime no contexto dos serviços que você habilitou para o Application Signals. Quando você tem um problema operacional, observar as métricas de runtime pode ser útil para ajudar a encontrar a causa raiz do problema. Por exemplo, você pode ver se os picos na latência no serviço estão relacionados a picos em uma métrica de runtime.
Tópicos
Coleta de métricas de aplicações padrão
O Application Signals coleta métricas de aplicações padrão usando os serviços que descobre. Essas métricas estão relacionadas aos aspectos mais críticos da performance de um serviço, nomeadamente, a latência, as falhas e os erros. As métricas podem ajudar você a identificar problemas, monitorar tendências de performance e otimizar recursos para aprimorar a experiência geral do usuário.
A tabela apresentada a seguir lista as métricas coletadas pelo Application Signals. Essas métricas são enviadas ao CloudWatch no namespace ApplicationSignals
.
Métrica | Descrição |
---|---|
|
O atraso antes da transferência de dados começa após a solicitação ser realizada. Unidade: milissegundos |
|
Uma contagem de falhas do lado do servidor HTTP 5XX e de erros de status de extensão do OpenTelemetry. Unidades: nenhuma |
|
Uma contagem de erros do lado do cliente HTTP 4XX. Eles são considerados erros de solicitação que não são causados por problemas de serviço. Portanto, a métrica Unidades: nenhuma |
A métrica Availability
exibida nos painéis do Application Signals é calculada como (1 - Faults
/Total)*100. O total de respostas inclui todas as respostas e é derivado deSampleCount(Latency)
. As respostas com êxito são todas as respostas sem erros 5XX
. As respostas 4XX
são tratadas como com êxito quando o Application Signals calcula a Availability
.
Dimensões coletadas e combinações de dimensões
As dimensões apresentadas a seguir são definidas para cada uma das métricas de aplicações padrão. Para obter mais informações sobre dimensões, consulte Dimensões.
Diferentes dimensões são coletadas para as métricas de serviço e para as métricas de dependência. Dentro dos serviços descobertos pelo Application Signals, quando o microsserviço A chama o microsserviço B, este está atendendo à solicitação. Nesse caso, o microsserviço A emite métricas de dependência e o microsserviço B emite métricas de serviço. Quando um cliente chama o microsserviço A, este está atendendo à solicitação e emite métricas de serviço.
Dimensões para métricas de serviço
As dimensões apresentadas a seguir são coletadas para as métricas de serviço.
Dimensão | Descrição |
---|---|
|
O nome do serviço da . O valor máximo é de 255 caracteres. |
|
O nome da operação de API ou de outra atividade. O valor máximo é de 1.024 caracteres. Atualmente, você só poderá definir objetivos de nível de serviço nas operações quando o nome da operação tiver 194 caracteres ou menos. |
|
O nome do ambiente em que os serviços estão sendo executados. Se os serviços não estiverem sendo executados no Amazon EKS, você poderá especificar um valor personalizado opcional para O valor máximo é de 259 caracteres. |
Ao visualizar essas métricas no console do CloudWatch, é possível vê-las usando as seguintes combinações de dimensões:
-
[Environment, Service, Operation, [Latency, Error, Fault]]
-
[Environment, Service, [Latency, Error, Fault]]
Dimensões para métricas de dependência
As seguintes dimensões são coletadas para métricas de dependência:
Dimensão | Descrição |
---|---|
|
O nome do serviço da . O valor máximo é de 255 caracteres. |
|
O nome da operação de API ou de outra operação. O valor máximo é de 1.024 caracteres. |
|
O nome do serviço remoto que está sendo invocado. O valor máximo é de 255 caracteres. |
|
O nome da operação de API que está sendo invocada. O valor máximo é de 1.024 caracteres. |
|
O nome do ambiente em que os serviços estão sendo executados. Se os serviços não estiverem sendo executados no Amazon EKS, você poderá especificar um valor personalizado opcional para O valor máximo é de 259 caracteres. |
|
O nome do ambiente em que os serviços da dependência estão sendo executados. O parâmetro O valor máximo é de 259 caracteres. |
|
O nome do recurso invocado por uma chamada remota. O parâmetro O valor máximo é de 1.024 caracteres. |
|
O tipo do recurso que é invocado por uma chamada remota. Obrigatório somente se O valor máximo é de 1.024 caracteres. |
Ao visualizar essas métricas no console do CloudWatch, é possível vê-las usando as seguintes combinações de dimensões:
Execução em clusters do Amazon EKS
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, [Latency, Error, Fault]]
-
[RemoteService [Latency, Error, Fault]]
-
[RemoteService, RemoteResourceIdentifier, RemoteResourceType [Latency, Error, Fault]]
Métricas de runtime
O Application Signals usa o SDK do AWS Distro para OpenTelemetry para coletar automaticamente métricas compatíveis com o OpenTelemetry das aplicações Java e Python. Para que as métricas de runtime sejam coletadas, você deve atender aos seguintes pré-requisitos:
O agente do CloudWatch deve ser da versão
1.300049.1
ou posterior.Se você usar o complemento Amazon CloudWatch Observability EKS, ele deverá ser da versão
2.30-eksbuild.1
ou posterior. Se você atualizar o complemento, deverá reiniciar as aplicações.Para aplicações Java, você deve estar executando a versão
1.32.5
ou posterior do SDK do AWS Distro do OpenTelemetry para Java.Para aplicações Python, você deve estar executando a versão
0.7.0
ou posterior do SDK do AWS Distro para OpenTelemetry para Python.Para aplicações .Net, você deve estar executando a versão
1.6.0
ou mais recente do SDK do AWS Distro para OpenTelemetry para .Net.
As métricas de runtime não são coletadas para aplicações Node.js.
As métricas de runtime são cobradas como parte dos custos do Application Signals. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch
nota
Problemas conhecidos
Sabemos que a coleção de métricas de runtime na versão v1.32.5 do Java SDK não funciona com aplicações que usam o JBoss Wildfly. Esse problema se estende ao complemento Amazon CloudWatch Observability EKS, afetando as versões 2.3.0-eksbuild.1
até 2.6.0-eksbuild.1
. O problema foi corrigido na versão v1.32.6
do Java SDK e na versão v3.0.0-eksbuild.1
do complemento Amazon CloudWatch Observability para EKS.
Se você for afetado, atualize a versão do Java SDK ou desabilite a coleção de métricas de runtime adicionando a variável de ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
à sua aplicação.
Métricas de runtime Java
O Application Signals coleta as métricas a seguir da JVM das aplicações Java que você habilita para o Application Signals. Todas as métricas de runtime são enviadas para o CloudWatch no namespace ApplicationSignals
, e são coletadas com o conjunto de dimensões Service
e Environment
.
Nome da métrica | Descrição | Estatísticas significativas |
---|---|---|
|
Métrica agregada da duração das ações de coleta de resíduos da JVM. Unidade: milissegundos |
Soma, Média, Mínimo, Máximo |
|
Métrica agregada da duração das ações de coleta de resíduos da JVM da geração antiga. Somente disponível na G1. Unidade: milissegundos |
Soma, Média, Mínimo, Máximo |
|
Métrica agregada da duração das ações de coleta de resíduos da JVM da geração mais recente. Somente disponível na G1. Unidade: milissegundos |
Soma, Média, Mínimo, Máximo |
|
Métrica agregada da quantidade de ações de coleta de resíduos da JVM. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
Métrica agregada da quantidade de ações de coleta de resíduos da JVM da antiga geração. Somente disponível na G1. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
Métrica agregada da quantidade de ações de coleta de resíduos da JVM da antiga mais recente. Somente disponível na G1. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
A quantidade do heap de memória usado. Unidade: bytes |
Média, Mínimo, Máximo |
|
Quantidade de memória usada, conforme calculada após o evento de coleta de resíduos mais recente neste pool. Unidade: bytes |
Média, Mínimo, Máximo |
|
A quantidade de memória usada pela geração antiga. Unidade: bytes |
Média, Mínimo, Máximo |
|
A quantidade do heap memória usado pelo survivor space. Unidade: bytes |
Média, Mínimo, Máximo |
|
A quantidade de memória usada pelo eden space. Unidade: bytes |
Média, Mínimo, Máximo |
|
A quantidade de memória não heap usada. Unidade: bytes |
Média, Mínimo, Máximo |
|
O número de threads em execução, incluindo threads daemon e não daemon. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número de classes carregadas. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O tempo de CPU usado pelo processo, conforme relatado pela JVM. Unidade: nenhuma (nanossegundos) |
Soma, Média, Mínimo, Máximo |
|
A CPU recente utilizada pelo processo, conforme relatado pela JVM. Unidade: nenhuma |
Média, Mínimo, Máximo |
Métricas de runtime Python
O Application Signals coleta as métricas a seguir das aplicações Python que você habilita para o Application Signals. Todas as métricas de runtime são enviadas para o CloudWatch no namespace ApplicationSignals
, e são coletadas com o conjunto de dimensões Service
e Environment
.
Nome da métrica | Descrição | Estatísticas significativas |
---|---|---|
|
O número total de objetos que estão sendo rastreados atualmente. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número de objetos que estão sendo rastreados atualmente na Geração 0. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número de objetos que estão sendo rastreados atualmente na Geração 1. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número de objetos que estão sendo rastreados atualmente na Geração 2. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
A quantidade total de memória virtual usada pelo processo. Unidade: bytes |
Média, Mínimo, Máximo |
|
A quantidade total de memória física não trocada usada pelo processo. Unidade: bytes |
Média, Mínimo, Máximo |
|
O número de threads atualmente usados pelo processo. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O tempo de CPU usado pelo processo. Unidade: segundos |
Soma, Média, Mínimo, Máximo |
|
A utilização da CPU do processo. Unidade: nenhuma |
Média, Mínimo, Máximo |
Métricas de runtime de .Net
O Application Signals coleta as métricas a seguir das aplicações .Net que você habilita para o Application Signals. Todas as métricas de runtime são enviadas para o CloudWatch no namespace ApplicationSignals
, e são coletadas com o conjunto de dimensões Service
e Environment
.
Nome da métrica | Descrição | Estatísticas significativas |
---|---|---|
|
O número total de métricas de coleta de resíduos rastreadas na Geração 0 desde o início do processo. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número total de métricas de coleta de resíduos rastreadas na Geração 1 desde o início do processo. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O número total de métricas de coleta de resíduos rastreadas na Geração 2 desde o início do processo. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O tempo total de pausa na coleta de resíduos desde o início do processo. Unidade: nenhuma |
Soma, Média, Mínimo, Máximo |
|
O tamanho do heap (incluindo fragmentação) da Geração 0 observado durante a última coleta de resíduos. notaEssa métrica só estará disponível após a conclusão da primeira coleta de resíduos. Unidade: bytes |
Média, Mínimo, Máximo |
|
O tamanho do heap (incluindo fragmentação) da Geração 1 observado durante a última coleta de resíduos. notaEssa métrica só estará disponível após a conclusão da primeira coleta de resíduos. Unidade: bytes |
Média, Mínimo, Máximo |
|
O tamanho do heap (incluindo fragmentação) da Geração 2 observado durante a última coleta de resíduos. notaEssa métrica só estará disponível após a conclusão da primeira coleta de resíduos. Unidade: bytes |
Média, Mínimo, Máximo |
|
O tamanho do heap de objetos grandes (incluindo fragmentação) observado durante a última coleta de resíduos. notaEssa métrica só estará disponível após a conclusão da primeira coleta de resíduos. Unidade: bytes |
Média, Mínimo, Máximo |
|
O tamanho do heap de objetos fixados (incluindo fragmentação) observado durante a última coleta de resíduos. notaEssa métrica só estará disponível após a conclusão da primeira coleta de resíduos. Unidade: bytes |
Média, Mínimo, Máximo |
|
O número de threads do pool de threads que existem atualmente. Unidade: nenhuma |
Média, Mínimo, Máximo |
|
O número de itens de trabalho que estão atualmente na fila para serem processados pelo pool de threads. Unidade: nenhuma |
Média, Mínimo, Máximo |
Desativar a coleta de métricas de runtime
As métricas de runtime são coletadas por padrão de aplicações Java e Python que estão habilitadas para o Application Signals. Se você quiser desabilitar a coleta dessas métricas, siga as instruções descritas nesta seção para o seu ambiente.
Amazon EKS
Para desabilitar as métricas de runtime nas aplicações do Amazon EKS no nível da aplicação, adicione a variável de ambiente a seguir à especificação da workload.
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
Para desabilitar as métricas de runtime nas aplicações do Amazon EKS no nível do cluster, aplique a configuração à configuração avançada do complemento Amazon CloudWatch Observability EKS.
{ "agent": { "config": { "traces": { "traces_collected": { "application_signals": { } } }, "logs": { "metrics_collected": { "application_signals": { } } } }, "manager": { "autoInstrumentationConfiguration": { "java": { "runtime_metrics": { "enabled": false } }, "python": { "runtime_metrics": { "enabled": false } }, "dotnet": { "runtime_metrics": { "enabled": false } } } } } }
Amazon ECS
Para desabilitar as métricas de runtime nas aplicações do Amazon ECS, adicione a variável de ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
na nova revisão da definição de tarefas e reimplante a aplicação.
EC2
Para desabilitar as métricas de runtime nas aplicações do Amazon EC2, adicione a variável de ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
antes do início da aplicação.
Kubernetes
Para desabilitar as métricas de runtime nas aplicações do Kubernetes no nível da aplicação, adicione a variável de ambiente a seguir à especificação da workload.
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
Para desabilitar as métricas de runtime nas aplicações do Kubernetes no nível do cluster, use o seguinte:
helm upgrade ... \ --set-string manager.autoInstrumentationConfiguration.java.runtime_metrics.enabled=false \ --set-string manager.autoInstrumentationConfiguration.python.runtime_metrics.enabled=false \ -\-set-string manager.autoInstrumentationConfiguration.dotnet.runtime_metrics.enabled=false