• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Gérer le volume d'ingestion de données OpenTelemetry

L'un des principaux atouts d'OpenTelemetry est son riche ensemble d'outils offrant un contrôle inégalé sur votre pipeline de données télémétriques. Ce contrôle complète le modèle de tarification à la consommation de New Relic.

Cette page parle d'une variété de concepts qui contribuent au volume de données lors de l'utilisation OpenTelemetry avec New Relic, ainsi que des outils/modèles disponibles pour gérer votre pipeline de données télémétriques. Il est organisé en sections traitant des concepts clés contribuant au volume de données pour les ressources, la trace, les métriques et les logs, suivis d'un catalogue d'outils disponibles pour aider à gérer le volume.

Concepts clés : Ressources

OTLP définit une structure de message hiérarchique similaire sur tous les signaux, ce qui évite la répétition au niveau du protocole en partageant les informations entre les enregistrements.

  • Chaque demande d'exportation contient plusieurs Resource{SignalRecord}
  • Chaque Resource{SignalRecord} contient plusieurs Scope{SignalRecord}
  • Chaque Scope{SignalRecord} contient plusieurs {SignalRecord}
  • {SignalRecord} est Span, Metric, et LogRecord

Cette structure hiérarchique est aplatie lorsqu'elle est envoyée au point de terminaison New Relic, et chaque attribut de ressource est dénormalisé en enregistrements Span, Metric et Log individuels. Pour plus d'informations sur la manière dont les données OpenTelemetry sont gérées dans New Relic, consultez les pages suivantes :

La plupart des implémentations du langage OpenTelemetry fournissent un package avec des détecteurs de ressources, qui contribuent à l'attribut de ressource en fonction des informations détectées dans l'environnement. Ces attributs peuvent être extrêmement utiles, mais peuvent inclure plus d’informations que nécessaire.

Pour plus de détails, voir les éléments suivants :

Concepts clés : trace

Échantillonnage

L'échantillonnage est le processus de contrôle des étendues exportées vers un backend d'observabilité. Les données de trace peuvent fournir des informations très précieuses et détaillées, mais si elles ne sont pas contrôlées, elles peuvent rapidement remplir les disques durs (et les factures !).

Par défaut, les SDK OpenTelemetry utilisent l'échantillonneur ParentBased(root=AlwaysOn) . L'échantillonneur ParentBased délègue à différents échantillonneurs configurables selon qu'il existe ou non un parent span, que ce parent soit local au processus actuel ou distant et que ce parent soit échantillonné. L'échantillonneur par défaut ParentBased(root=AlwaysOn) échantillonnera une plage si l'une des conditions suivantes est vraie :

  • Il n'y a pas de span parent (c'est-à-dire que ce span est la racine)
  • Le parent est échantillonné, que le parent soit local ou distant

En d’autres termes, il échantillonnera la plage à moins que le parent ne soit déséchantillonné.

Il s’agit d’une bonne valeur par défaut pour la communauté OpenTelemetry car elle permet à l’utilisateur d’installer l’instrumentation et de voir les données trace sans avoir besoin d’abord de connaître le concept d’échantillonnage. Cependant, vous devez être prudent avec le déploiement en production d'OpenTelemetry. En vertu de cette politique, toutes les portées sont échantillonnées, sauf si un composant ou une passerelle en amont prend des décisions d'échantillonnage intelligentes auxquelles le système en aval doit se conformer.

Pour des alternatives, voir les éléments suivants :

Données d'étendue

Les étendues OpenTelemetry sont composées d'une variété de champs de niveau supérieur (nom, type, etc.), d'attributs, d'événements d'étendue et de liens d'étendue. La quantité de données attachées aux étendues correspond directement au volume de données dans New Relic.

La bibliothèque d'instrumentation prend des décisions sur les éléments d'information à attacher aux travées, en suivant souvent les conventions sémantiques. Lorsque des exceptions se produisent, les informations sont souvent jointes à l'étendue sous la forme d'un événement d'étendue d'exception. Cet événement comprend un attribut représentant le message d'exception, le type et trace des appels, qui, selon la langue et l'application, peuvent être constitués de milliers d'octets. Si des exceptions se produisent fréquemment, les traces d'appels peuvent produire un volume de données élevé dans New Relic.

Pour connaître les stratégies de gestion des données d'étendue, consultez les éléments suivants :

traceur

Une portée d'instrumentation est une unité logique de code d'application avec une télémétrie qui lui est associée. Chaque bibliothèque d'instrumentation possède un (ou plusieurs) périmètres uniques et un ou plusieurs traceurs correspondants.

