perfmetrics

Phần mềm chụp màn hình:
perfmetrics
Các chi tiết về phần mềm:
Phiên bản: 0.9.5
Ngày tải lên: 20 Feb 15
Nhà phát triển: Shane Hathaway
Giấy phép: Miễn phí
Phổ biến: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics cung cấp một cách đơn giản để thêm các số liệu hiệu suất phần mềm cho các thư viện Python và các ứng dụng & nbsp;. Sử dụng perfmetrics để tìm sự vướng mắc đúng trong một ứng dụng sản xuất.
Các gói perfmetrics là một khách hàng của các daemon Statsd của Etsy, đó là lần lượt một khách hàng của Graphite (cụ thể, các daemon Carbon). Bởi vì các gói perfmetrics gửi các gói UDP để Statsd, perfmetrics không có thêm I / O chậm trễ cho các ứng dụng và ít CPU overhead. Nó có thể làm việc tốt như nhau trong ren (đồng bộ) hoặc hướng sự kiện (không đồng bộ) phần mềm.
Cách sử dụng
Sử dụng trang trímetric vàmetricmethod để bọc các chức năng và phương pháp đó phải gửi thời gian và thống kê để gọi Statsd. Thêm các trang trí cho bất kỳ chức năng hoặc phương pháp đó có thể là một nút cổ chai, bao gồm các chức năng thư viện.
Mẫu:
từ perfmetrics nhập số liệu
từ perfmetrics nhập metricmethod
metric
def myfunction ():
& Nbsp; "" "Làm điều gì đó có thể tốn kém" ""
class MyClass (object):
& Nbsp;metricmethod
& Nbsp; def MyMethod (tự):
& Nbsp; "" "Do một số điều có thể đắt tiền khác" ""
Sau đó, yêu perfmetrics như thế nào để kết nối với Statsd. (Cho đến khi bạn làm, trang trí không có hiệu lực.) Lý tưởng nhất, ứng dụng của bạn nên đọc Statsd URI từ một tập tin cấu hình lúc khởi động, nhưng các ví dụ dưới đây sử dụng một URI mã hóa cứng vì đơn giản:
từ perfmetrics nhập set_statsd_client
set_statsd_client ('statsd: // localhost: 8125)
for i in xrange (1000):
& Nbsp; myfunction ()
& Nbsp; MyClass MyMethod () ().
Nếu bạn chạy mã, nó sẽ cháy 2.000 gói UDP tại cổng 8125. Tuy nhiên, trừ khi bạn đã cài đặt Graphite và Statsd, tất cả những gói dữ liệu sẽ bị bỏ qua và giảm xuống. Giảm là một điều tốt: bạn không muốn ứng dụng sản xuất của bạn thất bại hoặc làm chậm chỉ vì hệ thống giám sát hiệu suất của bạn là ngừng hoặc không làm việc.
Cài đặt Graphite và Statsd nhận và vẽ đồ thị số liệu. Một cách tốt để cài đặt chúng là ví dụ graphite_buildout tại github, mà cài đặt Graphite và Statsd trong một vị trí tùy chỉnh mà không cần truy cập root.
Threading
Trong khi hầu hết các chương trình gửi số liệu từ bất kỳ thread để một máy chủ Statsd duy nhất toàn cầu, một số chương trình cần phải sử dụng một máy chủ khác nhau Statsd cho mỗi chủ đề. Nếu bạn chỉ cần một máy chủ Statsd toàn cầu, sử dụng các chức năng set_statsd_client lúc khởi động ứng dụng. Nếu bạn cần phải sử dụng một máy chủ Statsd khác nhau cho mỗi chủ đề, sử dụng các đối tượng statsd_client_stack trong mỗi chủ đề. Sử dụng push, pop, và phương pháp rõ ràng.
Graphite Mẹo
Cửa hàng Graphite mỗi số liệu như một chuỗi thời gian với nhiều độ phân giải. Nghị quyết thứ hai cửa hàng graphite_buildout mẫu 10 cho 48 giờ, độ phân giải 1 giờ trong 31 ngày, và ngày phân giải 1 trong 5 năm. Để sản xuất ra một giá trị hạt thô từ một giá trị hạt mịn, Graphite tính giá trị trung bình (trung bình) cho mỗi khoảng thời gian.
Bởi vì Graphite tính giá trị trung bình ngầm, cách hợp lý nhất để điều trị các quầy trong Graphite là như một "lượt truy cập mỗi thứ hai" giá trị. Bằng cách đó, một đồ thị có thể tạo ra kết quả chính xác không có vấn đề mà giải quyết mức nó sử dụng.
Điều trị như đếm lượt truy cập mỗi giây có hậu quả đáng tiếc, tuy nhiên. Nếu một số metric nhìn thấy một cành 1000 hit trong một giây, sau đó giảm xuống bằng không ít nhất là 9 giây, các biểu đồ Graphite cho số liệu đó sẽ hiển thị một cành của 100, không phải năm 1000, kể từ khi nhận được số liệu Graphite mỗi 10 giây và các cành trông đến Graphite như 100 lượt truy cập mỗi thứ hai trong khoảng thời gian 10 giây.
Nếu bạn muốn đồ thị của bạn để hiển thị 1000 lượt truy cập hơn 100 lượt truy cập mỗi thứ hai, áp dụng các Graphite hitcount () chức năng, sử dụng độ phân giải 10 giây hoặc hơn. Các chức năng chuyển đổi các giá trị hitcount mỗi giây để gần đúng số cuộc sống. Hãy chắc chắn để cung cấp một giá trị độ phân giải đủ lớn để được đại diện bởi ít nhất một pixel chiều rộng trên đồ thị kết quả, nếu không Graphite sẽ tính trung bình của số lượng hit và tạo ra một biểu đồ khó hiểu.
Nó thường làm cho tinh thần để điều trị các giá trị null trong Graphite như bằng không, mặc dù đó không phải là mặc định; theo mặc định, Graphite rút ra không có gì cho các giá trị null. Bạn có thể bật mà lựa chọn cho mỗi đồ thị.
Tài liệu tham khảo
Trang trí
metric
& Nbsp; thông báo Statsd sử dụng UDP mỗi khi hàm được gọi. Gửi cả số lượng cuộc gọi và thời gian thông tin. Tên của các số liệu gửi đến Statsd là . .
metricmethod
& Nbsp; Giống nhưmetric, nhưng tên của Statsd metric là ...
Metric (stat = None, tỷ lệ = 1, phương pháp = False, đếm = True, thời gian = True)
& Nbsp; Một trang trí hoặc bối cảnh quản lý với các tùy chọn.
& Nbsp; stat là tên của các số liệu để gửi; đặt nó vào Không sử dụng tên của hàm hoặc phương pháp. tỷ lệ cho phép bạn giảm số lượng các gói tin gửi đến Statsd bằng cách chọn một mẫu ngẫu nhiên; Ví dụ, thiết lập nó sang 0.1 để gửi một phần mười của các gói. Nếu các phương pháp tham số là đúng, tên metric mặc định được dựa trên tên của phương pháp hơn là tên module. Thiết đếm đến False vô hiệu hóa các thống kê truy cập gửi đến Statsd. Thiết lập thời gian để False vô hiệu hóa các số liệu thống kê thời được gửi đi để Statsd.
& Nbsp; sử dụng mẫu như một trang trí:
& Nbsp;Metric ('frequent_func', tỷ lệ = 0,1, thời gian = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "Hãy làm một cái gì đó nhanh chóng và thường xuyên" ""
& Nbsp; sử dụng mẫu như một người quản lý bối cảnh:
& Nbsp; def do_something ():
& Nbsp; với Metric ('doing_something'):
& Nbsp; vượt qua
& Nbsp; Nếu perfmetrics gửi các gói quá thường xuyên, các gói tin UDP có thể bị mất và hiệu suất ứng dụng có thể bị ảnh hưởng. Bạn có thể giảm số lượng các gói dữ liệu và các chi phí CPU bằng cách sử dụng trang trí Metric với tùy chọn thay vì số liệu hoặc metricmethod. Các trang trí ví dụ trên sử dụng một tỷ lệ mẫu và một tên metric tĩnh. Nó cũng vô hiệu hóa bộ sưu tập các thông tin thời gian.
& Nbsp; Khi sử dụng Metric như một người quản lý bối cảnh, bạn phải cung cấp các tham số stat hoặc không có gì sẽ được ghi lại.
Chức năng
statsd_client ()
& Nbsp; Quay trở lại StatsdClient hiện cấu hình. Trả về client thread-địa phương nếu có một, hoặc các khách hàng toàn cầu nếu có một, hoặc Không.
set_statsd_client (client_or_uri)
& Nbsp; Đặt StatsdClient toàn cầu. Các client_or_uri có thể là một StatsdClient, một statsd: // URI, hoặc Không.
statsd_client_from_uri (uri)
& Nbsp; Tạo một StatsdClient từ một URI. Một điển hình là URI statsd: // localhost: 8125. Tham số truy vấn tùy chọn hỗ trợ là tiền tố và gauge_suffix. Các tiền tố mặc định là rỗng và gauge_suffix mặc định là .. Xem tài liệu StatsdClient để biết thêm thông tin về gauge_suffix.
Phương pháp StatsdClient
Mã Python có thể gửi số liệu tùy chỉnh bằng cách đầu tiên nhận được StatsdClient hiện tại bằng cách sử dụng statsd_client () phương pháp. Lưu ý rằng statsd_client () trả về None nếu không có khách hàng đã được cấu hình.
Hầu hết các phương pháp dưới đây có tùy chọn thông số tốc độ và buf. Các tham số tỷ lệ, khi thiết lập một giá trị nhỏ hơn 1, gây StatsdClient để gửi một mẫu ngẫu nhiên các gói thay vì mỗi gói. Nếu tham số buf là một danh sách, StatsdClient gắn thêm các nội dung gói với danh sách buf hơn là gửi các gói tin, làm cho nó có thể gửi nhiều bản cập nhật trong một gói duy nhất. Hãy nhớ rằng kích thước của gói tin UDP được giới hạn (giới hạn thay đổi theo mạng, nhưng 1000 byte thường là một đoán tốt) và bất kỳ byte thêm sẽ bị bỏ qua trong yên lặng.
thời gian (chỉ số, giá trị, tỷ lệ = 1, buf = None)
& Nbsp; ghi thời gian thông tin. stat là tên của các số liệu để ghi lại và giá trị là số đo thời gian trong mili giây. Lưu ý rằng Statsd duy trì một số điểm dữ liệu cho mỗi thước đo thời gian, vì vậy số liệu thời gian có thể mất không gian đĩa hơn quầy hoặc đồng hồ đo.
gauge (stat, giá trị, suffix = None, tỷ lệ = 1, buf = None)
& Nbsp; Cập nhật một giá trị đo. stat là tên của các số liệu để ghi lại và giá trị là giá trị đo mới. Một đánh giá đại diện cho một giá trị dai dẳng như một hồ bơi kích thước. Bởi vì đồng hồ đo từ các máy khác nhau thường mâu thuẫn, một hậu tố thường được áp dụng để đánh giá tên. Nếu tham số hậu tố là một chuỗi (bao gồm một chuỗi rỗng), nó sẽ ghi đè các hậu tố đo mặc định.
incr (stat, count = 1, tỷ lệ = 1, buf = None)
& Nbsp; tăng số đếm bằng số. Lưu ý rằng Statsd xóa tất cả các giá trị truy cập mỗi khi nó sẽ gửi các số liệu để Graphite, mà thường xảy ra mỗi 10 giây. Nếu bạn cần một giá trị dai dẳng, nó có thể thích hợp hơn để sử dụng một máy đo thay vì một bộ đếm.
decr (stat, count = 1, tỷ lệ = 1, buf = None)
& Nbsp; Decrement một truy cập bằng cách đếm.
sendbuf (buf)
& Nbsp; Gửi các nội dung của danh sách buf để Statsd

là gì mới trong phiên bản này:

  • Thêm một Pyramid tùy chọn. tween và ứng dụng một bộ lọc WSGI tương tự mà thiết lập các khách hàng Statsd cho mỗi yêu cầu.

là gì mới trong phiên bản 0.9.4:.

  • Tối ưu hóa việc sử dụng các tỷ lệ mẫu giảm

là gì mới trong phiên bản 0.9.2:

  • Metric bây giờ có thể được sử dụng như là một trong hai hoặc một trang trí một người quản lý bối cảnh.
  • Made chữ ký của StatsdClient giống như StatsClient James Socol của.

Yêu cầu :

  • Python

Phần mềm tương tự

wmlcd-toshiba
wmlcd-toshiba

2 Jun 15

ViperDB
ViperDB

3 Jun 15

ssh-smart
ssh-smart

3 Jun 15

check_aaccli
check_aaccli

2 Jun 15

Phần mềm khác của nhà phát triển Shane Hathaway

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

slowlog
slowlog

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Ý kiến ​​để perfmetrics

Bình luận không
Nhập bình luận
Bật hình ảnh!