Mise en correspondance des journaux d' OpenTelemetry s avec les services
Le pipeline de traitement des journaux de l'OTEL ( Instana ) OpenTelemetry prend en charge la corrélation avec les services, qui sont dérivés d'entités d'infrastructure. Pour plus d'informations sur la définition des services, consultez la section Services.
Attribution de noms de service aux journaux
En fonction de la configuration du déploiement d' OpenTelemetry Collector, vous pouvez configurer l'attribut service.name comme suit pour établir une corrélation entre les journaux et les services :
OpenTelemetry Déploiement autonome de Collector
Lorsque vous déployez le collecteur OpenTelemetry en tant qu'exécutable autonome ou en tant que service pour surveiller les journaux système de Linux ou les journaux d'événements de Windows, vous devez attribuer manuellement un nom de service à chaque entrée de journal afin d'établir une corrélation entre les journaux et les services.
Vous pouvez ajouter l'attribut service.name comme indiqué dans l'exemple suivant :
processors:
transform/enrich_with_service_name:
error_mode: ignore
log_statements:
- context: log
statements:
## Set a "service.name" resource attribute only if the log record is from a specific file.
## Example checking the exact file path.
- set(attributes["service.name"], "My Service 1") where attributes["log.file.path"] == "/path/to/service-1.log"
## Example using a regular expression to match a file path.
- set(attributes["service.name"], "My Service 2") where IsMatch(attributes["log.file.path"], ".*(service-2-dir-name).*")
## Example using a custom-defined environment variable with a regex condition on the file path.
## Note: This example assumes that the environment variable MY_OTEL_SERVICE_NAME is contains
## the desired service name. You may use any environment variable for this purpose.
- set(attributes["service.name"], "${env:MY_OTEL_SERVICE_NAME}") where IsMatch(attributes["log.file.path"], ".*(some-otel-service-name).*")
## Example using the log path to set the service name dynamically using a named capture group in the regex
## to extract the project name as the "service_name" for multiple services with "projects" in their file path.
- set(attributes["service.name"], ExtractPatterns(attributes["log.file.path"], ".*/projects/(?P<service_name>[^/]+)")["service_name"]) where IsMatch(attributes["log.file.path"], ".*(projects).*")
[...]
service:
pipelines:
logs:
processors:
# Add other processors here.
- transform/enrich_with_service_name
# Always recommended to batch log records.
- batch
OpenTelemetry Déploiement de collecteurs dans l' Kubernetes
Lorsque vous utilisez le collecteur OpenTelemetry pour surveiller les services d' Kubernetes, vous pouvez ajouter l'attribut service.name à chaque enregistrement de journal à l'aide du k8sattributes processeur afin d'extraire les champs de configuration ou de métadonnées du pod Kubernetes.
Lorsque vous installez le collecteur OpenTelemetry à l'aide du tableau « Helm », vous avez accès au processeur préconfiguré k8sattributes dans le opentelemetry-collector/templates/_config.tpl fichier.
Dans les deux cas, assurez-vous que le service.name champ est inclus dans la k8sattributes configuration du processeur afin d'activer la corrélation des services :
processors:
k8sattributes:
extract:
metadata:
## Here add any additional metadata you want to extract from the k8s environment.
## For the full list of supported attributes: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/k8sattributesprocessor/README.md
- "service.name" ## Allows logs to be correlated to specific services by Instana.
- "k8s.pod.uid" ## If container.id is unavailable, logs are correlated to a specific Kubernetes pod.
- "container.id" ## If this field is available, logs are correlated to specific containers in a Kubernetes pod.
[...]
service:
pipelines:
logs:
processors:
# Add other processors here.
- k8sattributes
# Always recommended to batch log records.
- batch
Corrélation des services dans l'interface utilisateur d' Instana
La service.name valeur doit correspondre au nom du service concerné, tel qu'il est défini dans la documentation relative aux services. Lorsqu'il est correctement configuré, le nom du service apparaît sous forme de lien hypertexte vers la page du service correspondant dans l'interface utilisateur d' Instana.
L'exemple suivant montre le nom du service sans corrélation; il s'affiche donc sous forme de texte brut dans l'interface utilisateur d' Instana :

L'exemple suivant montre le nom du service associé à la page de service correspondante « status-refresh-manager-svc » :

Lorsque vous cliquez sur le lien, la page du service s'ouvre :

Filtrage et regroupement des journaux dans l'interface utilisateur d' Instana
Vous pouvez utiliser le nom du service pour filtrer et regrouper les journaux dans l'interface utilisateur d' Instana.
L'exemple suivant montre comment filtrer les journaux par nom de service :

L'exemple suivant montre comment regrouper les journaux par nom de service :
