2011-08-17 40 views
14

Tôi gửi một thông báo mỗi lần người dùng kết nối với trang web của tôi.tích lũy giá trị trong Graphite

Với định dạng này:

"user_login 1 13xxxxxxx" (key value timestamp) 

Vấn đề của tôi là Graphite cho tôi một đồ thị với chỉ một dòng với giá trị "1", mỗi phút. Tôi gửi một số lượng thư ngẫu nhiên mỗi phút (từ 6 đến 60), nhưng tôi nghĩ giới hạn Graphite cho thông điệp đầu tiên (hoặc cuối cùng?), Để hiển thị một giá trị.

Làm cách nào để có tổng số thư, mỗi phút?

Trả lời

3

sumSeries sử dụng target = sumSeries (graphite.counterName) hoặc tóm tắt chức năng nếu bạn muốn tổng hợp trong hơn một phút

7

Bạn có thể quan tâm trong việc điều hành statsd hoặc statsite trên máy chủ graphite của bạn. Phần mềm đó sẽ tổng hợp tất cả các số liệu thống kê trong một khoảng thời gian có thể cấu hình được, và ghi kết quả vào graphite.

Hãy xem github.com/etsy/statsd (trong node.js) và github.com/kiip/statsite (bản sao trăn). Thống kê của Etsy chứa một vài ví dụ về cách sử dụng nó.

+0

Đây là những gì tôi đã kết thúc làm. Loại gây phiền nhiễu để có một dịch vụ khác đang chạy, nhưng đó là một dịch vụ nhỏ. –

+1

Và tôi thực sự đã sử dụng phiên bản C (mới hơn) của statsite: https://github.com/armon/statsite. Điều gây phiền nhiễu duy nhất là tôi phải thay đổi tệp "sink" mặc định để thả "statsite.counts". tiền tố mà statsite trả trước trước bất kỳ số liệu thống kê nào bạn gửi theo mặc định. –

1

Sử dụng cumulative function trong chuỗi video của bạn.

Theo mặc định, khi một biểu đồ được vẽ, và chiều rộng của đồ thị trong pixel nhỏ hơn số datapoints được vẽ đồ thị, Graphite trung bình các giá trị ở mỗi pixel. Hàm tích lũy() thay đổi hàm tổng hợp thành tổng từ mức trung bình.

11

Bạn cũng có thể thử dịch vụ tổng hợp carbon để số liệu được tổng hợp khi chúng được thu thập thay vì trong giao diện người dùng Graphite. Xem http://graphite.readthedocs.org/en/latest/config-carbon.html#aggregation-rules-conf để biết cấu hình quy tắc tổng hợp. Lưu ý rằng bạn cần phải gửi số liệu đến cổng dịch vụ tổng hợp carbon đang chạy ở cổng khác với cổng thu gom carbon thông thường.

3

Jari đúng, bộ tổng hợp carbon được viết riêng cho việc này.

Hãy chắc chắn rằng bạn sử dụng một hàm sum trong tập hợp-rules.conf, như thế này:

bpu.<cluster>.<account>.<metric>_sum (1) = sum bpu.<cluster>.<account>.<metric>_sum 
1

theo mặc định, graphite chỉ lưu trữ giá trị mới được gửi cho bất kỳ chỉ số đến nào trong mức chi tiết lưu giữ tối thiểu (không phải là giá trị trung bình). nếu bạn muốn tổng hợp, giải pháp chung là sử dụng statsd.Tuy nhiên,

tuy nhiên, bạn cũng có thể sử dụng bộ tập hợp carbon. chỉ cần chắc chắn bạn đang gửi số liệu của bạn vào cổng dòng thập dữ liệu, sau đó cập nhật tập hợp-rules.conf với một quy tắc như thế này:

user_login (10) = sum user_login$ 

lưu ý: điều này giả định thời gian lưu giữ tối thiểu của bạn vẫn còn 10 giây (mặc định) là bạn có thể xác nhận rằng bằng cách nhìn vào lưu trữ schemas.conf

cho một lời giải thích dài, xem: Why use statsd when graphite's Carbon aggregator can do the same job?

Các vấn đề liên quan