Integrating OpenTelemetry Observable Data into the Platform

Overview

The current product provides metric monitoring and distributed tracing capabilities for Java services via the OTel Java Agent. Additionally, users can integrate observable data from services developed using the OTel SDK or from OpenTelemetry-compatible systems (such as Harbor and GitLab) into the platform, utilizing its data visualization capabilities.

This document aims to guide users on how to integrate these observable data into the platform.

Prerequisites

Ensure that the cluster where the services or systems reside has the service mesh deployed.

Steps

1. Configure OTel Collector Receivers

The receivers of the OTel Collector are responsible for receiving and parsing data from various sources. Depending on the data source and integration protocol, the OTel Collector offers multiple receivers.

Here are the default enabled receivers on the platform and their usage scenarios:

OTLP Receiver

OTLP (OpenTelemetry Protocol) is the standard protocol recommended by OpenTelemetry for receiving tracing, metrics, and logging data, supporting both gRPC and HTTP transport protocols.

ProtocolCluster Address
HTTPasm-otel-collector.cpaas-system:4318
GRPCasm-otel-collector.cpaas-system:4317

Zipkin Receiver

The Zipkin Receiver is used to receive tracing data in Zipkin format, supporting HTTP protocol transport from Zipkin clients.

ProtocolCluster Address
Zipkinasm-otel-collector.cpaas-system:9411

  • How to Choose the Appropriate Receiver?

    1. Confirm the types of data to be collected (tracing, metrics, logs) and the supported protocols.

    2. Based on the data formats and transport protocols used by the external services, select the appropriate receiver from the list of supported OTel Collector receivers on the platform.

2. Integrate Data into the Platform

User-Developed Services

Integrate the OpenTelemetry SDK to send observable data (such as tracing, metrics, and logs) generated by your services to the OTel Collector. The specific steps are as follows:

  1. Import the OpenTelemetry SDK.
  2. Initialize OpenTelemetry.
  3. Generate and send tracing data.

The OpenTelemetry community provides SDK usage examples for different languages; please refer to the official documentation:

Integration of Observable Software

External services (such as GitLab and Harbor) typically already have the capability to export data. You can refer to the respective software documentation for specific configuration methods.

In the configuration, you need to set the receiver address for the OTel Collector as follows:

  1. If the software is deployed in the same cluster as the service mesh:

    • Confirm that the required receiver is enabled on the platform.
    • For the complete list of supported receivers, please refer to the Platform Supported Receiver List.
  2. If the software cannot access the OTel Collector using the cluster address directly, you may need to set up a load balancer to allow external service access. Please contact your administrator for further configuration assistance.

3. Validate Data Integration

  1. Start the external service and conduct appropriate tests to generate tracing data.

  2. Verify whether the tracing data has been successfully received and processed by the OTel Collector in the platform.

    • Use the platform's Tracing to query distributed tracing data to verify the success of external data integration.