perfmetrics

Screenshot Λογισμικό:
perfmetrics
Στοιχεία Λογισμικού:
Εκδοχή: 0.9.5
Ανεβάστε ημερομηνία: 20 Feb 15
Προγραμματιστής: Shane Hathaway
Άδεια: Δωρεάν
Δημοτικότητα: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics παρέχει έναν απλό τρόπο για να προσθέσετε μετρήσεις απόδοσης του λογισμικού σε Python βιβλιοθήκες και εφαρμογές & nbsp?. Χρησιμοποιήστε perfmetrics να βρει τις αληθινές συμφόρησης σε μια εφαρμογή παραγωγής.
Το πακέτο perfmetrics είναι πελάτης της Statsd δαίμονα από το Etsy, το οποίο με τη σειρά του ο πελάτης του γραφίτη (συγκεκριμένα, ο δαίμονας του άνθρακα). Επειδή το πακέτο perfmetrics στέλνει πακέτα UDP Statsd, perfmetrics προσθέτει καμία I / O καθυστερήσεις σε εφαρμογές και μικρή επιβάρυνση της CPU. Μπορεί να λειτουργήσει εξίσου καλά σε σπείρωμα (σύγχρονη) ή event-driven (ασύγχρονη) λογισμικό.
Χρήση
Χρησιμοποιήστε ταmetric καιmetricmethod διακοσμητές για να τυλίξει τις λειτουργίες και τις μεθόδους που πρέπει να στείλει το χρονοδιάγραμμα και στατιστικά στοιχεία κλήσεων προς Statsd. Προσθέστε τα διακοσμητές σε οποιαδήποτε λειτουργία ή μέθοδο που θα μπορούσε να είναι ένα εμπόδιο, συμπεριλαμβανομένων των λειτουργιών της βιβλιοθήκης.
Δείγμα:
από perfmetrics εισαγωγή μετρικό
από perfmetrics metricmethod εισαγωγής
metric
def MyFunction ():
& Nbsp? "" "Κάντε κάτι που θα μπορούσε να είναι ακριβά" ""
κατηγορία MyClass (αντικείμενο):
& Nbsp?metricmethod
& Nbsp? Def mymethod (αυτο):
& Nbsp? "" "Κάνετε κάποια άλλα πιθανώς ακριβό πράγμα" ""
Στη συνέχεια, πείτε perfmetrics πώς να συνδεθείτε στο Statsd. (Μέχρι να το κάνετε, οι διακοσμητές έχουν καμία επίδραση.) Ιδανικά, η αίτησή σας θα πρέπει να διαβάσετε το Statsd URI από ένα αρχείο ρυθμίσεων που κατά το χρόνο εκκίνησης, αλλά το παρακάτω παράδειγμα χρησιμοποιεί ένα hard-coded URI για την απλότητα:
από perfmetrics set_statsd_client εισαγωγής
set_statsd_client («statsd: // localhost: 8125)
για το i σε xrange (1000):
& Nbsp? MyFunction ()
& Nbsp?. MyClass () mymethod ()
Εάν εκτελέσετε αυτόν τον κώδικα, θα απολύσει 2000 πακέτα UDP στη θύρα 8125. Ωστόσο, αν έχετε ήδη εγκαταστήσει γραφίτη και Statsd, όλα αυτά τα πακέτα θα πρέπει να αγνοηθεί και να πέσει. Ρίχνοντας είναι ένα καλό πράγμα: δεν θέλετε την εφαρμογή παραγωγή σας να αποτύχει ή να επιβραδύνει μόνο και μόνο επειδή η απόδοση του συστήματος παρακολούθησης σας έχει διακοπεί ή δεν λειτουργεί.
Εγκαταστήστε γραφίτη και Statsd να λαμβάνετε και το γράφημα τις μετρήσεις. Ένας καλός τρόπος για την εγκατάσταση τους είναι η graphite_buildout παράδειγμα στο GitHub, το οποίο εγκαθιστά γραφίτη και Statsd σε μια προσαρμοσμένη τοποθεσία χωρίς πρόσβαση ρίζας.
Threading
Ενώ τα περισσότερα προγράμματα στέλνουν τις μετρήσεις από κάθε νήμα σε ένα ενιαίο παγκόσμιο εξυπηρετητή Statsd, ορισμένα προγράμματα πρέπει να χρησιμοποιήσετε ένα διαφορετικό εξυπηρετητή Statsd για κάθε νήμα. Εάν χρειάζεστε μόνο ένα διακομιστή καθολικού Statsd, χρησιμοποιήστε τη λειτουργία set_statsd_client κατά την εκκίνηση της εφαρμογής. Εάν πρέπει να χρησιμοποιήσετε ένα διαφορετικό εξυπηρετητή Statsd για κάθε νήμα, χρησιμοποιήστε το αντικείμενο statsd_client_stack σε κάθε νήμα. Χρησιμοποιήστε την ώθηση, ποπ, και σαφείς μεθόδους.
γραφίτη Συμβουλές
Καταστήματα γραφίτη κάθε μετρικό ως μια χρονοσειρά με πολλαπλές αναλύσεις. Το δείγμα καταστήματα graphite_buildout 10 δευτερόλεπτα ψήφισμα για 48 ώρες, 1 ώρα ψήφισμα για 31 ημέρες, και 1 Ψήφισμα ημέρα για 5 χρόνια. Για να παραχθεί ένα χονδρόκοκκο τιμή από λεπτόκοκκο αξία, γραφίτη υπολογίζει τη μέση τιμή (μέσος όρος) για κάθε χρονικό διάστημα.
Επειδή ο γραφίτης υπολογίζει μέσες τιμές εμμέσως, ο πιο λογικός τρόπος για την αντιμετώπιση μετρητές σε γραφίτη είναι σαν ένα "χτυπήματα ανά δευτερόλεπτο" αξία. Με αυτόν τον τρόπο, μια γραφική παράσταση μπορεί να παράγει σωστά αποτελέσματα δεν έχει σημασία ποια εξυγίανσης σε επίπεδο που χρησιμοποιεί.
Θεραπεία μετρητές όπως χτυπά ανά δευτερόλεπτο έχει ατυχείς συνέπειες, όμως. Αν κάποιος βλέπει ένα μετρικό 1000 χτύπημα ακίδα σε ένα δευτερόλεπτο, τότε πέφτει στο μηδέν για τουλάχιστον 9 δευτερόλεπτα, το διάγραμμα γραφίτη για αυτό το μετρικό θα δείξει μια ακίδα 100, δεν 1000, από γραφίτη λαμβάνει μετρήσεις κάθε 10 δευτερόλεπτα και η ακίδα φαίνεται να γραφίτη, όπως 100 χτυπήματα ανά δευτερόλεπτο σε μια περίοδο 10 δευτερολέπτων.
Αν θέλετε το γράφημά σας να δείχνουν 1000 χτυπήματα αντί για 100 χτυπήματα ανά δευτερόλεπτο, εφαρμόζουν τη λειτουργία γραφίτη HitCount (), χρησιμοποιώντας ένα ψήφισμα από 10 δευτερόλεπτα ή περισσότερο. Η λειτουργία HitCount μετατρέπει ανά δευτερόλεπτο τιμές για την προσέγγιση των πρώτων Η χτύπημα. Να είστε βέβαιος να παρέχει μια τιμή ανάλυσης είναι αρκετά μεγάλο για να αναπαρασταθεί από ένα τουλάχιστον πλάτος pixel στο γράφημα που προκύπτει, αλλιώς γραφίτη θα υπολογίσει μέσους όρους του χτυπήματος Η και παράγει μια σύγχυση γράφημα.
Είναι συνήθως νόημα για τη θεραπεία τιμές null σε γραφίτη ως μηδέν, αν και αυτό δεν είναι η προεπιλεγμένη? από προεπιλογή, γραφίτη αντλεί τίποτα για τις τιμές null. Μπορείτε να ενεργοποιήσετε αυτή την επιλογή για κάθε γράφημα.
Τεκμηρίωση αναφοράς
Διακοσμητές
metric
& Nbsp? Ενημερώνει Statsd χρησιμοποιώντας UDP κάθε φορά που καλείται η συνάρτηση. Στέλνει τις δύο μετρήσεις κλήσης και τις πληροφορίες χρονισμού. Το όνομα του μετρικού αποστέλλεται Statsd είναι <ενότητα>. <Όνομα συνάρτησης>.
metricmethod
& Nbsp? Όπωςmetric, αλλά το όνομα του Statsd μετρικό είναι <μονάδα κλάσης> <όνομα κλάσης> <όνομα μεθόδου>...
Metric (STAT = Καμία, ποσοστό = 1, η μέθοδος = False, μετράνε = True, το χρονοδιάγραμμα = True)
& Nbsp? Ένας διακοσμητής ή διευθυντής πλαίσιο με επιλογές.
& Nbsp? Στατιστικό είναι το όνομα του μετρικού να στείλετε? που να Κανένας να χρησιμοποιούν το όνομα της συνάρτησης ή μέθοδο. ρυθμός σας επιτρέπει να μειώσει τον αριθμό των πακέτων που αποστέλλονται σε Statsd επιλέγοντας ένα τυχαίο δείγμα? για παράδειγμα, ρυθμίστε 0.1 να αποστείλει ένα δέκατο των πακέτων. Εάν η παράμετρος μέθοδος είναι αλήθεια, το προεπιλεγμένο όνομα μετρική βασίζεται στο όνομα της κατηγορίας της μεθόδου και όχι το όνομα της ενότητας. Ρύθμιση καταμέτρηση σε False απενεργοποιεί τα κόντρα στατιστικές που αποστέλλονται στη Statsd. Ρύθμιση χρονισμού σε False απενεργοποιεί τα στατιστικά στοιχεία χρονισμού αποστέλλονται σε Statsd.
& Nbsp? Χρήση δείγματος ως διακοσμητής:
& Nbsp?Metric («Frequent_func», ποσοστό = 0.1, το χρονοδιάγραμμα = False)
& Nbsp? Def frequent_func ():
& Nbsp? "" "Κάνε κάτι γρήγορα και συχνά" ""
& Nbsp? Χρήση δείγματος ως διαχειριστής πλαίσιο:
& Nbsp? Def do_something ():
& Nbsp? Με Μετρικό («doing_something»):
& Nbsp? Πέρασμα
& Nbsp? Αν perfmetrics στέλνει πακέτα πολύ συχνά, πακέτα UDP μπορεί να χαθεί και η απόδοση των εφαρμογών μπορεί να επηρεαστεί. Μπορείτε να μειώσετε τον αριθμό των πακέτων και την επιβάρυνση της CPU χρησιμοποιώντας το μετρικό διακοσμητής με τις επιλογές αντί του μετρικού ή metricmethod. Το παράδειγμα διακοσμητής παραπάνω χρησιμοποιεί ένα ρυθμό δειγματοληψίας και ένα στατικό μετρικό όνομα. Επίσης, απενεργοποιείται η συλλογή των πληροφοριών χρονισμού.
& Nbsp? Όταν χρησιμοποιούνται μετρικές ως διαχειριστής πλαίσιο, πρέπει να δώσετε την παράμετρο stat ή τίποτα δεν θα πρέπει να καταγράφονται.
Λειτουργίες
statsd_client ()
& Nbsp? Επιστρέψτε την ρυθμισμένη StatsdClient. Επιστρέφει το νήμα-τοπικό πελάτη, αν υπάρχει, ή το παγκόσμιο πελάτη εάν υπάρχει, ή Κανένα.
set_statsd_client (client_or_uri)
& Nbsp? Ρυθμίστε την παγκόσμια StatsdClient. Η client_or_uri μπορεί να είναι ένα StatsdClient, ένα statsd: // URI, ή Κανένα.
statsd_client_from_uri (URI)
& Nbsp? Δημιουργία StatsdClient από ένα URI. Ένα τυπικό URI είναι statsd: // localhost: 8125. Οι υποστηριζόμενες προαιρετικές παραμέτρους ερωτήματος είναι πρόθεμα και gauge_suffix. Η προεπιλογή πρόθεμα είναι άδειο και η προεπιλεγμένη gauge_suffix είναι .. Δείτε την τεκμηρίωση StatsdClient για περισσότερες πληροφορίες σχετικά με gauge_suffix.
StatsdClient Μέθοδοι
Κώδικα Python μπορεί να στείλει έθιμο μετρήσεις με την πρώτη να πάρει την τρέχουσα StatsdClient χρησιμοποιώντας τη μέθοδο statsd_client (). Σημειώστε ότι statsd_client () επιστρέφει Καμία εάν κανένας πελάτης δεν έχει ρυθμιστεί.
Οι περισσότερες από τις παρακάτω μεθόδους έχουν προαιρετικό ρυθμό και buf παραμέτρους. Η παράμετρος ρυθμού, όταν ρυθμιστεί σε τιμή μικρότερη του 1, προκαλεί StatsdClient να στείλετε ένα τυχαίο δείγμα των πακέτων και όχι κάθε πακέτο. Εάν η παράμετρος buf είναι ένας κατάλογος, StatsdClient επισυνάπτει το περιεχόμενο του πακέτου στη λίστα buf παρά να στείλετε το πακέτο, καθιστώντας δυνατή την αποστολή πολλαπλών ενημερώσεων σε ένα ενιαίο πακέτο. Λάβετε υπόψη ότι το μέγεθος των UDP πακέτων είναι περιορισμένη (το όριο ποικίλλει ανάλογα με το δίκτυο, αλλά 1000 bytes είναι συνήθως μια καλή εικασία) και τυχόν επιπλέον bytes θα αγνοούνται σιωπηλά.
χρονισμού (stat, τιμή, ποσοστό = 1, BUF = none)
& Nbsp? Καταγράψτε τις πληροφορίες χρονισμού. stat είναι το όνομα της μετρικής για την καταγραφή και την αξία είναι η μέτρηση χρονισμού σε χιλιοστά του δευτερολέπτου. Σημειώστε ότι Statsd διατηρεί πολλά σημεία δεδομένων για κάθε μετρικό χρονοδιάγραμμα, έτσι χρονισμού μετρήσεις μπορεί να πάρει περισσότερο χώρο στο δίσκο από μετρητές ή μετρητές.
μετρητή (stat, τιμή, κατάληξη = Καμία, ποσοστό = 1, BUF = none)
& Nbsp? Ενημέρωση τιμή μετρητή. stat είναι το όνομα της μετρικής για την καταγραφή και την αξία είναι η νέα τιμή μετρητή. Ένα όργανο μέτρησης, αντιπροσωπεύει μια επίμονη αξίας, όπως το μέγεθος της πισίνας. Επειδή οι μετρητές από διαφορετικά μηχανήματα συχνά σύγκρουση, ένα επίθεμα εφαρμόζεται συνήθως για τη μέτρηση ονόματα. Εάν η παράμετρος κατάληξη είναι ένα string (συμπεριλαμβανομένων κενή συμβολοσειρά), αντικαθιστά το επίθημα προεπιλεγμένη μετρητή.
incr (stat, count = 1, ποσοστό = 1, BUF = none)
& Nbsp? Αυξάνεται ένας μετρητής με καταμέτρηση. Σημειώστε ότι Statsd διαγράφει όλες τις τιμές του μετρητή κάθε φορά που στέλνει τις μετρήσεις σε γραφίτη, το οποίο συμβαίνει συνήθως κάθε 10 δευτερόλεπτα. Εάν χρειάζεστε μια επίμονη αξία, μπορεί να είναι πιο κατάλληλο για να χρησιμοποιήσετε ένα μετρητή αντί ενός μετρητή.
ΤΕΕΣ (stat, count = 1, ποσοστό = 1, BUF = none)
& Nbsp? Μείωση ένας μετρητής με καταμέτρηση.
sendbuf (BUF)
& Nbsp? Στείλτε τα περιεχόμενα της λίστας buf να Statsd

Τι είναι καινούργιο σε αυτήν την έκδοση:

  • Προστέθηκε ένα προαιρετικό Πυραμίδα. Tween και μια παρόμοια εφαρμογή φίλτρο WSGI που καταρτίζει το πελάτη Statsd για κάθε αίτηση.

Τι είναι καινούργιο στην έκδοση 0.9.4:.

  • Βελτιστοποίηση της χρήσης των μειωμένων συντελεστών του δείγματος

Τι είναι καινούργιο στην έκδοση 0.9.2:

  • Μετρικό μπορεί πλέον να χρησιμοποιηθεί είτε ως διακοσμητής ή ένας διαχειριστής πλαίσιο.
  • Made την υπογραφή του StatsdClient περισσότερο σαν StatsClient James Socol του.

Απαιτήσεις :

  • Python

Παρόμοια λογισμικά

pirsyncd
pirsyncd

11 May 15

KeyNote
KeyNote

3 Jun 15

KAVClient
KAVClient

3 Jun 15

Άλλο λογισμικό του προγραμματιστή Shane Hathaway

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

slowlog
slowlog

20 Feb 15

Σχόλια για perfmetrics

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!