Todos los productos
Search
Centro de documentos

Managed Service for OpenTelemetry:OpenTelemetry integration

Última actualización: Sep 18, 2026

Puede recibir datos de trazas, métricas y registros desde sus aplicaciones. Admite dos métodos de reporte: el reporte directo y el reenvío mediante un OpenTelemetry Collector.

Elija un método de reporte

Los datos de telemetría se pueden reportar directamente a Managed Service for OpenTelemetry o reenviarlos mediante un OpenTelemetry Collector. Elija el método según el tipo de datos de telemetría que desee reportar.

Método de reporte

Tipos de datos compatibles

Reporte directo

Trazas y métricas

OpenTelemetry Collector (Core)

Trazas y métricas

OpenTelemetry Collector (Contrib)

Trazas, métricas y registros

Los datos de registro se reenvían a Simple Log Service (SLS) mediante un OpenTelemetry Collector (Contrib). Si necesita reportar datos de registro, utilice el método de reenvío del Collector con la edición Contrib.

Si decide reenviar los datos mediante un OpenTelemetry Collector, elija una opción de despliegue. El OpenTelemetry Collector está disponible en dos ediciones:

  • OpenTelemetry Collector (Core): admite el reporte de datos de trazas y métricas.

  • OpenTelemetry Collector (Contrib): admite el reporte de datos de trazas, métricas y registros. A continuación se presenta una tabla que compara las opciones de despliegue descritas en este tema.

Opción de despliegue

Edición compatible

Tipos de datos compatibles

Despliegue en un clúster de ACK desde ACK Marketplace

OpenTelemetry Collector (Core)

Trazas y métricas

Despliegue con Docker

OpenTelemetry Collector (Core) y OpenTelemetry Collector (Contrib)

Trazas y métricas (Core). Trazas, métricas y registros (Contrib).

Otros métodos de instalación y despliegue

Consulte Otros métodos de instalación y despliegue.

Varía según el método

Antes de empezar

  • Para reportar datos de registro, primero active Simple Log Service (SLS), cree un Project y un Logstore, y create an AccessKey pair for log data reporting.

  • Obtenga los endpoints y las credenciales de autenticación. En la siguiente tabla se enumeran todas las variables de configuración que se utilizan en este tema. En los ejemplos de código y de configuración, debe sustituir los marcadores de posición con el formato ${VAR} por los valores reales que preparó. Prepare los endpoints y las credenciales que requiera su escenario, según el tipo de datos que reporte y el método de reporte que utilice. Para obtener más información, consulte Get started with Managed Service for OpenTelemetry.

Caso de usoVariableDescripciónEjemplo
Reportar datos de trazas y métricas mediante gRPC${GRPC_ENDPOINT}El endpoint de gRPC de Managed Service for OpenTelemetry, que admite el reporte de datos de trazas y métricas. Si su servicio se ejecuta en Alibaba Cloud dentro de la misma región que el endpoint seleccionado, utilice el endpoint interno de Alibaba Cloud. De lo contrario, utilice el endpoint público.
  • Endpoint interno: http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

  • Endpoint público: http://tracing-analysis-dc-hz.aliyuncs.com:8090

Reportar datos de trazas y métricas mediante gRPC${GRPC_AUTHENTICATION_TOKEN}El token de autenticación obligatorio para reportar datos mediante gRPC a Managed Service for OpenTelemetry. Para obtener información sobre cómo conseguir el token, consulte Get started with Managed Service for OpenTelemetry.abcdef1234@abcdef****56789_abcdef1234@abcdef****56789
Reportar datos de trazas y métricas mediante HTTP${HTTP_TRACES_ENDPOINT}El endpoint HTTP de Managed Service for OpenTelemetry, que admite el reporte de datos de trazas. Si su servicio se ejecuta en Alibaba Cloud dentro de la misma región que el endpoint seleccionado, utilice el endpoint interno de Alibaba Cloud. De lo contrario, utilice el endpoint público.
  • Endpoint interno: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/traces
    - Endpoint público: http://tracing-analysis-dc-hz.aliyuncs.com/adapt__/api/otlp/traces

Reportar datos de trazas y métricas mediante HTTP${HTTP_METRICS_ENDPOINT}El endpoint HTTP de Managed Service for OpenTelemetry, que admite el reporte de datos de métricas. Si su servicio se ejecuta en Alibaba Cloud dentro de la misma región que el endpoint seleccionado, utilice el endpoint interno de Alibaba Cloud. De lo contrario, utilice el endpoint público.
  • Endpoint interno: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/metrics
    - Endpoint público: http://tracing-analysis-dc-hz.aliyuncs.com/adapt__/api/otlp/metrics

