2015-12-11 15 views
8

Tôi đang chơi với grafana và tôi muốn tạo bảng điều khiển nơi tôi so sánh dữ liệu từ một máy chủ ứng dụng với mức trung bình của tất cả những người khác ngoại trừ một máy chủ. Một cái gì đó như:Cách truy vấn "tất cả trừ một" trong graphite/grafana

apps.machine1.someMetric 
averageSeries(apps.*.not(machine1).someMetric) 

Có thể thực hiện được không? Làm sao?

Trả lời

1

Sau khi đọc số Graphite URL API docs section about wildcard paths Tôi không nghĩ có bất kỳ truy vấn đích "tất cả trừ một" nào. Tuy nhiên nếu bạn không có nhiều máy bạn có thể liệt kê tất cả họ nhưng loại trừ một trong truy vấn của bạn:

apps.machine1.someMetric 
averageSeries(apps.{machine2,machine3,machine4,machine5}.someMetric) 

Hoặc sử dụng một loạt nhân vật:

apps.machine1.someMetric 
averageSeries(apps.machine[2-5].someMetric) 
+6

nó có thể được thực hiện với loại trừ - xem dưới đây – BritishDeveloper

20

Âm thanh như bạn muốn lọc một seriesList , cho bạn một làm điều đó inclusively sử dụng chức năng 'grep' hoặc độc quyền sử dụng các 'loại trừ' chức năng

exclude(apps.machine*.someMetric,"machine1") 

và vượt qua đó vào averageSeries

averageSeries(exclude(apps.machine*.someMetric,"machine1")) 

Bạn có thể đọc thêm về những chức năng ở đây: http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.exclude

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