Compatible with open source OpenTelemetry, the ARMS agent V4.x was built based on the OpenTelemetry Java Agent. All features of the Java Agent are retained, whereas minor changes have been made to some features. This topic describes the changes and impacts of the ARMS agent V4.x, and the increase in the volume of monitoring data.
Changes and impacts
By default, method instrumentation for Spring-managed Beans is disabled, and only methods in Controllers are instrumented.
Impacts:
After the upgrade, the class methods annotated with the @Service and @Component annotations cannot be displayed in the method stacks of traces.
Exceptions thrown in class methods annotated with the @Service and @Component annotations cannot be monitored.
The metrics names related to thread pool and connection pool monitoring have been changed. For more information, see Thread pool and connection pool monitoring.
Impacts:
If you have configured alert rules for thread pool monitoring in Application Monitoring, you need to re-configure the alert rules after the ARMS agent is upgraded.
On the Create Application Monitoring Alert Rule page, set Metric Type to Thread_Pool_Version_2 and create new alert rules.
If a custom dashboard is configured based on the thread pool metrics, the dashboard data is empty after the ARMS agent is upgraded.
An increase in the metric volume causes an increase in pay-as-you-go fees.
The name of the metric for monitoring message delays is changed to arms_mq_delay_seconds.
Impact: If a custom dashboard is configured based on the metric, the dashboard data is empty after the ARMS agent is upgraded.
Automatic propagation of trace context in asynchronous calls does not require configuring package names.
Custom consumers do not need to be manually configured for RabbitMQ. Custom consumption methods do not need to be manually configured for Kafka.
Trace IDs can no longer be obtained by using the
MDC.get("EagleEye-TraceID")
method, whereas association of trace IDs with logs is not affected.Impact: Trace IDs obtained by using the
MDC.get("EagleEye-TraceID")
method are empty.Spans are generated for internal calls in scenarios without entry calls.
Impact: An increase in the number of spans causes an increase in pay-as-you-go fees.
Quantile statistics is changed from the Summary algorithm of Prometheus to a bucket distribution method based on linear interpolation.
Impact: Quantile metric data is inaccurate when the actual duration distribution and the bucketing are significantly different.
Span status is consistent with open source OpenTelemetry. HTTP requests with 4xx and 5xx status codes enter the error state. HTTP requests with other status codes enter the unset state, whereas the ARMS agent earlier than V4.x considers these requests to be in the ok state.
Increase in the amount of monitoring data
After the ARMS agent is upgraded from V3.x to V4.x, the amount of metric data may increase in the following cases:
The amount of span data and metric data increase because internal calls generate spans in scenarios without entry calls.
The amount of thread pool metric data increases because thread pools can be user-defined.
The amount of connection pool metric data increases because more connection pool types are supported.
The amount of interface upstream and downstream metric data increases when the upstream and downstream calls are asynchronous because the ARMS agent V4.x supports automatic propagation.
The amount of metric data increases because the support for various plug-ins, such as Lettuce, is extended.