Envoi des données d' OpenTelemetry s vers le backend Instana

Les données de télémétrie peuvent être envoyées au format « OTLP » directement depuis des applications ou des systèmes vers le serveur d' Instana. Effectuez les configurations suivantes:

Remarque : si vous utilisez la distribution « Instana » du collecteur d' OpenTelemetry s ( IDOT ), vous n'avez pas besoin de suivre les étapes de configuration manuelle. IDOT configure automatiquement tous les paramètres requis, notamment les points de terminaison, les clés d'authentification, les attributs des ressources et les paramètres d' TLS, par défaut. La configuration manuelle n'est nécessaire que si vous prévoyez de configurer votre propre collecteur OpenTelemetry pour envoyer des données au backend Instana.

Prérequis

  • Les noeuds finaux spéciaux du composant otlp-acceptor dorsal sont utilisés lorsque des données OpenTelemetry sont envoyées.

    Dans l'exemple de configuration suivant, le collecteur OpenTelemetry est utilisé pour se connecter au composant otlp-acceptor backend Instana :
    exporters:
      otlp:
        endpoint: ${INSTANA_OTLP_GRPC_BACKEND}:4317
        headers:
          x-instana-key: xxxxxxx

    La https:// valeur ajoutée dans otlp. endpoint indique qu'une connexion sécurisée est utilisée. Si l'option tls n'est pas définie, elle est activée par défaut. Pour plus d'informations, consultez la section « OtlpExporter ».

  • Vous devez définir la clé d'agent Instana requise pour la validation. Définissez le champ « x-instana-key » avec la clé d'agent de l' Instana, afin de cibler le backend Instana.

Création de l'attribut de ressource ou de la variable d'environnement requis

Le backend « host.idInstana » nécessite l'attribut de ressource device.id , faas.id, ou. Vous pouvez également définir x-instana-host comme variable d'environnement. Instana utilise host.id l'attribut pour identifier de manière unique un hôte et associer les entités OpenTelemetry à l'hôte approprié. Vous pouvez fournir le host.id de deux façons :

  • En utilisant le SDK d' OpenTelemetry (recommandé pour les systèmes non conteneurisés)

    OpenTelemetry dispose d'une convention sémantique standard pour host.id. La plupart des SDK d' OpenTelemetry s prennent en charge la collecte de l'attribut host.id « resource » sur les systèmes non conteneurisés. Lorsque vous fournissez des données host.id via un SDK OpenTelemetry, Instana peut associer de manière transparente l'entité OpenTelemetry à l'hôte correspondant dans la surveillance de l'infrastructure Instana.

  • En récupérant host.id depuis l'interface utilisateur d' Instana

    Pour trouver cette option host.id dans l'interface utilisateur d' Instana, accédez à Infrastructure > Analyser l'infrastructure. Cliquez sur « Hôte » dans la section « Types d'entités ». Cliquez sur l'hôte souhaité dans la liste pour afficher ses détails. Sous « Système », vous trouverez l'identifiant de l'hôte. Si vous configurez manuellement ce paramètre host.id dans les attributs de votre ressource OpenTelemetry, Instana associe l'entité OpenTelemetry à l'hôte correspondant dans la surveillance de l'infrastructure Instana.

Si le collecteur OpenTelemetry est déployé en mode Daemonset, le collecteur OpenTelemetry se trouve sur le même hôte que les applications qui envoient des données OpenTelemetry . Vous pouvez également définir l'en-tête x-instana-host à l'aide de l'exportateur OTLP.

exporters:
  otlp:
    endpoint: ${INSTANA_OTLP_GRPC_BACKEND}:4317
    headers:
      x-instana-key: xxxxxxx
      x-instana-host: xxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
Remarque : la https:// valeur ajoutée dans otlp. endpoint indique qu'une connexion sécurisée est utilisée. Si l'option tls n'est pas définie, elle est activée par défaut. Pour plus d'informations, consultez la section « Paramètres d'OtlpExporter ».
  • Définissez le x-instana-key champ avec la clé de l'agent « Instana » pour cibler le backend « Instana ».
  • Définissez le x-instana-host champ contenant le nom d'hôte avec la valeur : ${host.name}, qui correspond au nom de l'hôte sur lequel s'exécute le collecteur OpenTelemetry. L' host.name s se trouve dans les fichiers de configuration processors.resource.attributes ou dans le SDK OpenTelemetry. Si l' host.name n n'est pas définie, vous pouvez définir le nom d'hôte à partir de vos variables d'environnement, telles que HOSTNAME ou HOST, ou le définir manuellement.
  • Définissez le endpoint champ en indiquant le nom de domaine correct du otlp-acceptor composant du backend Instana.
  • Pour plus d'informations sur les numéros de port d' OTLP utilisés par Instana, consultez la section Numéros de port.