Les traceurs qui ne produisent pas de données trace de grande valeur peuvent être désactivés de manière sélective sans interrompre la trace.

Pour plus de détails, voir SDK désactiver traceur, Meter, enregistrer.

Concepts clés : Métriques

Intervalle de collecte

Les métriques regroupent les mesures individuelles et exportent l'état agrégé hors processus. Pour les protocoles push comme OTLP, l'exportation se produit sur un intervalle configurable par défaut sur 60s. Cet intervalle correspond directement au volume de données dans New Relic. Réduisez l’intervalle à 30s et le volume de données devrait approximativement doubler. Augmentez l’intervalle à 120s et le volume de données devrait être réduit de moitié environ.

L'intervalle par défaut 60s est une valeur par défaut raisonnable, car il équilibre le compromis entre le volume de données et le décalage d'observabilité. Augmentez l'intervalle trop haut et les retards dans les signaux critiques atteignant le dashboard et les alertes New Relic peuvent aggraver les problèmes.

Pour plus de détails, voir SDK périodique exportant métrique Reader exportIntervalMillis.

Cardinalité

Les mesures que les métriques agrègent sont associées à un ensemble d'attributs. Le nombre d’ensembles distincts d’attributs est appelé cardinalité. La cardinalité est importante car elle détermine la quantité de mémoire d'application requise pour maintenir l'état agrégé des mesures, la quantité de données exportées à chaque intervalle de collecte et le volume de données dans New Relic.

Si la cardinalité est trop élevée, envisagez d'omettre les attributs qui y contribuent. Si vous contrôlez l'instrumentation, cela pourrait signifier enregistrer moins d'attributs à chaque mesure. Cependant, l’instrumentation n’est souvent pas directement configurable.

Pour plus de détails sur la façon de supprimer un attribut des métriques, consultez les éléments suivants :

Temporalité de l'agrégation

Dans les métriques OpenTelemetry, le concept de temporalité d'agrégation définit si l'état des mesures agrégées se réinitialise ou non après chaque collecte. Lorsque la temporalité d'agrégation est cumulative, l'état agrégé ne se réinitialise pas et les métriques représentent les valeurs cumulées depuis le démarrage de l'application. Lorsque la temporalité de l'agrégation est delta, l'état agrégé se réinitialise après chaque collecte et les métriques représentent la différence depuis la collecte précédente.

Alors que le point de terminaison OTLP de New Relic prend en charge la temporalité d'agrégation cumulative, l'architecture des métriques New Relic est un système de métriques delta. L'utilisation du paramètre cumulatif par défaut entraînera généralement une utilisation plus importante de la mémoire des SDK et entraînera une ingestion élevée de données. La conversion de l'agrégation cumulative à l'agrégation delta est une activité à l'état, car vous devez conserver le point précédent de chaque série temporelle afin de calculer la différence. Pour cette raison, il est préférable de configurer la temporalité d'agrégation dans le SDK, ce qui permet d'économiser la mémoire de l'application et d'éviter une complexité supplémentaire en aval.

Pour plus de détails, voir les éléments suivants :

Compteurs et instruments

Une portée d'instrumentation est une unité logique de code d'application avec une télémétrie qui lui est associée. Chaque bibliothèque d'instrumentation possède un (ou plusieurs) oscilloscopes uniques et un ou plusieurs compteurs correspondants, et chaque compteur possède un ou plusieurs instruments.

Les compteurs ou instruments qui ne fournissent pas de données métriques précieuses peuvent être désactivés de manière sélective.

Pour plus de détails, voir les éléments suivants :

Concepts clés : logarithme

Données LogRecord

OpenTelemetry log Les enregistrements sont composés d'une variété de champs de niveau supérieur (horodatage, gravité, corps, etc.) et d'attributs. La quantité de données attachées aux enregistrements log correspond directement au volume de données dans New Relic.

La bibliothèque d'instrumentation (appelée log appenders dans OpenTelemetry log l'espace puisque OpenTelemetry log l'API de pont est destinée à relier les logs log des API à OpenTelemetry) prend des décisions sur les éléments d'information à joindre aux log enregistrements , en suivant souvent les conventions sémantiques .

Pour connaître les stratégies de gestion des données log , consultez les éléments suivants :

enregistreur

