toantd1202 / Prometheus_new

0 stars 0 forks source link

Create collecter.md #14

Open toantd1202 opened 4 years ago

toantd1202 commented 4 years ago

@vtdat anh!!

toantd1202 commented 4 years ago

Ok cơ bản là nắm được ý tưởng. Tuy nhiên:

  1. Hơi ko cần thiết phần phân tích code đến từng lib, từng function
  2. 1 người có rất ít base về network như anh đọc sẽ không biết netstat và snmp là 2 files gì, chưa cần chi tiết đến từng thông số nhưng ít nhất nên tóm tắt được 2 files ấy chứa thông tin về cái gì

Giờ anh giao task code 1 exporter expose các metrics về network bằng python liệu có làm được ko?

vâng, cho em thử ạ!

vtdat commented 4 years ago

Ok cơ bản là nắm được ý tưởng. Tuy nhiên:

  1. Hơi ko cần thiết phần phân tích code đến từng lib, từng function
  2. 1 người có rất ít base về network như anh đọc sẽ không biết netstat và snmp là 2 files gì, chưa cần chi tiết đến từng thông số nhưng ít nhất nên tóm tắt được 2 files ấy chứa thông tin về cái gì

Giờ anh giao task code 1 exporter expose các metrics về network bằng python liệu có làm được ko?

vâng, cho em thử ạ!

OK lên checklist cho a những thứ cần sử dụng, các step cần làm trước nhé. V.D:

toantd1202 commented 4 years ago

@vtdat anh ơi!!

prom lib: prometheus_client

Em đang tìm thêm thư viện về network của py. Em phân vân dùng socket hay urllib, hay là giống node exporter mở file /proc/net/netstat lấy dữ liệu ạ?

Flask, nếu chỉ expose các metrics về network thì có cần flask k anh, em thấy hình như không cần lắm. ^^

toantd1202 commented 4 years ago

@vtdat, anh xem ạ!!

Checklist

Công cụ

Tiến hành

1.Thư viện sử dụng

    sudo apt-get install gcc python3-dev
    pip3 install psutil

2. Thực hiện

a. Định nghĩa metric

b. Expose

HTTP

OR

Flask

c. Collectors

vtdat commented 4 years ago

@vtdat, anh xem ạ!!

Checklist

Công cụ

  • Python3

    • install: sudo apt install python3.7
  • editor

    • pycharm

Tiến hành

1.Thư viện sử dụng

  • prometheus_client: pip install prometheus_client

    • Counter: Dùng cho một metric trong đó giá trị chỉ có thể tăng theo thời gian; Giá trị này được đặt lại về 0 khi khởi động lại.
    • Gauge: Dùng cho metric trong đó giá trị có thể tùy ý tăng giảm theo thời gian.
    • start_http_server: Hiển thị số iệu qua HTTP.
  • psutil: Nó được sử dụng để giám sát hệ thống, định hình và giới hạn tài nguyên quy trình và quản lý các quy trình đang chạy. Lấy thông tin về các quy trình đang chạy và sử dụng hệ thống (CPU, memory, disks, network, sensors) trong Python.
  sudo apt-get install gcc python3-dev
  pip3 install psutil

2. Thực hiện

a. Định nghĩa metric

  • Metric name, metric type: ví dụ: c = prometheus_client.Counter('metric_name','Description of counter')

b. Expose

HTTP

  • Xác định cổng exposed. start_http_server(port)

OR

Flask

  • Prometheus với Flask, cần cung cấp các số liệu thông qua ứng dụng WSGI của Prometheus. Nó có thể đạt được bằng cách gửi ứng dụng Flask.

c. Collectors

  • GaugeMetricFamily('name','Help text', value or labels), CounterMetricFamyly('name','Help text', value or labels)
  • set(psutil.metric_name())

tạo repo mới đi, xong tạo issue mới liên quan đến chỗ này luôn