This article describes how to integrate applications developed in languages other than Java, Go, or Python with APMPlus using open-source products.
Integrate via OpenTelemetry
OpenTelemetry is an observability project under CNCF, designed to provide standardized solutions in the observability domain. It addresses standardization issues for data models, collection, processing, export, and more for observability data, and offers services independent of third-party vendors. After integrating with APMPlus, you will gain multiple APMPlus capabilities, including RED method generation, multidimensional trace search, single trace search, topology generation, and more.
Limits
- APMPlus uses Prometheus as the storage for OpenTelemetry metrics and supports querying metrics with PromQL. For specific use cases, see custom dashboard and alert management.
- There are certain limitations when converting OpenTelemetry metrics to Prometheus metrics:
- Data with the aggregation method set to delta is not supported. Do not modify the default aggregation configuration on the SDK side. Ensure that the aggregation method for SDK-side data is cumulative.
- Each workspace has independent data reporting credentials. To use a workspace for data management and data isolation, ensure that the apmplus-opentelemetry-collector component has been upgraded to version v3.1.0 or above.
Collector data collection
The SDK reports data to the Collector, and the Collector collects data and reports it to the APM server side.
- Configure the application and turn on data reporting.
- Download OpenTelemetryJavaAgent.
- Modify the application start parameters, setting javaagent and otel.service.name. Example:
- Configure the collector and modify the reporting endpoint.
- Go to the integration center, select Other > OpenTelemetry > Collector, and obtain the following configuration. Identify your service region and network access method. The appkey is the user's unique identifier.
- Restart the application.
SDK data collection
The SDK collects data and reports it directly to the APM server side.
- Configure the application and turn on data reporting.
- Download OpenTelemetryJavaAgent.
- Modify the application start parameters, setting javaagent and otel.service.name. Example:
- Restart the application.
Integrate via Prometheus
Prometheus is an open-source Monitoring and alert system originally developed by SoundCloud. It is now an independent open-source project and was added to CNCF in 2016, becoming CNCF's second project.
You can use Prometheus to meet custom instrumentation requirements. APMPlus has been customized based on OpenTelemetry's PrometheusReceiver, with data collectors for both K8s and Host Deployment. By installing the APMPlus data collector, you can collect PrometheusSDK instrumentation data and store it in APMPlus, which supports subsequent dashboard and alert needs.
Container Deployment
If your application is deployed on a Kubernetes cluster, see the following steps to install the APM data collector and connect to the APM server side.
- Install APMPlus OpenTelemetryCollector.
- Go to the access center, select Other > Prometheus > Container Deployment, and obtain the following configuration. You need to distinguish your region and network access method. The appkey is the user's unique identifier.
- Configure the application and turn on data instrumentation.
- In the K8S scenario, service discovery is supported via pod annotation.
- Restart the application.
Host Deployment
If your application is deployed on a virtual machine or physical machine, see the following steps to install the APMPlus data collector and connect to the APMPlus server side.
- Install APMPlus OpenTelemetryCollector.
- Go to the access center, select Other > Prometheus > Host Deployment, and obtain the following configuration. You need to distinguish your region. The appkey is the user's unique identifier.
- For installation via public network, sample code is as follows:
- 若 installation via private network, sample code is as follows:
- Configure the application and turn on data instrumentation.
- In the ECS scenario, service discovery is supported via file. The configuration file address is /usr/local/apmplus-opentelemetry-collector/targets.json.
- Restart the application.
Access via Jaeger
Jaeger is an open-source distributed tracing system developed by Uber.
For existing systems that have integrated Jaeger, you can report trace data from applications configured through Jaeger to APMPlus, enabling comprehensive end-to-end Monitoring capabilities. After integrating with APMPlus, you will gain RED metric generation, multidimensional trace search, single trace search, topology generation, and other APMPlus features.
JaegerAgent integration
The SDK reports data to the Agent, and the Agent reports data to the APMPlus server.
- Configure the application and enable data collection.
- Configure the Agent and modify the reporting endpoint.
- Modify the jaeger-agent startup parameters. The configuration example is as follows:
- Restart the application.
The SDK collects data and reports directly to the APMPlus server.
- Configure the application and enable data collection.
- Obtain the Jaeger HTTP Thrift reporting endpoint.
- Restart the application.
Zipkin integration
Zipkin is an open-source distributed tracing system developed by Twitter. Zipkin helps users collect trace data.
For existing systems that have integrated Zipkin, you can report trace data from applications configured through Zipkin to APMPlus, enabling comprehensive end-to-end Monitoring capabilities. After integrating with APMPlus, you will gain RED metric generation, multidimensional trace search, single trace search, topology generation, and other APMPlus features.
The SDK collects data and reports directly to the APMPlus server.
- Configure the application and enable data reporting.
- Obtain the Zipkin reporting endpoint.
- Integrate the service and configure the reporting endpoint. For details, see zipkin sample code.
- Restart the application.
SkyWalking integration
The SkyWalking Agent collects data and reports directly to the APMPlus server. Currently, SkyWalking Trace, Meter, Log, JVM, and CLR data ingestion are supported.
- Obtain the SkyWalking gRPC reporting endpoint.
- Obtain the authentication user identifier.
- Restart the application.
- After trace integration, you can view the topology map, trace analysis, service details, and other data.
- After meter integration, you can view custom metrics.
- After log integration, you can view logs.
- After integrating JVM and CLR, you can view metrics such as "skywalking_jvm_*" and "skywalking_clr_*" in custom metrics.