Reportar datos de registro${SLS_ENDPOINT}El endpoint del proyecto de SLS. Es obligatorio únicamente cuando reporta datos de registro. Para conocer los pasos necesarios para obtener el endpoint, consulte Endpoint.test-project.cn-hangzhou.log.aliyuncs.com
Reportar datos de registro${SLS_PROJECT}El nombre del proyecto de SLS. Es obligatorio únicamente cuando reporta datos de registro.test-project
Reportar datos de registro${SLS_LOGSTORE}El nombre del logstore de SLS. Es obligatorio únicamente cuando reporta datos de registro.test-logstore
Reportar datos de registro${ALIYUN_ACCESS_KEY_ID}El AccessKey ID de su cuenta de Alibaba Cloud. Es obligatorio únicamente cuando reporta datos de registro. Se recomienda utilizar el par de claves de acceso (AccessKey ID y AccessKey secret) de un usuario de Resource Access Management (RAM) que tenga permisos de escritura exclusivos sobre el proyecto de SLS. Para obtener información sobre cómo otorgar a un usuario de RAM permisos de escritura en un proyecto específico, consulte RAM custom policy examples. Para saber cómo obtener un par de claves de acceso, consulte AccessKey pair.N/A
Reportar datos de registro${ALIYUN_ACCESS_KEY_SECRET}El AccessKey secret de su cuenta de Alibaba Cloud. Es obligatorio únicamente cuando reporta datos de registro. Se recomienda utilizar el par de claves de acceso de un usuario de RAM que tenga permisos de escritura exclusivos sobre el proyecto de SLS.N/A

Reporte directo

Configure el endpoint de reporte y la información de autenticación en el agente o SDK de OpenTelemetry. De esta forma, los datos de trazas y métricas recopilados se envían directamente al servidor de Managed Service for OpenTelemetry.

Opción 1: Configurar los ajustes de reporte en el código (ejemplo en Java)

En los siguientes ejemplos de código Java se muestra cómo configurar los endpoints de Managed Service for OpenTelemetry, que admiten el reporte mediante HTTP o gRPC. Para consultar el código de integración completo y las demostraciones, visite el Centro de integración o consulte Report trace data from Java applications by using OpenTelemetry.

Reporte mediante HTTP

...

// Report trace data
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
                .setEndpoint("${HTTP_TRACES_ENDPOINT}") // Set the HTTP traces endpoint to report trace data to Managed Service for OpenTelemetry.
                .build()).build())
        .build();

// Report metric data
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
        .setEndpoint("${HTTP_METRICS_ENDPOINT}")  // Set the HTTP metrics endpoint to report metric data to Managed Service for OpenTelemetry.
        .build()).build())
    .build();

...

Reporte mediante gRPC

...

// Report trace data
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                .setEndpoint("${GRPC_ENDPOINT}") // Set the gRPC endpoint to report trace data to Managed Service for OpenTelemetry.
                .addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Set the authentication token of Managed Service for OpenTelemetry.
                .build()).build())
        .setResource(resource)
        .build();

// Report metric data
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
        .setEndpoint("${GRPC_ENDPOINT}")  // Set the gRPC endpoint to report metric data to Managed Service for OpenTelemetry.
        .addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}")  // Set the authentication token of Managed Service for OpenTelemetry.
        .build()).build())
    .setResource(resource)
    .build();

...

Opción 2: Configurar los ajustes de reporte con variables de entorno

OpenTelemetry también permite configurar el endpoint de reporte de datos mediante variables de entorno. En la siguiente tabla se enumeran las variables de entorno obligatorias para reportar datos a Managed Service for OpenTelemetry. Para conocer más variables de entorno OTLP de OpenTelemetry, consulte Configuración del exportador OTLP.

Variable de entornoDescripciónEjemplo
OTEL_SERVICE_NAMEEl nombre de la aplicación.export OTEL_SERVICE_NAME=opentelemetry-demo-service
OTEL_EXPORTER_OTLP_PROTOCOLEl protocolo de reporte. Las trazas admiten grpc, http/protobuf y http/json. Las métricas admiten grpc y http/protobuf. Si selecciona un endpoint de gRPC, establezca esta variable en grpc. De lo contrario, utilice http/protobuf o http/json.export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTEl endpoint de reporte de trazas. Admite endpoints HTTP y gRPC. Utilice el valor ${GRPC_ENDPOINT} o ${HTTP_TRACES_ENDPOINT} que obtuvo en .
  • Reporte mediante HTTP: export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/traces

  • Reporte mediante gRPC: export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_METRICS_ENDPOINTEl endpoint de reporte de métricas. Admite endpoints HTTP y gRPC. Utilice el valor ${GRPC_ENDPOINT} o ${HTTP_METRICS_ENDPOINT} que obtuvo en .
  • Reporte mediante HTTP: export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/metrics

  • Reporte mediante gRPC: export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_HEADERSEl encabezado de solicitud para el reporte mediante gRPC, utilizado principalmente para la autenticación. Utilice el formato Authentication=${GRPC_AUTHENTICATION_TOKEN}, donde ${GRPC_AUTHENTICATION_TOKEN} es el token de autenticación que obtuvo en .export OTEL_EXPORTER_OTLP_HEADERS=Authentication=abcdef1234@abcdef****56789_abcdef1234@abcdef****56789

