Le script d'administration de l'agent Python est utilisé pendant le processus d'installation. Lorsque le package de l'agent Python est installé, le script newrelic-admin
est également installé dans le répertoire bin
de l'installation Python ou de l'environnement virtuel.
Ce document donne des détails plus approfondis sur ces utilisations du script d'administration :
- Génération du fichier de configuration initial de l'agent
- Valider votre fichier de configuration
- Test de la connexion Ă New Relic
- Envelopper le démarrage d'une application Web Python autonome
Structure de sous-commande
Pour exécuter des sous-commandes, fournissez le nom de la sous-commande comme premier argument du script newrelic-admin
. Ajoutez ensuite toutes les options aprĂšs le nom de la sous-commande. Par exemple:
$newrelic-admin help
help <command>
Lorsqu'il est exécuté sans autre argument, cela fournit une liste de toutes les sous-commandes acceptées :
$newrelic-admin help Usage: newrelic-admin command [options] Type 'newrelic-admin help <command>'for help on a specific command. Available commands are: generate-config license-key local-config network-config record-deploy run-program run-python server-config validate-config
Pour afficher des dĂ©tails supplĂ©mentaires sur une sous-commande, exĂ©cutez la commande help avec la sous-commande et lâune de ses options. Par exemple:
$newrelic-admin help generate-config Usage: newrelic-admin generate-config license_key [output_file] Generates a sample agent configuration file for <license_key>.
generate-config license_key [output_file]
GénÚre un exemple de fichier de configuration d'agent. L'option license_key
est votre .
Par défaut, le fichier de configuration d'exemple sera dirigé vers la sortie standard et sera affiché sur votre écran. Pour capturer la sortie, vous pouvez plutÎt l'enregistrer dans un fichier en donnant le nom du fichier comme option output_file
.
Lorsque le fichier de configuration de l'agent d'échantillon est généré, seule l'option de clé de licence dans le fichier est mise à jour. Vous devez toujours modifier le fichier et apporter des modifications aux options app_name
et log_file
selon le cas. Pour plus d'informations, voir Installation de l'agent Python.
Si vous ne pouvez pas exécuter la commande generate-config
pour produire le fichier de configuration initial de l'agent, vous pouvez télécharger un exemple de fichier de configuration à partir de download.newrelic.com/python_agent/release/newrelic.ini.
validate-config config_file [log_file]
Valide la syntaxe d'un fichier de configuration d'agent donné par l'option config_file
.
Il peut s'agir de la configuration de l'agent générée par generate-config
et modifiée ultérieurement, ou d'un fichier de configuration de l'agent créé en téléchargeant l'exemple de fichier de configuration à partir du site de téléchargement.
En plus de valider la syntaxe du fichier de configuration, l'utilisation du license_key
contenu dans le fichier de configuration de l'agent pour identifier votre compte testera Ă©galement si une connexion peut ĂȘtre Ă©tablie avec nos serveurs.
Cette sous-commande peut donc ĂȘtre utilisĂ©e pour s'assurer que le DNS est disponible pour rĂ©soudre le nom d'hĂŽte de notre hĂŽte collecteur de donnĂ©es et qu'il y a une connectivitĂ© rĂ©seau disponible et qu'aucun pare-feu ne bloque l'accĂšs.
En vous connectant à nos serveurs, le test créera une application sous votre compte appelée Python Agent Test
. Dans cette application, une petite quantitĂ© de donnĂ©es de transaction Web simulĂ©es et d'erreurs seront signalĂ©es. AprĂšs un certain temps, cette application de votre compte pourra ĂȘtre supprimĂ©e de la liste Applications si vous le souhaitez.
Lorsque ce test est exécuté, un fichier de log sera créé à l'emplacement :
/tmp/python-agent-test.log
Si vous devez remplacer cet emplacement, vous pouvez fournir l'option log_file
. Pour que ce qui serait écrit dans le fichier de log soit affiché sur votre écran, vous pouvez utiliser stdout
ou stderr
comme valeur passée comme option log_file
.
Lorsque vous utilisez un service d'hĂ©bergement tel que Heroku oĂč un fichier de configuration d'agent ne serait normalement pas utilisĂ©, cette sous-commande peut toujours ĂȘtre utilisĂ©e pour tester la connexion avec nous. Pour Heroku, les informations de clĂ© de licence sont dĂ©finies dans une variable d'environnement configurĂ©e automatiquement par Heroku lorsque vous ajoutez le module complĂ©mentaire New Relic Ă votre instance Heroku.
Dans ce cas oĂč une variable d'environnement est utilisĂ©e pour dĂ©finir la clĂ© de licence, pour exĂ©cuter le test de connectivitĂ©, transmettez la valeur -
pour l'option config_file
à la place du chemin d'accÚs au fichier de configuration de l'agent. Donc, pour exécuter la commande sur votre instance Heroku, vous utiliseriez :
$heroku run newrelic-admin validate-config - stdout
Notez que nous avons fourni stdout
pour le fichier de log dans ce cas, sinon il serait nécessaire de récupérer séparément le fichier de log généré.
Il est recommandĂ©, lors de la configuration de l'agent Python pour la premiĂšre fois, ou mĂȘme peut-ĂȘtre sur un nouvel hĂŽte, d'utiliser cette sous-commande pour tester si les donnĂ©es peuvent ĂȘtre signalĂ©es correctement. Pour plus dâinformations, voir Test de lâagent Python.
run-program ...
Exécute la ligne de commande pour une application Web Python donnée comme ...
mais force l'initialisation de l'agent automatiquement au démarrage.
Il s'agit d'une mĂ©thode de raccourci permettant de dĂ©marrer une application Web Python sans avoir Ă apporter manuellement des modifications Ă l'application Web pour ajouter du code permettant d'initialiser spĂ©cifiquement l'agent Python. Il peut ĂȘtre utilisĂ© dans n'importe quelle situation oĂč un framework Web Python ou un serveur WSGI est utilisĂ© oĂč l'instrumentation est automatiquement ajoutĂ©e pour encapsuler le point d'entrĂ©e de l'application WSGI. En dâautres termes, dans les situations oĂč seul le code dâinitialisation de lâagent devait ĂȘtre ajoutĂ©.
La configuration de l'agent lors de l'utilisation de cette mĂ©thode peut ĂȘtre fournie de deux maniĂšres diffĂ©rentes. Si vous utilisez un fichier de configuration d'agent complet, l'emplacement de cette configuration peut ĂȘtre fourni par la variable d'environnement NEW_RELIC_CONFIG_FILE
.
Si vous utilisiez gunicorn par exemple, vous pourriez dire :
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn wsgi:application
OU
$NEW_RELIC_CONFIG_FILE=newrelic.ini$export NEW_RELIC_CONFIG_FILE$
$newrelic-admin run-program gunicorn wsgi:application
Lors de la spécification de l'emplacement du fichier de configuration à l'aide de la variable d'environnement NEW_RELIC_CONFIG_FILE
, les variables d'environnement supplĂ©mentaires suivantes peuvent ĂȘtre dĂ©finies pour personnaliser la maniĂšre dont le fichier de configuration est traitĂ©.
NEW_RELIC_ENVIRONMENT
:Le nom d'un environnement de dĂ©ploiement spĂ©cifique. Si cela est spĂ©cifiĂ©, la configuration de remplacement supplĂ©mentaire sera lue Ă partir d'une section de dĂ©ploiement distincte dans le fichier de configuration. La section du fichier de configuration pour un environnement de dĂ©ploiement spĂ©cifique doit ĂȘtre nommĂ©e newrelic:environment
oĂč environment
est remplacé par le nom spécifié par cette variable d'environnement
Au lieu d'un fichier de configuration d'agent complet, vous pouvez Ă©galement dĂ©finir des variables d'environnement fournissant uniquement les informations clĂ©s de configuration de l'agent. Les variables d'environnement qui peuvent ĂȘtre dĂ©finies dans ce cas sont :
NEW_RELIC_LICENSE_KEY
- Votre New Relic .NEW_RELIC_APP_NAME
- Le nom de l' application pour laquelle vous souhaitez signaler des données dans l' UI. Si non défini, la valeur par défaut estPython Application
.NEW_RELIC_LOG
- Le chemin vers un fichier Ă utiliser pour le agent log. Si ce paramĂštre n'est pas dĂ©fini, aucun logging n'aura lieu. Peut Ă©galement ĂȘtre dĂ©fini surstdout
oustderr
pour que le logging soit envoyé vers la sortie standard ou l'erreur standard pour le processus.NEW_RELIC_LOG_LEVEL
- Le niveau auquel le logging sera généré par l'agent. Si non défini, la valeur par défaut estinfo
. Les valeurs possibles, par ordre croissant de détail, sont :critical
,error
,warning
,info
etdebug
.
Des variables d'environnement individuelles sont utilisées lors de l'hébergement de votre application sur Heroku. Les variables d'environnement seront définies automatiquement comme approprié par l'environnement Heroku lorsque vous ajoutez le module complémentaire New Relic. Il n'est donc pas nécessaire lors de l'utilisation d'Heroku de définir l'une des variables d'environnement ci-dessus lors de l'utilisation de la commande newrelic-admin
avec cette option depuis votre Procfile.
Notez que le programme encapsulĂ© doit utiliser la mĂȘme installation Python ou le mĂȘme environnement virtuel que celui dans lequel le package de l'agent Python et le script newrelic-admin
ont Ă©tĂ© installĂ©s. Si ce n'est pas le cas, le script wrapper n'aura aucun effet et vous risquez mĂȘme de rencontrer une erreur au dĂ©marrage de l'interprĂ©teur Python en raison de l'impossibilitĂ© de trouver le package Python newrelic
.
Si vous utilisez sudo
pour dĂ©marrer votre application WSGI en tant qu'autre utilisateur, sachez que la configuration par dĂ©faut de sudo sera gĂ©nĂ©ralement telle que les variables d'environnement utilisateur du shell dans lequel sudo est exĂ©cutĂ© seront ignorĂ©es. Dans ce cas, vous devrez modifier la configuration sudoers pour permettre le passage des variables d'environnement spĂ©cifiques. Vous pouvez Ă©galement crĂ©er un script shell qui dĂ©finit les variables dâenvironnement et exĂ©cute votre application WSGI sous newrelic-admin
. Pour démarrer votre application WSGI en tant qu'utilisateur différent, exécutez sudo sur ce script plutÎt que directement sur votre application WSGI.
L'utilisation d'un script wrapper supplémentaire pour définir les variables d'environnement et exécuter votre application WSGI sous newrelic-admin
peut Ă©galement ĂȘtre requise lors de l'utilisation de supervisord si des problĂšmes surviennent avec les paramĂštres des variables d'environnement dans la configuration supervisord qui ne sont pas transmis correctement.
run-python ...
Exécute l'exécutable python
Ă partir de l'installation Python ou de l'environnement virtuel dans lequel newrelic-admin
est installé avec les arguments donnés comme ...
mais force l'initialisation de l'agent automatiquement au démarrage.
Il s'agit d'une mĂ©thode de raccourci permettant de dĂ©marrer une application Web Python sans avoir Ă apporter manuellement des modifications Ă l'application Web pour ajouter du code permettant d'initialiser spĂ©cifiquement l'agent Python. Il peut ĂȘtre utilisĂ© dans n'importe quelle situation oĂč un framework Web Python ou un serveur WSGI est utilisĂ© oĂč l'instrumentation est automatiquement ajoutĂ©e pour encapsuler le point d'entrĂ©e de l'application WSGI. En dâautres termes, dans les situations oĂč seul le code dâinitialisation de lâagent devait ĂȘtre ajoutĂ©.
Comme pour la sous-commande run-program
ci-dessus, les variables dâenvironnement sont utilisĂ©es pour configurer lâagent Python. Si vous utilisiez directement l'exĂ©cutable python
par exemple, vous pourriez dire :
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-python wsgi.py
OU
$NEW_RELIC_CONFIG_FILE=newrelic.ini $export NEW_RELIC_CONFIG_FILE $
$newrelic-admin run-python wsgi.py
license-key config_file [log_file]
Affiche la clĂ© de licence qui sera utilisĂ©e. Cela peut ĂȘtre utilisĂ© dans n'importe quel script de dĂ©marrage avant le dĂ©marrage WSGI application de log l' rĂ©elle pour la clĂ© de licence dans le but de vĂ©rifier que la valeur correcte est utilisĂ©e.
Il peut ĂȘtre utilisĂ© avec le fichier de configuration de l'agent :
$newrelic-admin license-key newrelic.ini
OU
Si vous définissez la clé de licence à l'aide de variables d'environnement, utilisez -
comme nom du fichier de configuration :
$NEW_RELIC_LICENSE_KEY='YOUR-LICENSE-KEY'$export NEW_RELIC_LICENSE_KEY $
$newrelic-admin license-key -
La sortie sera sous la forme :
license_key = 'YOUR-LICENSE-KEY'
Si aucune clé de licence n'a été trouvée dans le fichier de configuration de l'agent ou récupérée à partir des variables d'environnement utilisateur, la sortie sera :
license_key = None
network-config config_file [log_file]
Affiche la configuration rĂ©seau qui sera utilisĂ©e. Cela peut ĂȘtre utilisĂ© dans n'importe quel script de dĂ©marrage avant le dĂ©marrage de l' rĂ©elle pour WSGI application la log du rĂ©seau configuration dans le but de vĂ©rifier que les valeurs correctes sont utilisĂ©es.
Il peut ĂȘtre utilisĂ© avec le fichier de configuration de l'agent :
$newrelic-admin network-config newrelic.ini
OU
Si vous définissez des informations de proxy à l'aide de variables d'environnement, utilisez -
comme nom du fichier de configuration :
$NEW_RELIC_PROXY_HOST=proxy.example.com$export NEW_RELIC_PROXY_HOST$
$NEW_RELIC_PROXY_PORT=8888$export NEW_RELIC_PROXY_PORT$
$newrelic-admin network-config -
La sortie sera sous la forme :
host = 'collector.newrelic.com'port = 0proxy_host = 'proxy.example.com'proxy_port = 8888proxy_user = Noneproxy_pass = Nonessl = True
Une valeur de 0
pour le port indique que le numéro de port, 80
ou 443
, sera automatiquement sélectionné selon qu'une connexion SSL est utilisée pour communiquer avec notre collecteur de données.
local-config config_file [log_file]
GĂ©nĂšre la configuration de l'agent local en fonction des valeurs par dĂ©faut intĂ©grĂ©es, des variables d'environnement et de tout fichier de configuration de l'agent. Ces informations peuvent ĂȘtre demandĂ©es par notre support technique lorsque vous essayez de dĂ©boguer des problĂšmes de dĂ©marrage de l'agent. Il peut ĂȘtre utilisĂ© avec le fichier de configuration de l'agent :
$newrelic-admin local-config newrelic.ini
OU
Si vous définissez des paramÚtres à l'aide de variables d'environnement, vous pouvez utiliser -
comme nom du fichier de configuration :
$newrelic-admin local-config -
server-config config_file [log_file]
GĂ©nĂšre la configuration complĂšte pour une application spĂ©cifique. Il s'agira de la configuration de l'agent local, remplacĂ©e par toute configuration cĂŽtĂ© serveur pour l'application spĂ©cifique. Ces informations peuvent ĂȘtre demandĂ©es par notre support technique lorsque vous essayez de dĂ©boguer des problĂšmes de dĂ©marrage de l'agent.
Il peut ĂȘtre utilisĂ© avec le fichier de configuration de l'agent :
$newrelic-admin server-config newrelic.ini
OU
Si vous modifiez des paramĂštres Ă l'aide de variables d'environnement, vous pouvez utiliser -
comme nom du fichier de configuration :
$newrelic-admin server-config -
Afin d'obtenir la configuration cÎté serveur, ce script forcera l'enregistrement de l'agent pour l'application spécifique définie par la configuration. Si cette application n'apparaßt pas déjà dans l'interface utilisateur d'APM, une entrée sera créée pour elle, mais aucune donnée métrique ne sera signalée à son sujet.
description du fichier de configuration record-déployer
Il New Relic API applications'agit d'un wrapper autour de l' REST pour enregistrer le déploiement de votre . Vous pouvez également enregistrer le déploiement directement via l' API REST.
Pour utiliser la commande :
Ajoutez votre clé API dans le fichier de configuration de l'agent (
newrelic.ini
) en ajoutant une ligne similaire Ă la suivante dans la section[newrelic]
 :api_key=substitute-your-api-key-hereAppelez la commande
newrelic-admin
depuis la ligne de commande. (Ne l'ajoutez pas à votre fichier de configuration.) en utilisant la structure de sous-commande suivante :bash$newrelic-admin record-deploy config_file description [revision changelog user]
Cette sous-commande a deux arguments obligatoires :
config_file
: Chemin vers le nom du fichier de configurationdescription
: Texte pour décrire ou identifier le déploiement ; par exemple, les commentaires de validation Git
Il existe également trois arguments facultatifs :
revision
: Identifie une révision spécifique en cours de déploiementchangelog
: Fournit un log détaillé des modifications apportéesuser
:Identifie la personne responsable du déploiement
Autres conseils avancés
Voici quelques instructions avancées pour exécuter le script d'administration :