Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Intégration OpenTelemetry

Dernière mise à jour :Sep 23, 2026

Managed Service for OpenTelemetry peut recevoir des données de trace, de métrique et de journal depuis vos applications. Il prend en charge deux méthodes d'envoi : l'envoi direct et la redirection via un collecteur OpenTelemetry.

Choisir une méthode d'envoi

Vous pouvez envoyer les données de télémétrie directement à Managed Service for OpenTelemetry ou les rediriger via un collecteur OpenTelemetry. Choisissez la méthode adaptée au type de données de télémétrie que vous souhaitez envoyer.

Méthode d'envoi Types de données pris en charge
Envoi direct Traces et métriques
Collecteur OpenTelemetry (Core) Traces et métriques
Collecteur OpenTelemetry (Contrib) Traces, métriques et journaux

Les données de journal sont redirigées via un collecteur OpenTelemetry (Contrib) vers Simple Log Service (SLS). Si vous souhaitez envoyer des données de journal, utilisez la méthode de redirection avec l'édition Contrib.

Si vous redirigez les données via un collecteur OpenTelemetry, choisissez une option de déploiement. Le collecteur OpenTelemetry est disponible en deux éditions :

  • Collecteur OpenTelemetry (Core) : prend en charge l'envoi des données de trace et de métrique.

  • Collecteur OpenTelemetry (Contrib) : prend en charge l'envoi des données de trace, de métrique et de journal. Le tableau suivant compare les options de déploiement décrites dans cette rubrique.

Option de déploiement Édition prise en charge Types de données pris en charge
Déploiement sur un cluster ACK depuis le Marketplace ACK Collecteur OpenTelemetry (Core) Traces et métriques
Déploiement avec Docker Collecteur OpenTelemetry (Core) et Collecteur OpenTelemetry (Contrib) Traces et métriques (Core). Traces, métriques et journaux (Contrib).
Autres méthodes d'installation et de déploiement Consultez Autres méthodes d'installation et de déploiement. Varie selon la méthode

Avant de commencer

Cas d'utilisationVariableDescriptionExemple
Envoyer des données de trace et de métrique via gRPC${GRPC_ENDPOINT}L'endpoint gRPC de Managed Service for OpenTelemetry, qui prend en charge l'envoi des données de trace et de métrique. Si votre service s'exécute sur Alibaba Cloud dans la même région que celle de l'endpoint sélectionné, utilisez l'endpoint interne Alibaba Cloud. Sinon, utilisez l'endpoint public.
  • Endpoint interne : http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

  • Endpoint public : http://tracing-analysis-dc-hz.aliyuncs.com:8090

Envoyer des données de trace et de métrique via gRPC${GRPC_AUTHENTICATION_TOKEN}Le jeton d'authentification requis pour envoyer des données via gRPC vers Managed Service for OpenTelemetry. Pour savoir comment obtenir ce jeton, consultez la rubrique Prise en main de Managed Service for OpenTelemetry.abcdef1234@abcdef****56789_abcdef1234@abcdef****56789
Envoyer des données de trace et de métrique via HTTP${HTTP_TRACES_ENDPOINT}L'endpoint HTTP de Managed Service for OpenTelemetry, qui prend en charge l'envoi des données de trace. Si votre service s'exécute sur Alibaba Cloud dans la même région que celle de l'endpoint sélectionné, utilisez l'endpoint interne Alibaba Cloud. Sinon, utilisez l'endpoint public.
  • Endpoint interne : http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/traces
    - Endpoint public : http://tracing-analysis-dc-hz.aliyuncs.com/adapt__/api/otlp/traces

Envoyer des données de trace et de métrique via HTTP${HTTP_METRICS_ENDPOINT}L'endpoint HTTP de Managed Service for OpenTelemetry, qui prend en charge l'envoi des données de métrique. Si votre service s'exécute sur Alibaba Cloud dans la même région que celle de l'endpoint sélectionné, utilisez l'endpoint interne Alibaba Cloud. Sinon, utilisez l'endpoint public.
  • Endpoint interne : http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/metrics
    - Endpoint public : http://tracing-analysis-dc-hz.aliyuncs.com/adapt__/api/otlp/metrics

