Skip to main content

[Monitoring] StatsD

StatsD là tên của một NodeJS daemon (hay gọi khác là service), daemon này listen các message được gửi tới qua cổng UDP (mặc định là cổng 8125).

chữ d ở cuối statsd là viết tắt cho daemon, giống như cách đặt tên phổ biến cho httpd, ftpd, rsyncd ...

Từ cái tên này, có thể thấy StatsD là một daemon phục vụ cho việc thống kê (statistics). Người ta (Etsy) tạo ra StatsD để giúp cho việc thu thập dữ liệu trở nên dễ dàng hơn. Mô hình cơ bản nhất là trên 1 máy server, StatsD chạy và các webapp trên máy đó sẽ gửi các thông tin thống kê tới daemon này. StatsD chỉ phục vụ quá trình thu thập dữ liệu, sau đó nó có thể gửi tới một máy chạy graphite hay ganglia để thực hiện vẽ các đồ thị dựa trên dữ liệu thu thập được.

Điểm đáng chú ý và hay ho nhất của StatsD (tức phần daemon) là nó rất đơn giản nên được implement trên nhiều ngôn ngữ khác nhau. Có thể kể tới:
  • Etsy’s statsd: node.js. The Original
  • petef-statsd: ruby. Supports AMQP.
  • statsd_rb: ruby.
  • quasor/statsd: ruby. can send data to graphite or mongoDB
  • py-statsd: python (including python client code).
  • zbx-statsd: python, based on py-statsd. Sends data to Zabbix instead of graphite.
  • statsd.scala: scala. Sends data to Ganglia instead of Graphite. Different messaging protocol, uses JSON.
  • txStatsD: python + twisted, from the folks @ Canonical
  • estatsd: erlang. From the folks @ Opscode
  • ...
(Theo http://joemiller.me/2011/09/21/list-of-statsd-server-implementations/)

Còn phần client (tức phần code sẽ gửi dữ liệu đến statsd) thì có thể thực hiện bởi bất cứ ngôn ngữ nào. Danh sách các client library bằng nhiều ngôn ngữ khác nhau: https://github.com/etsy/statsd/tree/master/examples

Phần dữ liệu truyền đi được gọi là StatsD metric (chi tiết xem ở
https://github.com/etsy/statsd/blob/master/docs/metric_types.md )

Bài giới thiệu chính thức về statsd
http://codeascraft.com/2011/02/15/measure-anything-measure-everything/

Kiểm tra xem pystatsd đang chạy và listen port UDP 8125
root@u1204: ~ () # ss -nlpu | grep 8125
UNCONN     0      0                 127.0.0.1:8125                     *:*      users:(("pystatsd-server",22404,3))
Lần tới bạn viết một webapp, hãy nhớ tích hợp statsd client vào và luôn sẵn sàng gửi đi các thông tin bạn cần đo đếm!

Comments

  1. test,
    +Lam Tung có làmgifko mà giwo cái comment trông nó lạ thế này =.=

    ReplyDelete

Post a Comment

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG