Standard application metrics collected - Amazon CloudWatch

Standard application metrics collected

Application Signals collects standard application metrics from the services that it discovers. These metrics relate to the most critical aspects of a service's performance: latency, faults, and errors. They can help you identify issues, monitor performance trends, and optimize resources to improve the overall user experience.

The following table lists the metrics collected by Application Signals. These metrics are sent to CloudWatch in the ApplicationSignals namespace.

Metric Description

Latency

The delay before data transfer begins after the request is made.

Units: Milliseconds

Faults

A count of both HTTP 5XX server-side faults and OpenTelemetry span status errors.

Units: None

Errors

A count of HTTP 4XX client-side errors. These are considered to be request errors that are not caused by service problems. Therefore, the Availability metric displayed on Application Signals dashboards does not regard these errors as service faults.

Units: None

The Availability metric displayed on Application Signals dashboards is computed as (1 - Faults/Total)*100. Total responses includes all responses and is derived from SampleCount(Latency). Successful responses are all responses without a 5XX error. 4XX responses are treated as successful when Application Signals calculates Availability.

Dimensions collected and dimension combinations

The following dimensions are defined for each of the standard application metrics. For more information about dimensions, see Dimensions.

Different dimensions are collected for service metrics and dependency metrics. Within the services discovered by Application Signals, when microservice A calls microservice B, microservice B is serving the request. In this case, microservice A emits dependency metrics and microservice B emits service metrics. When a client calls microservice A, microservice A is serving the request and emits service metrics.

Dimensions for service metrics

The following dimensions are collected for service metrics.

Dimension Description

Service

The name of the service.

The maximum value is 255 characters.

Operation

The name of the API operation or other activity.

The maxiumum value is 1024 characters. Currently, you can set service level objectives on operations only if the operation name is 194 characters or fewer.

Environment

The name of the environment where services are running. If services are not running on Amazon EKS, you can specify an optional custom value for deployment.environment in the OTEL_ATTRIBUTE_RESOURCES parameter.

The maxiumum value is 259 characters.

When you view these metrics in the CloudWatch console, you can view them using the following dimension combinations:

  • [Environment, Service, Operation, [Latency, Error, Fault]]

  • [Environment, Service, [Latency, Error, Fault]]

Dimensions for dependency metrics

The following dimensions are collected for dependency metrics:

Dimension Description

Service

The name of the service.

The maximum value is 255 characters.

Operation

The name of the API operation or other operation.

The maximum value is 1024 characters.

RemoteService

The name of the remote service being invoked.

The maximum value is 255 characters.

RemoteOperation

The name of the API operation being invoked.

The maximum value is 1024 characters.

Environment

The name of the environment where services are running. If services are not running on Amazon EKS, you can specify an optional custom value for deployment.environment in the OTEL_ATTRIBUTE_RESOURCES parameter.

The maxiumum value is 259 characters.

RemoteEnvironment

The name of the environment where dependency services are running. The RemoteEnvironment parameter is automatically generated when a service calls a dependency and they are both running in the same cluster. Otherwise, RemoteEnvironment is neither generated nor reported in the service dependency's metrics. Currently only available on Amazon EKS and K8S platforms.

The maximum value is 259 characters.

RemoteResourceIdentifier

The name of the resource invoked by a remote call. The RemoteResourceIdentifier parameter is automatically generated if service calls a remote AWS service. Otherwise, RemoteResourceIdentifier is neither generated nor reported in the service dependency's metrics.

The maximum value is 1024 characters.

RemoteResourceType

The type of the resource that is invoked by a remote call. Required only if RemoteResourceIdentifier is defined.

The maximum value is 1024 characters.

When you view these metrics in the CloudWatch console, you can view them using the following dimension combinations:

Running on Amazon EKS clusters

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResoureIdentifier, 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]

  • [RemoteService, RemoteResourceIdentifier, RemoteResourceType]