Reenvío de datos mediante un OpenTelemetry Collector

Un OpenTelemetry Collector recibe los datos de trazas, métricas y registros de sus aplicaciones. Posteriormente, los reenvía a Managed Service for OpenTelemetry según su configuración de exportador.

Opción 1: Desplegar en un clúster de ACK desde ACK Marketplace

Con esta opción, el collector se despliega en un clúster de Container Service for Kubernetes (ACK) desde ACK Marketplace. Actualmente, ACK Marketplace solo ofrece la edición OpenTelemetry Collector (Core), no la edición Contrib. Para recopilar datos de registro, utilice alguno de los otros métodos de despliegue.

Paso 1: Desplegar el collector

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Marketplace > Marketplace.

  2. En Marketplace, busque opentelemetry-collector, haga clic en él y luego haga clic en Deploy en la esquina superior derecha de la página.

  3. En la página Create , seleccione el clúster y el namespace donde desea desplegar opentelemetry-collector. El namespace predeterminado es otel-collector. Luego, haga clic en Next.

  4. En la página Parameter Configurations, establezca el parámetro mode en deployment o daemonset, y luego haga clic en OK.

Paso 2: Configurar los parámetros del collector

  1. En la página Clusters, haga clic en el clúster de destino.

  2. En el panel de navegación izquierdo, elija Configuration Management > Configuration Item.

  3. Seleccione el namespace donde se desplegó opentelemetry-collector. El namespace predeterminado es otel-collector.

  4. En la página Configuration Item, busque opentelemetry-collector y haga clic en YAML.

  5. Configure las secciones exporters, processors, receivers y service con base en el siguiente contenido YAML. Después, haga clic en OK.

    Elemento de configuración opentelemetry-collector (reporte mediante gRPC)

    exporters:
      otlp:
        endpoint: "${GRPC_ENDPOINT}"
        headers:
          Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
        tls:
          insecure: true
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
        limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
        spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]

    Elemento de configuración opentelemetry-collector (reporte mediante HTTP)

    exporters:
      otlphttp:
        traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
        metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
        tls:
          insecure: true
        timeout: 5s # The timeout period. The default value is 5s. Change the value as needed.
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
        limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
        spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
  6. Una vez completada la configuración, reinicie manualmente opentelemetry-collector.

Opción 2: Desplegar con Docker

Con esta opción, el collector se ejecuta como un contenedor de Docker. Están disponibles tanto la edición Core como la Contrib.

Paso 1: Extraer la imagen

opentelemetry-collector

Para especificar una versión de imagen, visite https://hub.docker.com/r/otel/opentelemetry-collector/tags.

docker pull otel/opentelemetry-collector:latest

opentelemetry-collector-contrib

Para especificar una versión de imagen, visite https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags.

docker pull otel/opentelemetry-collector-contrib:latest

Paso 2: Preparar el archivo de configuración

Cree un archivo config.yaml y configure los parámetros correspondientes. En los siguientes ejemplos, debe sustituir los marcadores de posición con el formato ${VAR} por los valores que preparó en la sección Antes de empezar. Estos marcadores son distintos de la sintaxis de expansión nativa del Collector ${env:...}, como ${env:MY_POD_IP}, que el Collector resuelve a partir de variables de entorno durante la ejecución.

Elemento de configuración opentelemetry-collector (reporte mediante gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
    limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
    spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
      http:
        endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Elemento de configuración opentelemetry-collector (reporte mediante HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # The timeout period. The default value is 5s. Change the value as needed.

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
    limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
    spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
      http:
        endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Elemento de configuración opentelemetry-collector-contrib (reporte mediante gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true
  # Log exporter configuration (optional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
    limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
    spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
      http:
        endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Log data processing pipeline (optional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Elemento de configuración opentelemetry-collector-contrib (reporte mediante HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # The timeout period. The default value is 5s. Change the value as needed.

  # Log exporter configuration (optional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
    limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
    spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
      http:
        endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Log data processing pipeline (optional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Paso 3: Montar el archivo de configuración personalizado y ejecutar el collector

Las marcas -p publican los puertos del receptor para que sus aplicaciones puedan enviar datos al collector. Ajuste la asignación de puertos para que coincida con los endpoints del receptor definidos en su archivo de configuración.

opentelemetry-collector

docker run -p 4317:4317 -p 4318:4318 -v $(pwd)/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:latest

opentelemetry-collector-contrib

docker run -p 4317:4317 -p 4318:4318 -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest

Para conocer otros métodos de despliegue, consulte Otros métodos de instalación y despliegue.

Referencias