Überwachen Sie Python-Apps mit dem APM (Flask) von New Relic.

Einführung

Lassen Sie uns die Python-App mit dem APM von New Relic überwachen. Python verfügt über eine Vielzahl von Frameworks und eine Vielzahl von Veröffentlichungsmethoden im Web. Zunächst möchte ich jedoch vorstellen, wie New Relic- und Python-Apps auf einfachste Weise verknüpft werden können. Dieses Mal werden wir den Ablauf der Einbettung des New Relic-Codes in eine einfache Anwendung mit Flask überprüfen und auf dem Überwachungsbildschirm anzeigen.

Umgebung

CentOS 7 Python 2.7.5(default) Es wird davon ausgegangen, dass Sie ein New Relic-Konto haben. Bitte lesen Sie gegebenenfalls den LIZENZSCHLÜSSEL.

Neues Relic APM-Setup

Python Agent installieren

Offiziell Befolgen Sie die Installationsschritte.

Ein Beispiel für meine Umgebung. Es ist ein bisschen alt, also Klicken Sie hier für die neueste 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

Dies ist einfacher, wenn Sie es einfach ausprobieren. Der Aufwand kann sich nicht viel ändern ...

pip install newrelic
or
easy_install newrelic

Generierung der Konfiguration (newrelic.ini)

Sie können es konfigurieren, indem Sie den folgenden Befehl an einem beliebigen Ort ausführen. Es ist kein Problem, wenn Sie die Konfigurationsdatei verschieben.

newrelic-admin generate-config LICENSE-KEY newrelic.ini

Ändern Sie die Konfiguration

Ändern Sie den Inhalt der Konfiguration. Ich habe den App-Namen in "New Relic Hello!" Geändert. Dies ist der App-Name auf dem New Relic-Bildschirm. Ich habe es auskommentiert, damit das Protokoll ausgegeben werden kann. Im Folgenden werden nur die korrigierten Punkte aufgeführt.

app_name = New Relic Hello!
log_file = /tmp/newrelic-python-agent.log

Funktionsprüfung von Python Agent

Überprüfen Sie, ob der Python-Agent mit dem folgenden Befehl ausgeführt werden kann.

newrelic-admin validate-config newrelic.ini

Nach einigen Sekunden wird auf dem APM-Bildschirm der Name "Python Agent Test" angezeigt. Es spielt keine Rolle, wie oft Sie es ausführen. Es kann verwendet werden, um die Fehlerbehebung im zukünftigen Prozess zu isolieren.

01.jpg

Kolbenaufbau

Installieren der Flasche (Referenz)

# easy_install Flask

App-Erstellung

Eine App, die nur 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')
#

Die beiden oberen Zeilen sind der Einbettungscode für New Relic. Gibt den Speicherort von newrelic.ini an.

import newrelic.agent
newrelic.agent.initialize('/root/newrelic-2.8.0.7/newrelic.ini')

Funktionsprüfung

Öffnen Sie zwei Klemmen.

Terminal 1

Mach Folgendes: "0.0.0.0" ist eine spezielle IP-Adresse, die diesen Host in diesem Netzwerk darstellt. Wenn Sie die Portnummer nicht im Code angeben, wird sie zur Laufzeit auf 5000 erhöht.

# python flask_hello.py
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Terminal 2

Mach Folgendes: Sie können die Adresse Ihres eigenen Servers anstelle von 127.0.0.1 angeben.

# curl http://127.0.0.1:5000
New Relic Hello!

Mit dem Befehl watch können Sie den Zugriff jede Sekunde anzeigen.

watch -n 1 "curl http://127.0.0.1:5000"

Wenn Sie sich in einer Entwicklungsumgebung befinden, möchten Sie möglicherweise versuchen, die Ausführung der Anwendung mit supevisor zu dämonisieren. Oder funktioniert es mit Apache oder Nginx? Es ist eine Frage der Beratung mit Zeit und Mühe.

Neuer Reliktbildschirm

Es kam mit "New Relic Hello!".

02.jpg

Es ist eine Anwendung, die nur New Relic Hallo anzeigt, aber Sie können sehen, dass Sie auch den Funktionsnamen und die WSGI-Informationen sehen können.

03.jpg

das ist alles

Recommended Posts

Überwachen Sie Python-Apps mit dem APM (Flask) von New Relic.
Überwachen Sie Python-Webanwendungen mit Prometheus
Programmieren mit Python Flask
Webanwendung mit Python + Flask ② ③
Webanwendung mit Python + Flask ④
Mit Flask erstellte SNS Python-Grundlagen
Überwachen Sie die Leistung von Python-Anwendungen mit Dynatrace ♪
Anwendungsentwicklung mit Docker + Python + Flask
POST verschieden mit Python und empfange mit Flask
Entwickeln Sie Windows-Apps mit Python 3 + Tkinter (Vorbereitung)
Einfache Web-App mit Python + Flask + Heroku
[Python] Erstellen Sie schnell eine API mit Flask
Flask kann mit Azure API Apps nicht RESTful sein
Gewinnen Sie die Python + Flask-Web-App mit Jenkins
Entwickeln Sie Windows-Apps mit Python 3 + Tkinter (exe-Datei)
[Verbesserte Version] Skript zur Überwachung der CPU mit Python
Starten Sie einen Webserver mit Python und Flask
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Flow, um die Slack-Authentifizierung mit Flask (Python) abzuschließen
Mattermost Bot mit Python gemacht (+ Flask)
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
In Python integrieren
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
Hochladen mit Heroku, Flask, Python, Git (Teil 1)
Ein Server, der POST-Daten mit flask / python wiedergibt
Hochladen mit Heroku, Flask, Python, Git (Teil 2)