Configuration d' Instana en auto-hébergement

Sur Instana (version auto-hébergée), le port 443 est utilisé pour les OTLP/gRPCOTLP/HTTP protocoles et. Les noms de domaine suivants sont utilisés pour les protocoles:

otlp-grpc.<base_domain> pour OTLP/gRPC otlp-http.<base_domain> pour OTLP/HTTP

Pour envoyer les données d' OpenTelemetry s au backend Instana, procédez comme suit :

  1. Assurez-vous que les deux entrées « DNSotlp-http.<base_domain> » et otlp-grpc.<basedomain> ont bien été créées pour le otlp-acceptor composant dans votre backend Instana.

  2. Configurez l'exportateur OTLP pour l'utiliser avec le collecteur OpenTelemetry, puis effectuez l'une des opérations suivantes :

    • OTLP exportateur dont la certification a été vérifiée :

      1. Obtenir le fichier de l'autorité de certification à partir de l'instance auto-hébergée

        • Pour l'édition standard auto-hébergée:
          kubectl get secret instana-tls -n instana-core -o jsonpath='{.data.ca\.crt}'|base64 -d > ca.crt
        • Pour l'édition personnalisée auto-hébergée dont le certificat est généré par la commande openssl:
          kubectl get secret instana-tls -n instana-core -o jsonpath='{.data.tls\.crt}'|base64 -d > tls.crt
      2. Copiez ca.crt à l'emplacement de l'environnement du collecteur OpenTelemetry :

        exporters:
          otlp:
            endpoint: https://otlp-grpc.<base_domain>:443
            tls:
              insecure: false
              ca_file: <path_to_cert_file>/<cert_file_name>
            headers:
              x-instana-key: xxxxxx
              x-instana-host: xxxxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
    • OTLP exportateur sans vérification de la certification :

      exporters:
         otlp:
           endpoint: https://otlp-grpc.<base_domain>:443
           tls:
             insecure: false
             insecure_skip_verify: true
           headers:
             x-instana-key: xxxxxx
             x-instana-host: xxxxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK

Transmission des données de télémétrie vers le backend d' Instana s à l'aide du collecteur d' OpenTelemetry s

Pour transférer les données d' OpenTelemetry s vers le backend Instana, procédez comme suit :

  1. Identifiez la région de déploiement de votre instance d' Instana. Le point de terminaison du backend d' Instana varie en fonction de la région de déploiement. Pour trouver la région d' Instana dédiée à votre environnement, dans l'interface utilisateur d' Instana, accédez au menu de navigation, puis cliquez sur Plus > À propos d' Instana. La boîte de dialogue « Instana » s'affiche. La région de déploiement d' Instana est indiquée dans la boîte de dialogue.

    Chaque environnement Instana SaaS est associé à un nom de région spécifique, tel que blue, red, green orange,, ou coral. Pour plus d'informations sur le point de terminaison du backend « Instanaotlp-acceptor », consultez la section « Points de terminaison du backend otlp-acceptor de Instana ».

  2. Configurez une OTLP/gRPC connexion OTLP/HTTP ou au serveur de base de données Instana. Par exemple, si vous utilisez l'environnement blue Instana, vous pouvez configurer une OTLP/gRPC connexion OTLP/HTTP ou au serveur Instana à l'aide de la configuration suivante :

    • OTLP/gRPC

      exporters:
        otlp:
          endpoint: otlp-blue-saas.instana.io:4317
          headers:
            x-instana-key: xxxx
      ...
      service:
        pipelines:
          traces:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]
          metrics:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]
          logs:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]

      Définissez le x-instana-key champ avec la clé de l'agent « Instana » pour cibler le backend « Instana ».

    • OTLP/HTTP

      exporters:
        otlphttp:
          endpoint: https://otlp-blue-saas.instana.io:4318
          headers:
            x-instana-key: xxxx
      ...
      service:
        pipelines:
          traces:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]
          metrics:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]
          logs:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]

Configuration des attributs de ressource

Le backend « host.idInstana » nécessite un attribut de ressource device.id , faas.id, ou. Vous pouvez également définir x-instana-host comme variable d'environnement pointant vers le nom d'hôte.

Si le collecteur OpenTelemetry est déployé en mode « DaemonSet », c'est-à-dire si le collecteur OpenTelemetry se trouve sur le même hôte que les applications qui envoient les données OpenTelemetry, vous pouvez définir x-instana-host l'en-tête à l'aide de l'exportateur OTLP. Voir l'exemple suivant :

exporters:
  otlp:
    endpoint: otlp-blue-saas.instana.io:4317
    headers:
      x-instana-key: xxxxxxx
      x-instana-host: xxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
Remarque : vous devez indiquer le nom d'hôte dans le champ x-instana-host si aucun attribut de host.name ressource device.id , host.id, faas.id, ou n'est défini dans votre application ou votre système. Pour trouver cette option host.name dans l'interface utilisateur d' Instana, accédez à « Analyze Infrastructure » > « Host ». Sélectionnez l'hôte souhaité dans la liste pour afficher ses détails. Sous « Système », vous trouverez le nom d'hôte.

Pour ajouter l'attribut « host.name resource », il suffit d'utiliser le resource processeur :

processors:
  resource:
    attributes:
    - key: host.name
      action: upsert
      value: "myhost1.ibm.com"

Après avoir effectué toutes les modifications de configuration dans le fichier de l'agent configuration.yaml, exécutez la commande suivante pour utiliser le collecteur OpenTelemetry :

otelcol-contrib --config configuration.yaml

Points de terminaison du backend otlp-acceptor d' Instana

Dans le tableau ci-dessous, vous trouverez les noms de domaine du backend d' Instanaotlp-acceptor pour les différents environnements d' Instana et d' SaaS. Pour plus d'informations sur l'environnement Instana SaaS, consultez la section « Intégration à OpenTelemetry à l'aide du collecteur OpenTelemetry ».

Instana SaaS environnement Nom de domaine de l'accepteur d'otlp
Bleu gRPC: otlp-grpc-blue-saas.instana.io:443

HTTP: https://otlp-http-blue-saas.instana.io:443

rouge gRPC: otlp-grpc-red-saas.instana.io:443

HTTP: https://otlp-http-red-saas.instana.io:443

vert gRPC: otlp-grpc-green-saas.instana.io:443

HTTP: https://otlp-http-green-saas.instana.io:443

orange gRPC: otlp-grpc-orange-saas.instana.io:443

HTTP: https://otlp-http-orange-saas.instana.io:443

Coral gRPC: otlp-grpc-coral-saas.instana.io:443

HTTP: https://otlp-http-coral-saas.instana.io:443

sarcelle gRPC: otlp-grpc-teal-saas.instana.io:443

HTTP: https://otlp-http-teal-saas.instana.io:443

mizu gRPC: otlp-grpc-mizu-saas.instana.io:443

HTTP: https://otlp-http-mizu-saas.instana.io:443

citrouille gRPC: otlp-grpc-pumpkin-saas.instana.io:443

HTTP: https://otlp-http-pumpkin-saas.instana.io:443

jaune gRPC: otlp-grpc-yellow-saas.instana.io:443

HTTP: https://otlp-http-yellow-saas.instana.io:443

émeraude gRPC: otlp-grpc-emerald-saas.instana.io:443

HTTP: https://otlp-http-emerald-saas.instana.io:443

Remarque : tous les points de terminaison du backend otlp-acceptor de l' Instana, dans les environnements SaaS, prennent en charge la fonctionnalité « TLS ».
Remarque : si vous utilisez la plateforme Red Hat OpenShift avec l'édition personnalisée auto-hébergée d' Instana et que vous rencontrez des erreurs de connexion aux points de terminaison, vous devez créer manuellement les routes sur Red Hat OpenShift. Pour plus d'informations sur la création de routes, consultez la section « Configuration des points de terminaison sur le backend Instana » sur Red Hat OpenShift. La création d'itinéraires ne se fait pas automatiquement.