Une portée d'instrumentation est une unité logique de code d'application avec une télémétrie qui lui est associée. Pour le logging OpenTelemetry, chaque enregistreur distinct (ponté par un log appender utilisant OpenTelemetry log l'API de pont de ) a une portée d'instrumentation unique.

Les enregistreurs qui ne produisent pas de données log de grande valeur peuvent être désactivés de manière sélective.

Pour plus de détails, voir les éléments suivants :

Catalogue d'outils de gestion Pipeline

Le tableau suivant répertorie une variété d’outils utiles pour gérer votre pipeline de données OpenTelemetry. Notez qu'OpenTelemetry est un écosystème hautement extensible. Si ces outils ne suffisent pas, d’autres outils peuvent être disponibles ou vous pourrez peut-être écrire une logique d’extension personnalisée pour les SDK de langage ou Collector afin d’atteindre vos objectifs.

Nom

Collector ou SDK ?

Description

Détecteurs de ressources SDK

Kit de développement logiciel (SDK)

Les SDK de langage OpenTelemetry package des détecteurs pour fournir des attributs de ressources en fonction de l'environnement. Certains d'entre eux sont souvent activés par défaut avec des options d'instrumentation sans code comme l'agent Java OpenTelemetry. Consultez la documentation linguistique pour plus de détails sur la façon d'activer/désactiver les détecteurs de ressources.

Kit de développement logiciel (SDK) ParentBased(root=TraceIdRatioBased) sampler

Kit de développement logiciel (SDK)

L'échantillonneur ParentBased avec la racine définie sur l'échantillonneur TraceIdRatioBased est une alternative simple et raisonnable à l'échantillonneur ParentBased par défaut avec la racine définie sur AlwaysOn. Avec la racine définie sur TraceIdRatioBased, les étendues qui représentent une nouvelle trace sont échantillonnées de manière probabiliste, l'étendue enfant étant échantillonnée selon la décision d'échantillonnage de son parent (à condition que d'autres applications soient configurées avec la même politique d'échantillonnage). L'échantillonneur peut être configuré par programmation sur le SDK TracerProvider, mais il est courant d'utiliser des variables d'environnement :

bash
$
export OTEL_TRACES_SAMPLER=parentbased_traceidratio
$
export OTEL_TRACES_SAMPLER_ARG=0.25

Réglez l'échantillonneur TraceIdRatioBased pour échantillonner 25 % des étendues de racines.

Limites de portée du SDK

Kit de développement logiciel (SDK)

Le OpenTelemetry trace SDK permet de configurer des limites de portée pour spécifier la longueur et la quantité maximales d'attributs, le nombre maximal d'événements de portée et le nombre maximal de liens de portée. Les limites de portée peuvent être configurées par programmation sur le SDK TracerProvider, mais il est courant d'utiliser des variables d'environnement :

bash
$
export OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT=4095
$
export OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT=64

Définissez les limites d'étendue pour qu'elles s'alignent sur les limites d'attribut du point de terminaison New Relic OTLP.

Limites du SDK LogRecord

Kit de développement logiciel (SDK)

Le OpenTelemetry log SDK permet de configurer des limites de portée pour spécifier la longueur maximale et la quantité d'attribut. Les limites de LogRecord peuvent être configurées par programmation sur le SDK LoggerProvider, mais il est courant d'utiliser des variables d'environnement :

bash
$
export OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT=4095
$
export OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT=64

Définissez les limites d'enregistrement log pour qu'elles s'alignent sur les limites d'attribut du point de terminaison New Relic OTLP.

SDK désactiver le traceur, les compteurs, l'enregistreur

Kit de développement logiciel (SDK)

Le SDK OpenTelemetry définit TracerConfigurator, MeterConfigurator et LoggerConfigurator pour configurer et désactiver respectivement le traceur, les compteurs et l'enregistreur. Ce concept est actuellement en cours de développement et n'est pas disponible dans toutes les implémentations linguistiques. Consultez les documents linguistiques individuels et contactez les responsables des langues pour vérifier le statut.

SDK périodique exportant lecteur métrique exportIntervalMillis

Kit de développement logiciel (SDK)

Le SDK métrique OpenTelemetry permet de configurer l'intervalle de collecte du lecteur métrique exportateur périodique. L'intervalle peut être configuré par programmation, mais il est courant d'utiliser des variables d'environnement :

bash
$
export OTEL_METRIC_EXPORT_INTERVAL=60000

Définissez l'intervalle de collecte sur 60 s (60 000 ms). Il s'agit de la valeur par défaut, mais elle peut être ajustée en fonction des besoins.

Vues métriques du SDK

Kit de développement logiciel (SDK)

Le SDK de métrique OpenTelemetry permet de configurer MeterProvider avec des vues pour spécifier diverses options, notamment l'ensemble des clés d'attribut à conserver, le type d'agrégation et la suppression de la métrique. En général, les vues sont configurées par programmation. Consultez les documents linguistiques individuels pour rechercher des alternatives dans votre langue. Par exemple, OpenTelemetry Java dispose d'un support expérimental pour la configuration de vues dans un fichier YAML.

Temporalité d'agrégation delta SDK

Kit de développement logiciel (SDK)

Le SDK de métriques OpenTelemetry permet de configurer la temporalité d'agrégation pour l'exportateur OTLP. Cette temporalité peut être configurée par programmation, mais il est courant d'utiliser des variables d'environnement :

bash
$
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta

Définissez la temporalité d'agrégation de l'exportateur métrique OTLP sur delta, en s'alignant sur la préférence du point de terminaison OTLP New Relic.

SDK configure les appenders log

Kit de développement logiciel (SDK)

L'API de pont est conçue pour être utilisée par les OpenTelemetry log log appenders , qui relient les logs des log API à OpenTelemetry. Ces log appendeurs peuvent être installés automatiquement avec des options d'instrumentation sans code comme OpenTelemetry Java l'agent , ou peuvent nécessiter des étapes d'installation manuelles. Ils disposent souvent d'options configuration permettant de spécifier quel log et quelles données sont intégrés à OpenTelemetry. De plus, il est souvent possible de configurer l'API log en cours de pontage pour spécifier quel log (en fonction de la gravité ou du nom de l'enregistreur) doit être transmis à l'appender log . Consultez les documents linguistiques individuels pour plus de détails.

Filtre Collector Processeur

Collector

Le processeur de filtre Collector peut être utilisé pour filtrer les enregistrements span, métriques et log de votre pipeline d'observabilité. Pour les travées, il peut fonctionner comme un simple échantillonneur de queue, agissant sur les travées terminées mais sans accès à la trace complète (Remarque : cela peut entraîner une trace interrompue). Pour les métriques, il peut être utilisé pour supprimer des métriques ou des séries qui n'ont pas de grande valeur. Pour les logs, il peut être utilisé pour supprimer les enregistrements log qui n'ont pas de valeur élevée (par exemple logs avec une gravité à grain fin ou provenant d'un enregistreur bruyant).

Processeur d'échantillonnage de queue Collector

Collector

L'échantillonnage de queue Collector vous permet de décider d'échantillonner en fonction de la trace terminée. Par exemple, vous pouvez mettre l'accent sur la conservation des traces qui comportent des erreurs ou qui touchent à des zones à fort intérêt du système. L'inconvénient est que le processeur d'échantillonnage de queue ajoute de la complexité à votre d'observabilité pipeline car il nécessite que toutes les étendues d'une trace soient acheminées vers la même Collector instance et que le conserve les étendues Collector en mémoire en attendant la trace fin de la . Cela nécessite une planification minutieuse lorsque votre pipeline d’observabilité atteint une échelle qui ne peut pas être gérée par une seule instance de Collector.

Ressource du Collector Processeur

Collector

Le processeur de ressources Collector vous permet d'écrire des règles simples pour manipuler les attributs de ressources des étendues, des métriques et des logs. Par exemple, vous pouvez supprimer les attributs qui n’ont pas de grande valeur.

Processeur de transformation de métriques Collector

Collector

Le Processeur de transformation Collector métrique vous permet de manipuler des données métriques. Par exemple, vous pouvez supprimer des séries qui n'ont pas de valeur élevée ou fusionner des séries temporelles pour réduire la cardinalité (parfois appelée réagrégation spatiale).

Processeur de transformation Collector

Collector

Le processeur de transformation Collector vous permet de transformer des données d'observabilité en utilisant des conditions pour sélectionner les données et des instructions pour les modifier. Par exemple, vous pouvez supprimer un attribut de ressource, tronquer un attribut, modifier les champs de niveau supérieur pour les étendues, les métriques et les enregistrements de logs, et bien plus encore.

Collector cumulatif vers delta Processeur

Collector

Le processeur Collector cumulativetodelta vous permet de transformer la temporalité d'agrégation métrique de cumulative à delta. Cela est utile pour aligner vos métriques avec la temporalité d'agrégation préférée du point de terminaison OTLP de New Relic. A noter que la traduction de l'agrégation cumulative à l'agrégation delta est un processus à l'état, nécessitant que le Collector stocke le dernier point de chaque série temporelle en mémoire afin de calculer et d'émettre la différence. Cela nécessite une planification minutieuse des Collector ressources mémoire et la structuration du d'observabilité pipeline pour garantir que tous les points de la même série arrivent à la même Collector instance.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.