perfmetrics

Logiciel capture d'écran:
perfmetrics
Détails logiciels:
Version: 0.9.5
Date de transfert: 20 Feb 15
Développeur: Shane Hathaway
Licence: Gratuit
Popularité: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics fournit un moyen simple d'ajouter logiciels indicateurs de performance pour les bibliothèques et les applications Python & nbsp;. Utilisez perfmetrics pour trouver les véritables goulots d'étranglement dans une application de production.
Le paquet perfmetrics est un client du démon Statsd par Etsy, qui est à son tour un client de graphite (spécifiquement, le démon de carbone). Parce que le paquet perfmetrics envoie des paquets UDP pour Statsd, perfmetrics ajoute aucun retard d'E / S pour les applications et peu de surcharge du processeur. Il peut fonctionner aussi bien dans filetée (synchrone) ou (asynchrone) solution orientée événements.
Utilisation
Utilisez les décorateursmetric etmetricmethod pour envelopper les fonctions et les méthodes qui doivent envoyer le calendrier et statistiques d'appels à Statsd. Ajouter les décorateurs à toute fonction ou une méthode qui pourrait être un goulot d'étranglement, y compris les fonctions de la bibliothèque.
Exemple:
de perfmetrics importer métrique
de perfmetrics importation metricmethod
metric
def myfunction ():
& Nbsp; "" "Faites quelque chose qui pourrait être coûteux" ""
classe MyClass (objet):
& Nbsp;metricmethod
& Nbsp; def MyMethod (auto):
& Nbsp; "" "Faites quelque chose d'autre peut-être cher" ""
Ensuite, dites perfmetrics comment se connecter à Statsd. (Jusqu'à ce que vous faites, les décorateurs ne ont aucun effet.) Idéalement, votre application doit lire le Statsd URI à partir d'un fichier de configuration au démarrage, mais l'exemple ci-dessous utilise un URI codé en dur pour la simplicité:
de perfmetrics importation set_statsd_client
set_statsd_client ('statsd: // localhost: 8125')
for i in xrange (1000):
& Nbsp; myfunction ()
& Nbsp;. () MyMethod MyClass ()
Si vous exécutez ce code, il se déclenchera 2000 paquets UDP sur le port 8125. Toutefois, sauf si vous avez déjà installé Graphite et Statsd, tous ces paquets sera ignoré et a chuté. Dropping est une bonne chose: vous ne voulez pas que votre application de production à l'échec ou de ralentir juste parce que votre système de suivi de la performance est arrêté ou ne fonctionne pas.
Installez Graphite et Statsd de recevoir et de représenter graphiquement les mesures. Une bonne façon de les installer est l'exemple graphite_buildout au github, qui installe Graphite et Statsd dans un emplacement personnalisé sans accès root.
Threading
Alors que la plupart des programmes envoient métriques de tout fil à un seul serveur global Statsd, certains programmes ont besoin d'utiliser un serveur de Statsd différente pour chaque thread. Si vous ne avez besoin d'un serveur global Statsd, utilisez la fonction de set_statsd_client au démarrage de l'application. Si vous devez utiliser un serveur Statsd différente pour chaque thread, utilisez l'objet de statsd_client_stack dans chaque thread. Utilisez le poussoir, pop et des méthodes claires.
Conseils Graphite
magasins de graphite chaque mesure comme une série de temps avec de multiples résolutions. La deuxième résolution modèles de magasins de graphite_buildout 10 pendant 48 heures, une résolution de l'heure pour 31 jours, et une résolution de jour pendant 5 ans. Pour produire une valeur à gros grains d'une valeur à grain fin, Graphite calcule la valeur moyenne (moyenne) pour chaque période de temps.
Parce Graphite calcule les valeurs moyennes implicitement, le moyen le plus judicieux pour traiter compteurs en graphite est comme un "hits par seconde" valeur. De cette façon, un graphique peut produire des résultats corrects ne importe quel niveau de résolution qu'il utilise.
Traiter compteurs que des hits par seconde a des conséquences malheureuses, cependant. Si certains métrique voit un pic de 1000 succès en une seconde, puis tombe à zéro pour au moins 9 secondes, le tableau de graphite pour cette mesure montrera un pic de 100, pas 1000, depuis Graphite reçoit mesures toutes les 10 secondes et la pointe semble Graphite comme 100 hits par seconde sur une période de 10 secondes.
Si vous voulez que votre graphe pour afficher 1000 hits plutôt que 100 hits par seconde, appliquer la fonction Graphite hitcount (), en utilisant une résolution de 10 secondes ou plus. La fonction de hitcount convertit les valeurs par seconde pour se rapprocher nombre de résultats premières. Soyez sûr de fournir une valeur de résolution assez grande pour être représentée par au moins une largeur de pixel sur le graphe résultant, sinon Graphite va calculer les moyennes de nombre de résultats et de produire un graphe déroutant.
Il est habituellement logique pour traiter valeurs NULL dans Graphite zéro, si ce ne est pas la valeur par défaut; par défaut, Graphite ne dessine rien pour les valeurs nulles. Vous pouvez activer cette option pour chaque graphique.
Documentation de référence
Décorateurs
metric
& Nbsp; Avise Statsd utilisant UDP chaque fois que la fonction est appelée. Envoie deux chefs d'accusation d'appels et des informations de synchronisation. Le nom de la métrique est envoyé à Statsd . .
metricmethod
& Nbsp; Commemetric, mais le nom de la métrique est Statsd ...
Métrique (stat = Aucun, taux = 1, method = False, comptez = True, le calendrier = True)
& Nbsp; Un gestionnaire de décorateur ou contextuel avec des options.
& Nbsp; stat est le nom de la métrique d'envoyer; réglez-le sur Aucun pour utiliser le nom de la fonction ou de la méthode. taux vous permet de réduire le nombre de paquets envoyés à Statsd en sélectionnant un échantillon aléatoire; par exemple, elle a mis à 0,1 pour envoyer un dixième des paquets. Si le paramètre méthode est vrai, le nom de la métrique par défaut est basé sur le nom de la classe de la méthode plutôt que le nom du module. Réglage comptage False désactive les compteurs statistiques envoyées à Statsd. Réglage calendrier False désactive les statistiques de synchronisation envoyés à Statsd.
& Nbsp; l'utilisation de l'échantillon comme décorateur:
& Nbsp;Metric ('frequent_func', taux = 0,1, le calendrier = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "Est-ce que quelque chose de rapide et fréquemment" ""
& Nbsp; l'utilisation de l'échantillon comme un gestionnaire de contexte:
& Nbsp; def do_something ():
& Nbsp; avec Metric ('doing_something'):
& Nbsp; passe
& Nbsp; Si perfmetrics envoie des paquets trop souvent, les paquets UDP peuvent être perdus et les performances des applications peuvent être affectées. Vous pouvez réduire le nombre de paquets et la surcharge du CPU en utilisant le décorateur métrique avec des options au lieu de métrique ou metricmethod. L'exemple ci-dessus décorateur utilise une fréquence d'échantillonnage et un nom métrique statique. Il désactive également la collecte des informations de synchronisation.
& Nbsp; Si vous utilisez Metric comme un gestionnaire de contexte, vous devez fournir le paramètre de stat ou rien ne sera enregistré.
Fonctions
statsd_client ()
& Nbsp; Remettre le StatsdClient actuellement configuré. Retourne le client local des threads se il en a un, ou le client globale se il ya une ou Aucun.
set_statsd_client (client_or_uri)
& Nbsp; Réglez le StatsdClient mondiale. Le client_or_uri peut être un StatsdClient, un statsd: // URI, ou Aucun.
statsd_client_from_uri (uri)
& Nbsp; Créer une StatsdClient d'un URI. Un URI typique est statsd: // localhost: 8125. Paramètres de requête options prises en charge sont préfixe et gauge_suffix. Le préfixe par défaut est vide et le gauge_suffix par défaut est .. Voir la documentation StatsdClient pour plus d'informations sur gauge_suffix.
Méthodes StatsdClient
code Python peut envoyer mesures personnalisées d'abord obtenir le StatsdClient actuel en utilisant la méthode statsd_client (). Notez que statsd_client () retourne None si aucun client a été configuré.
La plupart des méthodes suivantes ont des paramètres de taux et de buf optionnels. Le paramètre de débit, lorsqu'il est réglé sur une valeur inférieure à 1, provoque StatsdClient d'envoyer un échantillon aléatoire de paquets plutôt que chaque paquet. Si le paramètre buf est une liste, StatsdClient ajoute le contenu du paquet à la liste de buf plutôt que d'envoyer le paquet, ce qui permet d'envoyer plusieurs mises à jour dans un seul paquet. Gardez à l'esprit que la taille des paquets UDP est limitée (la limite varie par le réseau, mais 1000 octets est généralement une bonne estimation) et des octets supplémentaires sera ignoré silencieusement.
calendrier (stat, la valeur, le taux = 1, buf = Aucun)
& Nbsp; Enregistrer les informations de synchronisation. stat est le nom de la métrique pour l'enregistrement et la mesure est la valeur de temporisation en millisecondes. Notez que Statsd maintient plusieurs points de données pour chaque métrique de synchronisation, de sorte paramètres de synchronisation peuvent prendre plus d'espace disque que les compteurs ou de jauges.
manomètre (stat, la valeur, le suffixe = Aucun, taux = 1, buf = Aucun)
& Nbsp; Mettre à jour une valeur de jauge. stat est le nom de la métrique pour enregistrer et valeur est la nouvelle valeur de la jauge. Une jauge représente une valeur persistante comme une taille de la piscine. Parce que les jauges de différentes machines sont souvent en conflit, un suffixe est généralement appliqués pour évaluer noms. Si le paramètre suffixe est une chaîne (y compris une chaîne vide), il remplace le suffixe de la jauge de défaut.
incr (stat, count = 1, le taux = 1, buf = Aucun)
& Nbsp; incrémenter un compteur par compteur. Notez que Statsd efface toutes les valeurs de compteur chaque fois qu'il envoie les métriques de graphite, qui se produit généralement toutes les 10 secondes. Si vous avez besoin d'une valeur persistante, il peut être plus approprié d'utiliser une jauge à la place d'un compteur.
dim (stat, count = 1, le taux = 1, buf = Aucun)
& Nbsp; Décrémenter un compteur par compteur.
sendbuf (buf)
& Nbsp; Envoyer le contenu de la liste de buf Statsd

Quoi de neuf dans cette version:

  • Ajout d'une pyramide en option. Tween et une application de filtre WSGI similaire qui met en place le client Statsd pour chaque demande.

Ce qui est nouveau dans la version 0.9.4:.

  • Optimisé l'utilisation de taux d'échantillonnage réduit

Ce qui est nouveau dans la version 0.9.2:

  • métrique peut maintenant être utilisé soit comme un décorateur ou un gestionnaire de contexte.
  • Fait la signature de StatsdClient plus comme StatsClient de James Socol.

Exigences :

  • Python

Logiciel similaire

srmqt4
srmqt4

11 May 15

imsniff
imsniff

3 Jun 15

ccrypt
ccrypt

20 Feb 15

NConf
NConf

14 Apr 15

D'autres logiciels de développeur Shane Hathaway

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

Commentaires à perfmetrics

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!