• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

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.

Créer un problème

Python agent et Heroku

Heroku est une solution de plateforme en tant que service (PaaS) pour l'hébergement d'applications Web dans divers langages agent, dont Python. Avec l'agent, vous pouvez étendre Heroku avec des métriques de New Relic.

Ce document décrit les considérations particulières relatives à l'utilisation d'Heroku comme service d'hébergement avec l'agent Python.

Installer le module complémentaire New Relic

Après avoir déployé votre Python application sur Heroku, installez l'agent Python :

L'installation du module complémentaire crée automatiquement un compte New Relic privé et configure l'accès pour les hôtes Heroku. L' agent commencera monitoring les performances des application, l'expérience finale de l'utilisateur et les performances de l'hôte collectées après l'installation du module complémentaire. Dans quelques minutes, les données devraient commencer à apparaître sur votre page de résumé APM.

Mise à niveau à partir d'une installation d'agent existante

Si un agent est déjà installé, réinstallez le module complémentaire à l'aide de la commande Heroku toolbelt.

bash
$
heroku config:set NEW_RELIC_APP_NAME='Your Application Name'

Installer l'agent Python

Pour installer un package Python tiers tel que notre agent Python sur Heroku, utilisez pip. Heroku recherche automatiquement un fichier requirements.txt dans le répertoire racine de votre projet. Il installe tout ce qui est répertorié dans ce fichier lorsque vous envoyez votre projet vers Heroku.

  1. Créez ou modifiez le fichier requirements.txt en ajoutant la ligne :

    newrelic
  2. Django users: Modifiez l'entrée web de votre Procfile, en préfixant la valeur avec newrelic-admin run-program. Par exemple:

    web: newrelic-admin run-program gunicorn mysite.wsgi
  3. Envoyez votre projet sur Heroku.

Cela installera le Python agent package avec la dernière version répertoriée dans Python l'index du package (PyPi).

Mettre à jour l'agent Python

Heroku met en cache le package et ne détecte pas quand une version plus récente de l'agent Python est disponible. Pour forcer une mise à niveau :

  1. Modifiez le fichier requirements.txt en incluant la version spécifique de l'agent Python (n.n.n.n) avec le nom du package :

    newrelic==n.n.n.n
  2. Envoyez votre projet sur Heroku.

Vérifiez le module complémentaire New Relic

Pour vérifier que le module complémentaire New Relic a été activé, exécutez :

bash
$
heroku run env | grep NEW_RELIC

Cela génère une liste de variables d'environnement spécifiques à New Relic dans Heroku. L'agent Python les utilise pour déterminer quel compte New Relic et quelles données d'application utiliser pour générer des rapports de données.

Au minimum, vous devriez voir :

NEW_RELIC_LOG=stdout
NEW_RELIC_LICENSE_KEY=****************************************
NEW_RELIC_APP_NAME=Your app name

Le est unique à votre compte New Relic.

Dépannez votre installation

Quelques minutes après l'installation et la configuration de l'agent, les données devraient commencer à apparaître sur la page de résumé APM de votre application. Si aucune donnée n'apparaît, testez que les variables d'environnement sont correctement détectées en exécutant :

bash
$
heroku run newrelic-admin validate-config - stdout

Cela créera une connexion et signalera les données de transaction de test sous l'application Python Agent Test. Capturez le résultat de l’exécution du test et utilisez les données pour résoudre le problème. Si vous avez besoin d’assistance supplémentaire, suivez les procédures de dépannage de l’agent Python.

Initialiser l'agent Python

Pour initialiser l’agent Python :

  1. Depuis la racine de votre projet, recherchez le Procfile
  2. Modifiez l'entrée web dans votre Procfile pour définir ce qu'il faut faire pour démarrer votre application Web Python.
  3. Reportez-vous aux exemples suivants pour insérer newrelic-admin run-program au début de la commande.
  4. Exécutez votre application Web Python sous le contrôle du script d’administration de l’agent Python.

Mécanisme d'hébergement

Exemple d'entrée Web

Flask avec l'hôte de développement intégré

web: newrelic-admin run-program python hello.py

Flask avec du gunicorn

web: newrelic-admin run-program gunicorn -b "0.0.0.0:$PORT" -w 3 hello:app

Django avec gunicorn répertorié dans INSTALLED_APPS

web: newrelic-admin run-program python hellodjango/manage.py run_gunicorn -b "0.0.0.0:$PORT" -w 3

Prudence

