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.
Notre agent Python vous permet de modifier le comportement par défaut de l'agent à l'aide d'options de configuration.
Le seul paramètre de configuration de l'agent Python requis est le . La clé de licence identifie le compte sur lequel l'agent signale les données d'application. Selon la manière dont vous hébergez votre application, la clé de licence peut être fournie via un fichier de configuration ou une variable d'environnement.
L'agent Python suit cet ordre de priorité pour la configuration :
Avec l'agent Python, les options par requête remplacent la configuration côté serveur. Si cette option est activée, la configuration côté serveur remplace all valeurs correspondantes dans le fichier de configuration de l'agent, même si les valeurs côté serveur sont laissées vides. Le fichier de configuration de l'agent remplace les variables d'environnement. Les variables d’environnement remplacent les valeurs par défaut de l’agent.
Voici des descriptions détaillées de chaque méthode de configuration :
En règle générale, vous configurez votre agent Python à partir d'un fichier de configuration local sur le système hôte de l'agent. Fournissez le chemin d’accès au fichier de configuration au démarrage en utilisant l’une de ces méthodes :
Lorsque vous appelez newrelic.agent.initialize(), indiquez le chemin d’accès au fichier de configuration comme premier argument.
OU
Définissez la variable d’environnement NEW_RELIC_CONFIG_FILE . Si vous utilisez le script wrapper newrelic-admin, vous devez utiliser la variable d'environnement car le script wrapper appelle l'agent automatiquement.
L' agent prend en charge deux types de fichiers configuration, l'agent v10.2.0 et les versions antérieures doivent utiliser la syntaxe .ini tandis que les versions agent v10.3.0 et supérieures exécutées sur les versions Python 3.11 et supérieures prennent également en charge les fichiers .toml.
Le fichier de configuration utilise une structure similaire aux fichiers .ini de Microsoft Windows. Pour plus d'informations, consultez la documentation sur le format de fichier du module Python ConfigParser.
La structure de base devrait ressembler à ce qui suit :
[newrelic]
license_key=<license key>
app_name=Python Application
Conseil
À partir de Python 3.11, la nouvelle syntaxe .toml pour la configuration a été ajoutée à la bibliothèque standard. La version de l'agent 10.3.0 a ajouté la prise en charge de l'utilisation de ce nouveau format.
Pour utiliser la syntaxe .toml, le nom du fichier de configuration doit se terminer par .toml pour indiquer le type de syntaxe. Le fichier standard pyproject.toml peut être utilisé avec configuration d'autres bibliothèques, ou vous pouvez utiliser un fichier plus spécifique comme newrelic.toml.
La structure de base devrait ressembler à ce qui suit :
[tool.newrelic]
license_key=<license key>
app_name=Python Application
Conseil
Un exemple de fichier de configuration est inclus avec l'agent Python sous le nom newrelic/newrelic.ini. Vous pouvez également en générer un à partir du script newrelic-admin en utilisant la commande generate-config, ou télécharger une copie à partir de notre référentiel de téléchargement (repository).
configuration côté serveur vous permet de configurer certains paramètres dans l'UI New Relic. Cela applique automatiquement vos modifications à tous les agents, même s'ils s'exécutent sur plusieurs hôtes. Le cas échéant, ce document inclut les étiquettes UI pour la configuration côté serveur sous les options de configuration individuelles comme Server-side label.
Important
Si la configuration côté serveur est activée, l' agent ignore toute valeur dans le fichier de configuration qui could doit être définie dans l' UI. Même si la valeur UI est vide, l' agent la traite comme une chaîne vide et n'utilise pas le fichier de configuration agent .
Les variables d’environnement vous permettent de remplacer les valeurs par défaut de certains paramètres de base. Si le paramètre équivalent est explicitement répertorié dans le fichier de configuration de l'agent, les paramètres du fichier de configuration ont priorité sur la variable d'environnement. Lorsque disponibles, les variables d'environnement sont documentées ci-dessous sous les options de configuration individuelles sous la forme Environ variable.
Pour les configurations simples, vous pouvez utiliser les variables d'environnement conjointement avec la configuration côté serveur et éviter complètement le fichier de configuration de l'agent. Il s'agit de la configuration par défaut avec Heroku, où l'installation du module complémentaire New Relic remplit automatiquement les variables d'environnement nécessaires.
Pour certains serveurs WSGI, vous pouvez remplacer le nom de l'application et capturer les paramètres d'attribut pour chaque demande. Ceci est possible avec les serveurs WSGI où vous pouvez définir des paires valeur-clé supplémentaires qui sont transmises au dictionnaire d'environnement WSGI par demande.
Définissez ces valeurs avec les chaînes on, off, true, false, 1 et 0. Si défini à partir d'un mécanisme de configuration implémenté à l'aide de code Python, les objets Python évaluant à True ou False seront également acceptés.
Dans le serveur Apache/mod_wsgi, vous pouvez utiliser la directive SetEnv pour remplacer les paramètres de configuration (éventuellement à l'intérieur d'un bloc Location ou Directory ). Par exemple, vous pouvez remplacer le nom de l’application pour un hôte virtuel complet ou pour un sous-ensemble d’URL gérées par l’application WSGI pour cet hôte virtuel.
En plus de pouvoir remplacer certains paramètres de configuration de l'agent, vous pouvez définir d'autres paramètres de configuration par demande avec leur clé d'environnement WSGI :
Si la valeur est true, cette transaction Web sera signalée comme une transaction non Web.
Si la valeur est true, cette transaction Web ne sera pas signalée.
Si défini sur true, aucune métrique Apdex ne sera générée pour cette transaction Web.
Si défini sur true, cette transaction Web ne peut pas être enregistrée dans une trace de transaction.
Si défini sur true, cela désactive l'insertion automatique de l'en-tête/pied de page JavaScript pour le temps de chargement de la page (parfois appelé monitoring des utilisateurs réels ou RUM). Applicable uniquement si l'insertion automatique est disponible pour votre frameworkWeb.
Important
L'utilisation d'un middleware WSGI pour définir ces valeurs ne fonctionnera pas lorsque le wrapper d'application WSGI de l'agent Python a été appliqué à une portée externe. Dans ces cas, vous devez effectuer des appels à l' API d' agent pour obtenir le même résultat.
Configuration d'environnements multiples
L'agent lit sa configuration principale à partir d'une section de configuration d'agent appelée [newrelic] pour les fichiers ini ou [tool.newrelic] pour les fichiers .toml . Vous pouvez fournir des remplacements pour des environnements de déploiement spécifiques (par exemple, développement, simulation, production) dans des sections supplémentaires. Préfacez ces sections avec [newrelic:environment] pour les fichiers .ini ou [tool.newrelic.env.environment] pour les fichiers .toml (où environment est remplacé par le nom de votre environnement).
Pour spécifier que l'agent doit utiliser une configuration basée sur l'environnement, utilisez l'une de ces méthodes :
Lorsque vous appelez newrelic.agent.initialize(), indiquez le nom de l’environnement comme deuxième argument.
OU
Définissez la variable d’environnement NEW_RELIC_ENVIRONMENT sur le nom de l’environnement.
Si aucun environnement n'est spécifié, l'agent utilisera les paramètres par défaut spécifiés dans la section de configuration de l'agent newrelic .
La structure de base du fichier de configuration est :
[newrelic]
... default settings
[newrelic:development]
... override settings
[newrelic:staging]
... override settings
[newrelic:production]
... override settings
[tool.newrelic]
... default settings
[tool.newrelic.env.development]
... override settings
[tool.newrelic.env.staging]
... override settings
[tool.newrelic.env.production]
... override settings
Paramètres de configuration générale
Ces paramètres sont disponibles dans le fichier de configuration de l'agent.
Le application nom de utilisé pour agréger les données dans l'UI New Relic. Pour signaler des données à plusieurs applications en même temps, spécifiez une liste de noms séparés par un point-virgule ;. Ne mettez pas d'espace avant le point-virgule, car cela amènerait l'analyseur de configuration Python à interpréter le nom comme un commentaire intégré.
Lorsque true, l' agent instrumentera votre application Web, mais n'enverra aucune donnée réelle. Dans ce mode hors ligne, vous ne serez pas facturé pour un agent actif.
Utilisez le mode développeurs pour tester de nouvelles versions de l' agent ou testez l' agent par rapport à un package tiers dans un environnement de développeurs. Le mode hors ligne n'est pas un moyen d'exécuter l' APM localement, car les métriques collectées par l' agent ne sont signalées nulle part.
Définit le nom d'un fichier de log, ce qui est utile pour déboguer les problèmes avec l' agent. Cette option n'est pas définie par défaut, car l'agent ne connaît pas l'utilisateur parent de votre processus d'application Web ni les répertoires dans lesquels ce processus est autorisé à écrire. Pour des informations détaillées, voir Logging de l'agent Python.
Quelle que soit la valeur que vous définissez, assurez-vous que les autorisations pour le répertoire contenant et le fichier lui-même sont correctes, et que l'utilisateur sous lequel votre application Web s'exécute peut écrire dans le fichier.
Conseil
Utilisez un chemin absolu, sauf si vous êtes sûr de ce que sera le répertoire de travail de votre application au démarrage. Si vous ne pouvez pas écrire un fichier de log, vous pouvez également utiliser stderr et générer une sortie vers la sortie d'erreur standard. Cela devrait normalement entraîner l'apparition d'une sortie dans log de votre serveur Web.
Définit le niveau de détail du message de log, si vous avez défini l' emplacement du fichier de log . log_level n'affectera pas le niveau de log du module de logging Python. Les valeurs possibles, par ordre croissant de détail, sont critical, error, warning, info et debug.
Pour signaler les problèmes d'agent, le paramètre le plus utile est debug. Cependant, debug génère beaucoup d'informations très rapidement, ne laissez donc pas l'agent à ce niveau plus longtemps qu'il ne faut pour reproduire votre problème.
Le mode haute sécurité applique certains paramètres de sécurité et empêche leur contournement, de sorte qu'aucune donnée sensible ne nous est envoyée. L'activation du mode haute sécurité signifie que les paramètres de demande ne sont pas collectés et que vous ne pouvez pas envoyer de SQL brut.
Pour activer le mode haute sécurité, définissez-le sur true dans le fichier de configuration local .iniand activez-le à partir de la page Account settings . Pour plus d'informations, voir Haute sécurité.
Fichier de configuration, variable d'environnement
Variables d'environnement
NEW_RELIC_PROXY_SCHEME
NEW_RELIC_PROXY_HOST
NEW_RELIC_PROXY_PORT
NEW_RELIC_PROXY_USER
NEW_RELIC_PROXY_PASS
Par défaut, l'agent Python tente de se connecter directement à nos serveurs. S'il existe un pare-feu entre votre hôte et notre collecteur qui vous oblige à utiliser un proxy HTTP, définissez proxy_host et proxy_port sur les valeurs requises pour votre proxy HTTP. Si l'authentification proxy est implémentée par le proxy HTTP, définissez également proxy_user et proxy_pass.
Le paramètre proxy_scheme détermine le schéma de protocole utilisé pour communiquer avec le proxy HTTP. Lorsque défini sur http, l'agent utilise un tunnel SSL via le proxy HTTP pour le chiffrement de bout en bout.
Au lieu de définir les paramètres proxy_scheme, proxy_host et proxy_port, vous pouvez également définir le paramètre proxy_host sur un URI valide pour le proxy. Inclure le schéma, l’hôte et le port ; par exemple, http://proxy-host:8000. Cela fonctionne également si vous définissez les détails du proxy HTTP avec la variable d'environnement NEW_RELIC_PROXY_HOST .
Définit le nom du fichier de log d'audit. Si cette option est définie, l' agent enregistre les détails des messages transmis entre le processus de monitoring et le collecteur. Cela vous permet d'évaluer la sécurité de l'agent Python.
Utilisez un chemin absolu, sauf si vous êtes sûr de ce que sera le répertoire de travail de votre application au démarrage. Quelle que soit la valeur que vous définissez, assurez-vous que les autorisations pour le répertoire contenant et le fichier lui-même sont correctes. Assurez-vous également que l’utilisateur parent de votre application Web peut écrire dans le fichier.
Prudence
N'utilisez pas le logging d'audit de manière continue, en particulier dans un environnement de production. Étant donné que l' agent ne tronque ni ne fait pivoter le fichier log, celui- log peut croître très rapidement.
Définit le nom d'hôte à afficher dans l'UI APM. Si cette option est définie, elle remplace le nom d'hôte par défaut que l' agent capture automatiquement.
Remplacement manuel du chemin d'accès à votre bundle CA local. Ce bundle CA sera utilisé pour valider le certificat SSL présenté par notre service de collecte de données.
Conseil
Cette option de configuration est uniquement disponible dans les versions 4.2.0 et plus récentes de l'agent Python.
Ceci n'est défini dans le fichier de configuration ou la variable d'environnement que si serverless_mode est défini, ce qui est activé pour AWS Lambda. Dans le apdex_t UI application cas contraire, la valeur locale est remplacée par la valeur dans les paramètres apdex_f de l' qui est ensuite utilisée pour définir la valeur.
Attributs
attribut sont des paires valeur clé qui fournissent des informations sur la trace de transaction, les erreurs de trace, et l'événement de transaction. En plus de configurer les attributs pour les quatre destinations avec les paramètres d'attribut généraux ci-dessous, ils peuvent également être configurés pour chaque destination.
Si les attributs sont activés, les clés d'attribut trouvées dans cette liste nous seront envoyées. Les clés de la liste doivent être séparées par des espaces comme indiqué ci-dessous :
Toutes les clés d'attribut trouvées dans cette liste ne nous seront pas envoyées. Les clés de la liste doivent être séparées par des espaces comme indiqué ci-dessous :
Cette section comprend la Python agent configuration pour la mise en place monitoring de l'IA.
Important
Vous devez activer le tracing distribué pour capturer les données AI. Il est activé par défaut dans les versions 7.0.0.166 et supérieures de l'agent Python.
Important
Lorsque cette option est activée, monitoring de l'IA enregistre une copie en continu des entrées et des sorties envoyées vers et depuis les modèles que vous choisissez de monitorer, y compris toutes les informations personnelles qu'ils contiennent. Vous êtes responsable d'obtenir le consentement de l'utilisateur de votre modèle pour que son interaction puisse être enregistrée par un tiers (New Relic) dans le but d'assurer la monitoring de la fonctionnalité IA.
Lorsqu'il est défini sur false, désactive instrumentation qui enregistre le résumé et les événements de message pour les données des grands modèles de langage (LLM) diffusées en continu.
Si défini sur false, l' agent omettra le contenu d'entrée et de sortie (comme les chaînes de texte de l'invite et des réponses) capturées dans l'événement LLM. Il s'agit d'un paramètre de sécurité facultatif si vous ne souhaitez pas enregistrer les données sensibles envoyées et reçues par vos LLM.
Configuration du traceur de transactions
Important
N'utilisez pas de crochets [suffix] à la fin du nom de votre transaction. L'agent supprime automatiquement les parenthèses du nom. Utilisez plutôt des parenthèses (suffix) ou d’autres symboles si nécessaire.
Pour plus d'informations sur la trace de transaction, voir trace de transaction.
seuil en secondes pour savoir quand collecter une trace de transaction. Lorsque le temps de réponse d’une action du contrôleur dépasse ce seuil, l’agent enregistre une trace de transaction. Les valeurs valides sont toute virgule flottante positive ou apdex_f (quatre fois apdex_t).
Lorsque le traceur de transaction est activé, l'agent peut enregistrer des instructions SQL. L'enregistreur dispose de trois modes : off (n'envoie aucun SQL), raw (envoie l'instruction SQL dans sa forme d'origine) et obfuscated (supprime les littéraux numériques et de chaîne).
La plupart des frameworks Web (y compris Django) paramétrent les requêtes SQL afin qu'elles ne contiennent pas réellement les valeurs utilisées pour remplir la requête. Si vous utilisez raw le mode avec l’un de ces frameworks, l’ Python agent ne verra que le SQL avant l’insertion des valeurs. Le SQL paramétré ressemblera beaucoup au mode obfuscated .
seuil en secondes pour savoir quand collecter la trace des appels à partir des appels SQL. Lorsque les instructions SQL dépassent ce seuil, l' agent capture la trace des appels en cours. Cela est utile pour identifier l’origine des appels SQL longs dans une application.
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs de suivi de transaction. Si attributes.enabled au niveau racine est false, aucun attribut ne sera envoyé pour tracer la transaction, quelle que soit la manière dont ce paramètre configuration (transaction_tracer.attributes.enabled) est défini.
Si les attributs sont activés pour le suivi de transaction, toutes les clés d'attribut trouvées dans cette liste nous seront envoyées dans le suivi de transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Toutes les clés d'attribut trouvées dans cette liste ne seront pas envoyées dans la trace de transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Pour les fonctions ou méthodes spécifiées, l'agent capturera une instrumentation de synchronisation de fonction supplémentaire. Spécifiez ces noms sous la forme module:function ou module:class.function.
Le globbing (caractères génériques) pour les noms de fonctions et de classes est possible à l'aide de modèles pris en charge par le module fnmatch . Les chemins de module ne sont pas pris en charge par les caractères génériques. Spécifiez les modèles sous la forme module:function* ou module:class.*.
Par exemple, si vous souhaitez ajouter le traçage de fonction à toutes les fonctions de validation dans le fichier ci-dessous :
my-app/common/utils.py
defvalidate_credentials():
…
defvalidate_status():
…
defformat_message():
…
Ajoutez la ligne suivante au fichier de configuration de l'agent pour inclure le traçage des fonctions dans toutes les fonctions de validation dans my-app/common/utils.py en utilisant des caractères génériques.
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs des segments de trace de transaction. Si attributes.enabled au niveau racine est false, aucun attribut ne sera envoyé aux segments de trace de transaction, quelle que soit la manière dont ce paramètre configuration (transaction_segments.attributes.enabled) est défini.
Si les attributs sont activés pour les segments de trace de transaction, toutes les clés d'attribut trouvées dans cette liste seront envoyées dans les segments de trace de transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Toutes les clés d’attribut trouvées dans cette liste ne seront pas envoyées dans les segments de trace de transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Configuration du collecteur d'erreurs
Voici les paramètres du collecteur d’erreurs disponibles via le fichier de configuration de l’agent.
Pour arrêter de collecter des erreurs spécifiques, définissez ceci sur une liste séparée par des espaces des noms de types d'exceptions Python à ignorer. Utilisez le formulaire module:class pour le nom de l’exception.
Conseil
Avant la version 6.4.0 de l'agent, ce paramètre était nommé error_collector.ignore_errors. Si votre fichier de configuration utilise toujours ignore_errors, mettez à jour votre agent pour utiliser ignore_classes.
Répertorie les codes d'état HTTP que l'agent doit ignorer plutôt que d'enregistrer comme des erreurs. Répertoriez les codes d'état supplémentaires sous forme d'entiers séparés par des espaces et spécifiez les plages avec un séparateur tiret - entre les valeurs de début et de fin. Pour ajouter l'un des codes par défaut à votre liste de domaines autorisés, faites précéder le code d'un point d'exclamation !.
Ce paramètre n'est compatible qu'avec certains frameworks Web, car certains frameworks n'utilisent pas d'exceptions pour renvoyer les réponses HTTP.
Conseil
Cette option de configuration ne peut être définie que dans la configuration côté serveur dans les versions 6.4.0 et plus récentes de l'agent Python.
Empêche les classes d'exception spécifiées d'affecter le taux d'erreur ou le score Apdex tout en signalant les erreurs à APM. Définissez ceci sur une liste séparée par des espaces des noms de types d’exceptions Python à prévoir. Utilisez le formulaire module:class pour le nom de l’exception.
Conseil
Cette option de configuration est uniquement disponible dans les versions 6.4.0 et plus récentes de l'agent Python.
Empêche les codes d'état HTTP spécifiés d'affecter le taux d'erreur ou le score Apdex tout en signalant les erreurs à APM. Répertoriez les codes d'état sous forme d'entiers séparés par des espaces et spécifiez les plages avec un séparateur tiret - entre les valeurs de début et de fin. Pour nier l’un des codes de votre liste, faites précéder le code d’un point d’exclamation !.
Ce paramètre n'est compatible qu'avec certains frameworks Web, car certains frameworks n'utilisent pas d'exceptions pour renvoyer les réponses HTTP.
Conseil
Cette option de configuration est uniquement disponible dans les versions 6.4.0 et plus récentes de l'agent Python.
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs pour les erreurs de trace. Si attributes.enabled est false au niveau racine, aucun attribut ne sera envoyé pour tracer les erreurs, quelle que soit la manière dont ce paramètre configuration (error_collector.attributes.enabled) est défini.
Si les attributs sont activés pour les erreurs de trace, toutes les clés d'attribut trouvées dans cette liste seront envoyées aux erreurs de trace. Pour plus d'informations, consultez les règles d'attribut de l'agent.
les clés d'attribut trouvées dans cette liste ne seront pas envoyées en cas d'erreurs de trace. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Si cette option est activée, le collecteur d'erreurs capture les données d'événement pour des analyses avancées. Pour plus d'informations, voir Erreurs APM.
Paramètres de monitoring des navigateurs
Voici les monitoring paramètres des navigateurs disponibles via le agent configuration fichier .
Spécifiez Content-Type le(s)(s) HTML que notre monitoring des navigateurs agent doit auto-instrument. Ajoutez des entrées supplémentaires dans une liste séparée par des espaces.
Si vous générez des réponses de page HTML et utilisez le Content-Type de application/xhtml+xml, vous pouvez remplacer les types de contenu autorisés pour répertorier à la fois ce type de contenu et le text/html par défaut en utilisant :
L'extrait de code JavaScript de monitoring du navigateur empêche la page d'être validée comme application/xhtml+xml, bien que la page doive se charger et s'afficher dans les navigateurs des utilisateurs finaux.
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs de monitoring des navigateurs. Il s'agit des données qui sont envoyées à l'événement de visualisation de la page. Si attributes.enabled est faux au niveau racine, aucun attribut ne sera envoyé dans monitoring des navigateurs, quelle que soit la manière dont le paramètre configuration (browser_monitoring.attributes.enabled) est défini.
Si les attributs sont activés pour browser_monitoring, toutes les clés d'attribut trouvées dans cette liste seront envoyées dans les pages vues. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Toutes les clés d'attribut trouvées dans cette liste ne seront pas envoyées dans les pages vues. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Paramètres des événements de transaction
Voici les paramètres d'événement de transaction disponibles via le agent configuration fichier .
Conseil
Ces paramètres de configuration étaient auparavant appelés analytic_events. Si votre fichier de configuration utilise toujours analytic_events, mettez à jour votre agent pour utiliser transaction_events.
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs d'un événement de transaction. Si attributes.enabled est false au niveau racine, aucun attribut ne sera envoyé à l'événement de transaction, quelle que soit la manière dont ce paramètre configuration (transaction_events.attributes.enabled) est défini.
Si les attributs sont activés pour l'événement de transaction, toutes les clés d'attribut trouvées dans cette liste seront envoyées dans l'événement de transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Type
Liste des chaînes
Défaut
(aucun)
Toutes les clés d’attribut trouvées dans cette liste ne seront pas envoyées dans l’événement de transaction. Notez que l'exclusion de l'attribut de l'événement de transaction n'exclut pas l'événement span. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Paramètres de l'événement personnalisé
Voici les paramètres d'événement personnalisé disponibles via le agent configuration fichier .
Lorsqu'il est activé, l'agent collecte des datastore instance métriques (telles que l'hôte et le port) pour certains pilotes de base de données. Ceux-ci sont également signalés sur requête lente trace et trace de transaction.
Lorsqu'il est activé, l' agent collecte le nom de la base de données pour certains pilotes de base de données. Le nom de la base de données est indiqué dans les requêtes lente trace et trace de transaction.
Paramètres de tracing distribué
Le tracing distribué vous permet de voir le chemin emprunté par une requête lorsqu'elle traverse un système distribué. À partir de la Python agent version 7.0.0.166 ou supérieure, le tracing distribué est activé par défaut.
Important
L'activation du tracing distribué désactive le tracing inter-application et a d'autres effets sur la fonctionnalité APM . Si vous effectuez une migration à partir du tracing inter-applications, lisez le guide de transition.
Span événement sont collectés pour tracing distribué. le tracing distribué doit être activé pour signaler l'événement span. Les options de configuration incluent :
Ce paramètre peut être utilisé pour activer ou désactiver tous les attributs d'un événement SPAN. Si attributes.enabled au niveau racine est false, aucun attribut ne sera envoyé à l'événement span, quelle que soit la manière dont ce paramètre configuration (span_events.attributes.enabled) est défini. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Si les attributs sont activés pour l'événement SPAN, toutes les clés d'attribut trouvées dans cette liste seront envoyées dans l'événement SPAN. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Toutes les clés d'attribut trouvées dans cette liste ne seront pas envoyées dans l'événement span. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Configuration de récolte d'événement
Les paramètres de récolte d'événements limitent la quantité de données de type d'événement envoyées à New Relic. Lorsque vous utilisez ces paramètres, tenez compte de ces points importants :
Les paramètres de récolte d'événements affectent les limites d'une seule instance de l' agent, et non de l'ensemble application. Consultez l’exemple d’utilisation ci-dessous pour savoir comment définir des limites pour l’ensemble d’une application.
Le streaming temps réel envoie des données toutes les cinq secondes (12 fois par minute), mais les paramètres de récolte d'événements affectent toujours le débit en événement par minute. L'activation ou la désactivation de la diffusion en temps réel ne nécessite pas de modifier ces paramètres.
Avec le streaming en temps réel (activé par défaut), New Relic affichera les limites de récolte d'événements pour l'entité par intervalles de cinq secondes. Cela signifie, par exemple, que lorsque vous définissez une valeur limite de 1 200 dans le fichier de configuration, vous la verrez comme 100 dans New Relic.
Exemple d'utilisation
Disons qu'une application est déployée sur 10 hôtes, chacun exécutant quatre processus par hôte. Pour limiter le nombre d'événements SPAN à 10 000 événements par minute pour l'ensemble application, divisez ce nombre par 10 hôtes. Divisez ensuite à nouveau par quatre processus par hôte.
En raison de la manière dont New Relic collecte les données (12 fois par minute), si le nombre de données d'événement est inférieur à 12, il s'affichera comme 0 dans New Relic.
Les paramètres configuration de la récolte d'événements incluent :
Limite le nombre d'événements personnalisés par minute qu'une instance de l'agent Python peut envoyer à New Relic.
Lors de la configuration de l' agent pour monitoring de l'IA, définissez la valeur maximale sur 100000 pour garantir que l' agent capture la quantité maximale d'événements LLM.
Limite des événements de spans par minute envoyés par une instance de l'agent Python à New Relic.
Lors de la configuration de l' agent pour monitoring de l'IA, définissez la valeur maximale sur 10000 pour garantir que l' agent capture la quantité maximale de traces distribuées.
La visibilité de la boucle d'événement fait apparaître des informations sur les transactions qui bloquent la boucle d'événement. L' agent générera des informations sur les transactions qui ont attendu un temps significatif pour acquérir le contrôle de la boucle d'événements. Les paramètres incluent :
L' agent signale les métriques du nombre d'objets pour les types d'objets les plus courants collectés par le récupérateur de mémoire. Pour chaque type d'objet, ce paramètre vous permet de définir le nombre maximal de métriques individuelles qui seront échantillonnées.
Paramètres des métriques au niveau du code
Les paramètres suivants sont disponibles pour la configuration des métriques au niveau du code dans l'agent.
Une tag de sortie (telle que v0.1.209 ou sortie-209).
Erreurs configuration de la boîte de réception
La définition de l’une des balises suivantes vous aidera à identifier les versions de votre logiciel qui génèrent les erreurs.
NEW_RELIC_METADATA_SERVICE_VERSION créera tag.service.version sur les données d'événement contenant la version de votre code qui est déployée, dans de nombreux cas une version sémantique telle que 1.2.3, mais pas toujours.
NEW_RELIC_METADATA_RELEASE_TAG créera tag.releaseTag sur les données d'événement contenant la tag de sortie (comme v0.1.209 ou sortie-209).
NEW_RELIC_METADATA_COMMIT créera tag.commit sur les données d'événement contenant le commit sha. Le SHA entier peut être utilisé ou seulement les sept premiers caractères (par exemple, 734713b).
Une prochaine version de la boîte de réception des erreurs suivra automatiquement les versions de votre logiciel qui génèrent des erreurs. Toutes les données de version seront également affichées dans CodeStream.
Paramètres de logging des applications
Les paramètres suivants sont disponibles pour configuration de logging application dans l' agent.
Si true, active la décoration log et la collecte des événements de log et des métriques de logging si ces sous-fonctionnalités de configuration sont également activées. Si false, aucune fonctionnalité d’instrumentation de logging n’est activée.
Si true, l'agent capture les enregistrements log émis par votre application et les transmet à New Relic. application_logging.enabled doit également être true pour que ce paramètre prenne effet.
Si vous envoyez déjà le log de votre application à New Relic à l'aide d'une solution de transfert de logexistante, assurez-vous de la désactiver avant d'activer le transfert de logdans l'agent, afin d'éviter d'être facturé pour les données log en double.
Un hacher avec des paires valeur clé à ajouter comme attribut personnalisé à tout événement de log transmis à New Relic. La valeur doit être formatée comme suit : « clé1 : valeur1 ; clé2 : valeur2 »
Une liste insensible à la casse des noms d'étiquettes à exclure lorsque vous activez l'inclusion d'étiquettes dans le log. Cet attribut ne prend pas en charge les caractères génériques ni les expressions régulières.
Important
Lors de l'ajout d'étiquettes en tant qu'attribut, l' agent préfixe les clés avec tags.. Ce préfixe n'est PAS inclus lors de la correspondance avec les règles de filtrage d'exclusion.
Si true, l' agent capturera les données de contexte disponibles (extras, attribut de message de dictionnaire, attribut fourni par le framework de logging) et ajoutera son contenu en tant qu'attribut sur le log transmis à New Relic. Vous pouvez contrôler ce comportement via les paramètres de la section application_logging.forwarding.context_data .
Si les attributs sont activés pour context_data, toutes les clés d'attribut trouvées dans cette liste nous seront envoyées dans le suivi de la transaction. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Important
Lors de l'ajout d'un attribut de contexte, l' agent préfixe les clés avec context. pour l'attribut du contexte framework de logging et message. pour l'attribut d'un contexte de message de dictionnaire.
Ces préfixes ne sont PAS inclus lors de la correspondance avec les règles de filtrage d'inclusion/exclusion.
Toutes les clés d’attribut trouvées dans cette liste ne seront pas envoyées dans context_data. Pour plus d'informations, consultez les règles d'attribut de l'agent.
Important
Lors de l'ajout d'un attribut de contexte, l' agent préfixe les clés avec context. pour l'attribut du contexte framework de logging et message. pour l'attribut d'un contexte de message de dictionnaire.
Ces préfixes ne sont PAS inclus lors de la correspondance avec les règles de filtrage d'inclusion/exclusion.
Nombre d'enregistrements log à envoyer par minute à New Relic. Ce paramètre contrôle la consommation globale de mémoire lors de l'utilisation de la fonctionnalité de transfert de log .
Définissez cette valeur sur une valeur inférieure pour réduire la quantité de lignes log envoyées (peut provoquer un échantillonnage log ). Définissez cette valeur sur une valeur plus élevée pour envoyer plus de lignes log .
Chaque log reçoit la même priorité que sa transaction associée. Les logs qui se produisent en dehors d'une transaction recevront une priorité aléatoire. Certains logs peuvent ne pas être inclus car ils sont limités par max_samples_stored. Par exemple, si le logging max_samples_stored est définie sur 10 000 et que la transaction 1 comporte 10 000 entrées log, seules les entrées log de la transaction 1 seront enregistrées. Si la transaction 1 contient moins de 10 000 logs, vous recevez tous les logs de la transaction 1. S'il reste de la place, vous recevez l'intégralité du log de la transaction 2, et ainsi de suite.
Si après tout le log des transactions échantillonnées est enregistré et qu'elles n'ont pas atteint la limite de max_samples_stored, alors les messages de log des transactions qui n'étaient pas dans notre échantillonnage sont envoyés. S'il en reste, les messages de log en dehors des transactions sont enregistrés.
Si true, l'agent capture les métriques liées aux lignes log envoyées par votre application. application_logging.enabled doit également être true pour que ce paramètre prenne effet.
Si true, l' agent décore le log avec des métadonnées pour créer un lien vers l'entité, les hôtes, la trace et les spans. application_logging.enabled doit également être true pour que ce paramètre prenne effet.
Voici divers autres paramètres disponibles via le fichier de configuration de l'agent.
Type
Booléen
Défaut
true
Si true, l’agent détecte automatiquement qu’il s’exécute dans un environnement AWS.
Type
Chaîne
Défaut
None
Si cette option est définie, l' agent utilise cet AWS account_id pour lier l'entité AWS lorsqu'un ID de compte ne peut pas être déterminé automatiquement par l' instrumentation. Consultez la documentation relative à l'identifiant de compteAWS Manage pour obtenir un exemple d'ID de compte AWS valide et savoir comment le trouver.
Type
Booléen
Défaut
true
Si true, l’agent détecte automatiquement qu’il s’exécute dans un environnement Azure.
Type
Booléen
Défaut
true
Si true, l'agent détecte automatiquement qu'il s'exécute dans un environnement Google Cloud Platform.
Type
Booléen
Défaut
true
Si true, l'agent détecte automatiquement qu'il s'exécute dans un environnement Pivotal Cloud Foundry.
Type
Booléen
Défaut
true
Si true, l’agent détecte automatiquement qu’il s’exécute dans Docker.
Vous permet de planifier des sessions de profilage de thread. Le profileur de thread capturera périodiquement un instantané de la stack d'appels pour chaque thread actif dans l' application afin de construire un arbre d'appels statistiquement représentatif.
Si cette option est activée, les messages d'exception seront supprimés de la trace d'erreur avant d'être envoyés au collecteur, afin d'éviter la capture accidentelle d'informations sensibles. Cette option est automatiquement activée en mode haute sécurité.
Les exceptions répertoriées dans votre liste de domaines autorisés ne verront pas leurs messages supprimés, même si strip_exception_messages.enabled est true. La liste des domaines autorisés est une chaîne de types d'exceptions séparés par des espaces, chacun sous la forme de module:exception_name. Répertoriez les exceptions intégrées comme exception_name; vous n'avez pas besoin de les précéder de module: .
Example: Built-in exception and user-defined exception
Par défaut, l'agent démarre lorsqu'il reçoit la première transaction (Web ou non Web). L'agent démarre ensuite en parallèle, garantissant que cette demande initiale ne soit pas retardée. Cependant, l' agent n'enregistre pas les détails de cette demande initiale car agent ne peut pas collecter de données tant que l'enregistrement n'est pas terminé. Il s'agit de la configuration recommandée pour la majorité des applications Web afin de ne pas retarder les premières transactions lors du démarrage New Relic .
Pour contourner ce problème, vous pouvez définir un délai de démarrage en secondes. L'agent mettra ensuite en pause la transaction initiale et attendra que l'enregistrement soit terminé. Cela peut être utile lorsqu'il s'agit d'exécuter un programme ou une tâche unique, où le processus s'exécute une fois et se termine immédiatement.
Important
Étant donné que startup_timeout retarde le démarrage de votre application, nous vous recommandons de définir un délai de démarrage uniquement pour la mise en file d'attente des tâches en arrière-plan du système, et non pour l'application Web.
Lors de l'arrêt du processus, l'agent tente un dernier téléchargement vers le collecteur. Pour éviter que l'agent ne s'exécute indéfiniment en cas de problème, le processus s'arrête normalement si le seuil shutdown_timeout est atteint. Cet arrêt peut entraîner une perte de données, mais l' agent donne la priorité aux données métriques clés pendant le processus de téléchargement.
Pour les systèmes de mise en file d'attente des tâches en arrière-plan, en particulier ceux qui exécutent un petit nombre de tâches par processus, vous souhaiterez peut-être augmenter le délai d'arrêt pour garantir que l' agent peut télécharger toutes les données lors de l'arrêt du processus.
Conseil
L'agent utilise par défaut un délai d'expiration de 2,5 secondes, car Apache et de nombreux autres serveurs Web ont un délai d'expiration de processus de 3,0 secondes. L'agent quitte au bout de 2,5 secondes pour permettre l'exécution du code de nettoyage atexit enregistré pour le processus.
Si le seuil de compression des données est atteint dans la charge utile, l'agent compresse les données, en utilisant la compression gzip par défaut. L'option de configuration compression_content_encoding peut être définie sur deflate pour utiliser la compression dégonflée.
Si ce paramètre est activé, il capturera les informations de package et de version au démarrage de l'agent qui s'affichent dans l'onglet d'environnement APM.
Conseil
Dans les applications comportant un grand nombre de packages, l'activation de ce paramètre peut entraîner un pic de consommation de processeur, car il capture toutes les informations sur le package et la version. Il est recommandé dans ces cas de désactiver ce paramètre.
Prudence
La désactivation de ce paramètre désactivera la possibilité de détecter les vulnérabilités dans les packages obsolètes.
Si ce paramètre est activé, l' agent enverra des messages de dépannage détaillés à partir de son script de démarrage directement vers votre console (STDOUT). Cela peut être utile pour déboguer les plantages dans le script de démarrage newrelic-admin, le script de démarrage alternatif bootstrap/sitecustomize.py ou la séquence de démarrage de l'attachement automatique de Kubernetes APM.
Prudence
Ce paramètre de variable d'environnement n'a pas de paramètre de fichier de configuration correspondant, car le code qui lui est associé s'exécute avant la lecture du fichier de configuration. Pour un logging de débogage complète après le démarrage de l' agent, définissez le niveau de log sur debug.
Il s’agit d’un paramètre informatif utilisé pour signaler quand l’agent est injecté dans une application de conteneur Microsoft Azure.
Prudence
Ce paramètre n'active ni ne désactive cette fonction de l'agent.
Heroku
Type
Booléen
Défaut
true
Variable d'environnement
NEW_RELIC_HEROKU_USE_DYNO_NAMES
Si true, l' agent utilise les noms dyno Heroku comme nom d'hôte.
Type
Array
Défaut
["scheduler", "run"]
Variable d'environnement
NEW_RELIC_HEROKU_DYNO_NAME_PREFIXES_TO_SHORTEN
En règle générale, l'agent signale les noms des dynamomètres avec un point de fin et un ID de processus (par exemple, worker.3). Vous pouvez supprimer ces données de fin en spécifiant les préfixes que vous souhaitez signaler sans données de fin (par exemple, worker).
Instrumentation intégrée
L'agent Python instrumente une gamme de Python packages/modules . Cette instrumentation se produit uniquement lorsque le package/module Python cible est importé par une application.
Pour désactiver l'instrumentation par défaut, fournissez une section import-hook spéciale correspondant au nom du module qui a déclenché l'instrumentation. Réglez ensuite le paramètre enabled sur false pour désactiver l’instrumentation de ce module.
Ajoutez ce qui suit au fichier de configuration .ini :
[import-hook:MySQLdb]
enabled=false
Ou pour .toml fichiers de configuration, ajoutez ce qui suit :