Envoyer des données de journal${SLS_ENDPOINT}L'endpoint du Project SLS. Requis uniquement lors de l'envoi des données de journal. Pour obtenir l'endpoint, suivez les étapes décrites dans la rubrique Endpoint.test-project.cn-hangzhou.log.aliyuncs.com
Envoyer des données de journal${SLS_PROJECT}Le nom du Project SLS. Requis uniquement lors de l'envoi des données de journal.test-project
Envoyer des données de journal${SLS_LOGSTORE}Le nom du Logstore SLS. Requis uniquement lors de l'envoi des données de journal.test-logstore
Envoyer des données de journal${ALIYUN_ACCESS_KEY_ID}L'AccessKey ID de votre compte Alibaba Cloud. Requis uniquement lors de l'envoi des données de journal. Nous vous recommandons d'utiliser la paire AccessKey (composée d'un AccessKey ID et d'un AccessKey secret) d'un utilisateur Resource Access Management (RAM) disposant uniquement des autorisations d'écriture sur le Project SLS. Pour savoir comment accorder à un utilisateur RAM les autorisations d'écriture sur un Project spécifique, consultez la rubrique Exemples de politiques personnalisées RAM. Pour savoir comment obtenir une paire AccessKey, consultez la rubrique Paire AccessKey.N/A
Envoyer des données de journal${ALIYUN_ACCESS_KEY_SECRET}L'AccessKey secret de votre compte Alibaba Cloud. Requis uniquement lors de l'envoi des données de journal. Nous vous recommandons d'utiliser la paire AccessKey d'un utilisateur RAM disposant uniquement des autorisations d'écriture sur le Project SLS.N/A

Envoi direct

Configurez l'endpoint d'envoi et les informations d'authentification dans l'agent OpenTelemetry ou le SDK pour envoyer directement les données de trace et de métrique collectées par OpenTelemetry au serveur Managed Service for OpenTelemetry.

Option 1 : Configurer les paramètres d'envoi dans le code (exemple Java)

Les exemples de code Java suivants montrent comment configurer les endpoints de Managed Service for OpenTelemetry, qui prend en charge l'envoi via HTTP ou gRPC. Pour consulter le code d'intégration complet et les démos, rendez-vous sur le Centre d'intégration ou consultez la rubrique Envoyer des données de trace depuis des applications Java à l'aide d'OpenTelemetry.

Envoi 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();

...

Envoi 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();

...

Option 2 : Configurer les paramètres d'envoi avec des variables d'environnement

OpenTelemetry permet également de configurer l'endpoint d'envoi des données à l'aide de variables d'environnement. Le tableau suivant répertorie les variables d'environnement requises pour envoyer des données vers Managed Service for OpenTelemetry. Pour plus d'informations sur les autres variables d'environnement OTLP d'OpenTelemetry, consultez la documentation Configuration de l'exportateur OTLP.

Variable d'environnementDescriptionExemple
OTEL_SERVICE_NAMELe nom de l'application.export OTEL_SERVICE_NAME=opentelemetry-demo-service
OTEL_EXPORTER_OTLP_PROTOCOLLe protocole d'envoi. Les traces prennent en charge grpc, http/protobuf et http/json. Les métriques prennent en charge grpc et http/protobuf. Si vous sélectionnez un endpoint gRPC, définissez cette variable sur grpc. Sinon, utilisez http/protobuf ou http/json.export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTL'endpoint d'envoi des traces. Les endpoints HTTP et gRPC sont pris en charge. Utilisez la valeur ${GRPC_ENDPOINT} ou ${HTTP_TRACES_ENDPOINT} obtenue dans .
  • Envoi via HTTP : export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/traces

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

OTEL_EXPORTER_OTLP_METRICS_ENDPOINTL'endpoint d'envoi des métriques. Les endpoints HTTP et gRPC sont pris en charge. Utilisez la valeur ${GRPC_ENDPOINT} ou ${HTTP_METRICS_ENDPOINT} obtenue dans .
  • Envoi via HTTP : export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/otlp/metrics

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

