Surveillez les applications Python avec l'APM de New Relic (Flask)

introduction

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.

environnement

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.

Nouvelle configuration APM Relic

Installation de l'agent Python

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

Génération Config (newrelic.ini)

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

Modifier la configuration

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érification du fonctionnement de l'agent Python

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.

01.jpg

Configuration du flacon

Installation de Flask (Référence)

# easy_install Flask

Création d'applications

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')

Contrôle de fonctionnement

Ouvrez deux terminaux.

Terminal 1

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)

Terminal 2

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.

Écran Nouvelle relique

Il est venu avec "New Relic Hello!".

02.jpg

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.

03.jpg

c'est tout

Recommended Posts

Surveillez les applications Python avec l'APM de New Relic (Flask)
Surveillez les applications Web Python avec Prometheus
Programmation avec Python Flask
Application Web avec Python + Flask ② ③
Application Web avec Python + Flask ④
Bases de SNS Python faites avec Flask
Surveillez les performances des applications Python avec Dynatrace ♪
Développement d'applications avec Docker + Python + Flask
POSTER diversement avec Python et recevoir avec Flask
Développer des applications Windows avec Python 3 + Tkinter (Préparation)
Application Web facile avec Python + Flask + Heroku
[Python] Créez rapidement une API avec Flask
Flask ne peut pas être RESTful avec les applications d'API Azure
Gagnez l'application Web Python + Flask avec Jenkins
Développer des applications Windows avec Python 3 + Tkinter (fichier exe)
[Version améliorée] Script pour surveiller le CPU avec Python
Lancer un serveur Web avec Python et Flask
Créer une nouvelle page en confluence avec Python
Exécutez Flask sur CentOS avec python3.4, Gunicorn + Nginx.
Flux pour terminer l'authentification Slack avec Flask (Python)
Made Mattermost Bot avec Python (+ Flask)
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Intégrer avec Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Créer un serveur local GIF animé avec Python + Flask
Analyser et visualiser JSON (application Web ⑤ avec Python + Flask)
Comment télécharger avec Heroku, Flask, Python, Git (Partie 1)
Un serveur qui fait écho aux données POSTées avec flask / python
Comment télécharger avec Heroku, Flask, Python, Git (Partie 2)