Application Monitoring and Managed Service for OpenTelemetry are both sub-services of Application Real-Time Monitoring Service (ARMS). They serve different use cases and offer different levels of functionality.
-
Application Monitoring is an application performance management (APM) service. By installing an ARMS agent, you can monitor your application without modifying your code. Application Monitoring helps you track application status, locate abnormal and slow APIs, identify performance bottlenecks, and restore request parameters, which greatly improves the efficiency of error diagnostics. For more information, see What is Application Monitoring?
-
Managed Service for OpenTelemetry provides developers with features for distributed application development, including trace location, trace topologies, request statistics, and application dependency analysis. For more information, see What is Managed Service for OpenTelemetry?
When to use which
-
Choose Application Monitoring if your applications are written in Java, Go, or Python. Application Monitoring provides more features and better agent stability for these languages.
-
Choose Managed Service for OpenTelemetry if your applications use languages beyond Java, Go, and Python, such as JS, .NET, or C++.
-
Use both together in multi-language microservice environments. Use Application Monitoring for your Java, Go, and Python services, and use Managed Service for OpenTelemetry for services in other languages. The trace data of both services has been integrated, and the ARMS console provides a unified user experience, so you can achieve full-stack tracing across all your services.
Comparison
|
Item |
Application Monitoring |
Managed Service for OpenTelemetry |
|
Positioning |
An APM service that supports application performance monitoring, user experience monitoring, tracing, and problem diagnostics. |
An open-source service designed for distributed tracing. |
|
Agent provider |
Alibaba Cloud. |
Open source community. |
|
Agent SLA |
Supported. |
Not supported. |
|
Access method |
Automatic instrumentation (non-intrusive agent loading). |
Manual instrumentation (SDK-based programming) and automatic instrumentation (non-intrusive agent loading) for specific languages. |
|
Programming language |
Java, Go, and Python. |
Mainstream languages such as Java, Go, Python, JS, .NET, and C++. |
|
Insights |
Supported. |
Not supported. |
|
Memory snapshots |
Supported. |
Not supported. |
|
Thread and memory diagnostics |
Supported. |
Not supported. |
|
Local method stacks |
Supported. |
Not supported. |
|
Continuous Profiling |
Supported. |
Not supported. |
|
Client-side pre-aggregation |
Supported. |
Not supported. |
|
Billing |
You are charged based on the amount of observability data. For more information, see Billing (new). |
You are charged based on the amount of observability data. For more information, see Billing (new). |
Go option mappings in the integration center
Under Server-side applications in the ARMS Integration Center, there are three options for Go applications:
|
Integration Center option |
Corresponding service |
Agent type |
Code changes required |
|
Application Monitoring for Go |
Application Monitoring |
Alibaba Cloud proprietary agent |
No (automatic instrumentation) |
|
Tracing Analysis for Go |
Managed Service for OpenTelemetry |
Open-source protocols (OpenTelemetry, SkyWalking, Zipkin, or Jaeger) |
Yes (SDK-based instrumentation) |
|
OpenTelemetry |
Managed Service for OpenTelemetry |
OpenTelemetry standard |
Yes (SDK-based instrumentation) |
-
Application Monitoring for Go uses an Alibaba Cloud proprietary Go agent that implements automatic instrumentation based on the OpenTelemetry standard. No changes to your application code are required.
-
Tracing Analysis for Go supports reporting trace data to Managed Service for OpenTelemetry by using open-source protocols such as OpenTelemetry, SkyWalking, Zipkin, or Jaeger.
-
OpenTelemetry is a generic access point for reporting trace data by using the OpenTelemetry standard. It is not tied to a specific programming language.
If you want non-intrusive monitoring, use Application Monitoring for Go. If you already use OpenTelemetry, SkyWalking, or another open-source solution, use Tracing Analysis for Go or OpenTelemetry.