Surveillons l'application Python avec l'APM de New Relic. Python dispose d'une grande variété de frameworks et d'un large éventail de méthodes de publication sur le Web, mais j'aimerais d'abord vous présenter comment lier les applications New Relic et Python de la manière la plus simple possible. Cette fois, nous allons vérifier le déroulement de l'intégration du code New Relic dans une application simple réalisée avec Flask et l'afficher sur l'écran de surveillance.
CentOS 7 Python 2.7.5(default) On suppose que vous avez un compte New Relic. Veuillez lire la CLÉ DE LICENCE selon le cas.
Officiel Suivez les étapes d'installation.
Un exemple de mon environnement. C'est un peu vieux, donc Cliquez ici pour la dernière version.
# wget https://download.newrelic.com/python_agent/release/newrelic-2.8.0.7.tar.gz
# tar xvzf newrelic-2.8.0.7.tar.gz
# cd newrelic-2.8.0.7
# python setup.py install
C'est plus facile si vous essayez. L'effort peut ne pas changer beaucoup ...
pip install newrelic
or
easy_install newrelic
Vous pouvez le configurer en exécutant la commande suivante à n'importe quel endroit. Il n'y a aucun problème si vous déplacez le fichier de configuration.
newrelic-admin generate-config LICENSE-KEY newrelic.ini
Modifiez le contenu du fichier config. J'ai changé le nom de l'application en "New Relic Hello!". Ce sera le nom de l'application sur l'écran New Relic. Je l'ai décommenté pour que le journal puisse être sorti. Seuls les points corrigés sont extraits ci-dessous.
app_name = New Relic Hello!
log_file = /tmp/newrelic-python-agent.log
Vérifiez si l'agent Python peut être exécuté avec la commande suivante.
newrelic-admin validate-config newrelic.ini
Après quelques secondes, vous verrez le nom «Python Agent Test» sur l'écran APM. Peu importe le nombre de fois que vous l'exécutez. Il peut être utilisé pour isoler le dépannage dans le processus futur.
# easy_install Flask
Une application qui affiche simplement New Relic Hello!.
# cat flask_hello.py
import newrelic.agent
newrelic.agent.initialize('/root/newrelic-2.8.0.7/newrelic.ini')
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "New Relic Hello!"
if __name__ == '__main__':
app.run(host='0.0.0.0')
#
Les deux premières lignes sont le code d'intégration de New Relic. Spécifie l'emplacement de newrelic.ini.
import newrelic.agent
newrelic.agent.initialize('/root/newrelic-2.8.0.7/newrelic.ini')
Ouvrez deux terminaux.
Procédez comme suit: "0.0.0.0" est une adresse IP spéciale qui représente cet hôte dans ce réseau. Si vous ne spécifiez pas le numéro de port dans le code, il passera à 5000 lors de l'exécution.
# python flask_hello.py
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Procédez comme suit: Vous pouvez spécifier l'adresse de votre propre serveur au lieu de 127.0.0.1.
# curl http://127.0.0.1:5000
New Relic Hello!
Vous pouvez utiliser la commande watch pour voir l'accès toutes les secondes.
watch -n 1 "curl http://127.0.0.1:5000"
S'il s'agit d'un environnement de développement, il peut être judicieux d'utiliser supevisor pour démoniser l'exécution de l'application. Ou fonctionnera-t-il avec Apache ou Nginx? C'est une question de consultation avec du temps et des efforts.
Il est venu avec "New Relic Hello!".
C'est une application qui affiche uniquement New Relic bonjour!, Mais vous pouvez voir que vous pouvez également voir le nom de la fonction et les informations WSGI.
c'est tout
Recommended Posts