OTEL_EXPORTER_OTLP_HEADERSL'en-tête de requête pour l'envoi gRPC, principalement utilisé pour l'authentification. Utilisez le format Authentication=${GRPC_AUTHENTICATION_TOKEN}, où ${GRPC_AUTHENTICATION_TOKEN} correspond au jeton d'authentification obtenu dans .export OTEL_EXPORTER_OTLP_HEADERS=Authentication=abcdef1234@abcdef****56789_abcdef1234@abcdef****56789

Redirection des données via un collecteur OpenTelemetry

Un collecteur OpenTelemetry reçoit les données de trace, de métrique et de journal depuis vos applications et les redirige vers Managed Service for OpenTelemetry en fonction de sa configuration d'exportateur.

Option 1 : Déploiement sur un cluster ACK depuis le Marketplace ACK

Dans cette option, vous déployez le collecteur sur un cluster Container Service for Kubernetes (ACK) depuis le Marketplace ACK. Le Marketplace ACK propose actuellement uniquement l'édition Core du collecteur OpenTelemetry, et non l'édition Contrib. Pour collecter des données de journal, utilisez l'une des autres méthodes de déploiement.

Étape 1 : Déployer le collecteur

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Marketplace > Marketplace.

  2. Dans le Marketplace, recherchez et cliquez sur opentelemetry-collector, puis cliquez sur Deploy dans le coin supérieur droit de la page.

  3. Sur la page Create , sélectionnez le cluster et le namespace dans lesquels vous souhaitez déployer opentelemetry-collector. Le namespace par défaut est otel-collector. Cliquez ensuite sur Next.

  4. Sur la page Parameter Configurations, définissez le paramètre mode sur deployment ou daemonset, puis cliquez sur OK.

Étape 2 : Configurer les paramètres du collecteur

  1. Sur la page Clusters, cliquez sur le cluster cible.

  2. Dans le volet de navigation de gauche, choisissez Configuration Management > Configuration Item.

  3. Sélectionnez le namespace dans lequel opentelemetry-collector est déployé. Le namespace par défaut est otel-collector.

  4. Sur la page Configuration Item, recherchez opentelemetry-collector, puis cliquez sur YAML.

  5. Configurez les sections exporters, processors, receivers et service en vous basant sur le contenu YAML suivant, puis cliquez sur OK.

    Élément de configuration opentelemetry-collector (envoi 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]

    Élément de configuration opentelemetry-collector (envoi 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. Une fois la configuration terminée, redémarrez manuellement opentelemetry-collector.

Option 2 : Déploiement avec Docker

Dans cette option, vous exécutez le collecteur en tant que conteneur Docker. Les éditions Core et Contrib sont disponibles.

Étape 1 : Extraire l'image

opentelemetry-collector

Pour spécifier une version d'image, consultez https://hub.docker.com/r/otel/opentelemetry-collector/tags.

docker pull otel/opentelemetry-collector:latest

opentelemetry-collector-contrib

Pour spécifier une version d'image, consultez https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags.

docker pull otel/opentelemetry-collector-contrib:latest

Étape 2 : Préparer le fichier de configuration

Créez un fichier config.yaml et configurez les paramètres associés. Dans les exemples suivants, remplacez les espaces réservés au format ${VAR} par les valeurs que vous avez préparées dans la section Avant de commencer. Ces espaces réservés diffèrent de la syntaxe d'expansion native du collecteur ${env:...}, telle que ${env:MY_POD_IP}, que le collecteur résout à partir des variables d'environnement au moment de l'exécution.

Élément de configuration opentelemetry-collector (envoi 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]

Élément de configuration opentelemetry-collector (envoi 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]

Élément de configuration opentelemetry-collector-contrib (envoi 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]

Élément de configuration opentelemetry-collector-contrib (envoi 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]

Étape 3 : Monter le fichier de configuration personnalisé et exécuter le collecteur

Les indicateurs -p publient les ports du récepteur afin que vos applications puissent envoyer des données au collecteur. Ajustez le mappage des ports pour qu'il corresponde aux endpoints du récepteur dans votre fichier de configuration.

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

Pour les autres méthodes de déploiement, consultez Autres méthodes d'installation et de déploiement.

Références