Évitez d’utiliser les hôtes de développement intégrés de tout framework Web antérieur à la version 2.7.4 de Python ou antérieur à Django 1.4. Utilisez plutôt gunicorn ou uWSGI.

L'hôte WSGI utilisant le module wsgiref n'était pas entièrement compatible WSGI pour les hôtes de développement antérieurs à la version 2.7.4 de Python. Cela a empêché l'agent Python de pouvoir signaler des données correctes.

Enveloppement d'application WSGI

L'agent fournit un encapsulage automatique du WSGI application point pour ces frameworks Web :

  • Bottle
  • Django
  • Flask

Si vous utilisez l’un de ces frameworks Web Python, aucune étape supplémentaire n’est requise.

Pour d’autres, vous devez modifier le fichier de code Python avec votre point d’entrée d’application WSGI pour encapsuler l’objet d’application WSGI avec un wrapper d’application WSGI. Cela lancera le chronométrage des requests Web reçues par votre application.

Si le point d'entrée est celui-ci...

Fais ceci...

Le point d'entrée est une fonction

Enveloppez-le dans un décorateur :

import newrelic.agent
@newrelic.agent.wsgi_application()
def application(environ, start_response):
...

Le point d'entrée est une fonction ou un objet importé d'un autre module

Enveloppez-le dans le style décorateur pre :

import myapp
application = myapp.WSGIHandler()
application = newrelic.agent.WSGIApplicationWrapper(application)

Suivre les tâches de Celery

Pour enregistrer le temps d'exécution des tâches Celery en tant que tâches d'arrière-plan sur votre application Web, encapsulez le démarrage de l'hôte Celery avec la commande newrelic-admin .

Préfixez la commande de démarrage existante définie par l'entrée worker dans votre Procfile:

worker: newrelic-admin run-program python hellodjango/manage.py celeryd -E -B --loglevel=INFO

Déboguer l'agent Python

Pour commencer le débogage, collectez la log sortie de l'agent Python . Heroku envoie Python agent la sortie à la sortie standard et la capture dans le du serveur log Web.

Pour accéder au log du serveur Web pour Heroku, exécutez :

bash
$
heroku logs

Par défaut,Python agent log info l' se au niveau. Si le support New Relic requests un niveau de logging alternatif, vous devez ajouter manuellement une variable de configuration. Par exemple, pour définir la sortie de logging sur debug, exécutez :

bash
$
heroku config:add NEW_RELIC_LOG_LEVEL=debug

Votre application redémarre automatiquement lorsque vous modifiez le niveau de log.

Prudence

Le niveau de log debug produit de grandes quantités de sortie. Assurez-vous de supprimer ce paramètre dès qu'il n'est plus nécessaire, en exécutant :

bash
$
heroku config:remove NEW_RELIC_LOG_LEVEL

Modifier le fichier de configuration de l'agent

Lorsque vous utilisez le module complémentaire d'Heroku avec New Relic, cela définit automatiquement les variables d'environnement clés pour l'agent Python. Vous pouvez également personnaliser des paramètres supplémentaires avec le fichier de configuration de l'agent ou utiliser la configuration côté serveur.

N'ajoutez pas de paramètres de base tels que la clé de licence, le nom de l'application, etc. au fichier de configuration. Heroku ajoute automatiquement ces paramètres.

Pour personnaliser d’autres paramètres, utilisez le fichier de configuration de l’agent Python avec Heroku :

  1. Ajoutez le fichier de configuration de l'agent newrelic.ini au répertoire racine de votre référentiel de projet que vous transmettez à Heroku : Dans la section [newrelic], incluez le paramètre de configuration spécifique ; par exemple :

    [newrelic]
    transaction_tracer.function_trace = mydbm:connect
  2. Validez le fichier de configuration dans votre référentiel et transmettez la modification à Heroku.

  3. Utilisez la commande heroku config:add pour définir la variable d'environnement NEW_RELIC_CONFIG_FILE pour votre application déployée :

    bash
    $
    heroku config:add NEW_RELIC_CONFIG_FILE=newrelic.ini

Si vous utilisez le programme wrapper newrelic-admin pour lancer votre hôte WSGI, les paramètres de votre clé de licence, du nom de application, etc., seront récupérés à partir des variables d'environnement définies par Heroku. Tous les paramètres supplémentaires que vous définissez dans le fichier de configuration de l'agent seront également appliqués. Ensuite, lorsque l’agent s’enregistre auprès de New Relic, toute configuration côté serveur sera également fusionnée pour créer la configuration finale que l’agent utilisera.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.