Bài viết được thực hiện trên:
Để hiểu được bài viết này nói gì, trước tiên bạn cần hiểu về graphite và diamond ( tớ sẽ không giới thiệu trong bài viết này).
Để hiểu về graphite, có thể tham khảo tại:
Trong bài này, tớ chỉ nói về việc làm thế nào để viết được một collector, thu thập thông tin trên các nodes và gửi metric về graphite server với một ví dụ khá đơn giản.
Diamond collector chạy trong diamond process và collect metric. Sau đó metric sẽ được published tới graphite server.
Collector là một subclasses của diamond.collector.Collector.
Để gửi metric về graphite server, bạn cần sử dụng một method được gọi là "collect"
được phát triển lên từ
Để định nghĩa một metric, bạn cần hai tham số: tên metric và giá trị của metric. Thông thường, python dict sẽ rất hữu dụng trong trường hợp này.
Sau đó hàm
Để testing một collecor, bạn cần sử dụng một file config cho diamond. Ví du, bạn có một file config cho diamond diamond.conf như sau:
output sẽ có format như sau:
Diamond hỗ trợ việc viết thêm các colletor cho graphite một cách rất linh động. Vì vậy, bạn có thể viết thêm các collector để collect các thông tin bạn cần một cách thoải mái.
Tất cả mọi việc bạn cần làm là định nghĩa tên metric và metric value để nhập vào self.publish() method.
Hi vọng ví dụ trên giúp ích được cho bạn trong việc tim hiểu và sử dụng graphite và diamond.
--- Thanks for your reading ---
thanhnt@Thanhnt:~$ lsb_release -r
Release: 12.04
Để hiểu được bài viết này nói gì, trước tiên bạn cần hiểu về graphite và diamond ( tớ sẽ không giới thiệu trong bài viết này).
Để hiểu về graphite, có thể tham khảo tại:
https://graphite.readthedocs.org/en/latest/Để hiểu thêm về diamond, bạn có thể tham khảo tại:
https://github.com/BrightcoveOS/Diamond
http://graphite.readthedocs.org/en/1.0/tools.html
Trong bài này, tớ chỉ nói về việc làm thế nào để viết được một collector, thu thập thông tin trên các nodes và gửi metric về graphite server với một ví dụ khá đơn giản.
Diamond collector chạy trong diamond process và collect metric. Sau đó metric sẽ được published tới graphite server.
Collector là một subclasses của diamond.collector.Collector.
Để gửi metric về graphite server, bạn cần sử dụng một method được gọi là "collect"
Chúng ta có thể nhận ra rằng , classimport diamond.collector class ExampleCollector(diamond.collector.Collector): def collect(self): # Set Metric Name metric_name = "my.example.metric" # Set Metric Value metric_value = 42 # Publish Metric
self.publish
(metric_name, metric_value)
ExampleCollector(diamond.collector.Collector)
được phát triển lên từ
diamond.collector.Collector
, là một base class trong diamond.Để định nghĩa một metric, bạn cần hai tham số: tên metric và giá trị của metric. Thông thường, python dict sẽ rất hữu dụng trong trường hợp này.
Sau đó hàm
self.publish
sẽ publish metric đó tới graphite server.
Để testing một collecor, bạn cần sử dụng một file config cho diamond. Ví du, bạn có một file config cho diamond diamond.conf như sau:
Và sau đó bạn chạy lện sau:[server] user = ecuser group = ecuser handlers = diamond.handler.archive.ArchiveHandler handlers_config_path = /tmp/diamond/handlers/ collectors_path = /tmp/diamond/collectors/ collectors_config_path = /tmp/diamond/collectors/ collectors_reload_interval = 3600 [handlers] [[default]] [[ArchiveHandler]] log_file = /dev/stdout [collectors] [[default]]
# diamond -f -l --skip-pidfile -c path/diamond.conf
output sẽ có format như sau:
servers.hostname.example.my.example.metric 42
Diamond hỗ trợ việc viết thêm các colletor cho graphite một cách rất linh động. Vì vậy, bạn có thể viết thêm các collector để collect các thông tin bạn cần một cách thoải mái.
Tất cả mọi việc bạn cần làm là định nghĩa tên metric và metric value để nhập vào self.publish() method.
Hi vọng ví dụ trên giúp ích được cho bạn trong việc tim hiểu và sử dụng graphite và diamond.
--- Thanks for your reading ---
1.
Trả lờiXóa> Chúng ta có thể nhận ra rằng , class ExampleCollector(diamond.collector.Collector)
được phát triển lên từ diamond.collector.Collector , là một base method trong diamond.
METHOD????
2.
> Diamond hỗ trợ việc add thêm các colletor một cách rất linh động. Vì vậy, bạn có thể add các collector collect các thông tin bạn cần một cách thoải mái.
Tất cả mọi việc bạn cần làm là định nghĩa tên metric và metric value để nhập vào self.publish() method.
nội dung đoạn này ~= 0