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 observable data. For more information, see Billing (new). | You are charged based on the amount of observable data. For more information, see Billing (new). |