Open toantd1202 opened 4 years ago
Ok cơ bản là nắm được ý tưởng. Tuy nhiên:
- Hơi ko cần thiết phần phân tích code đến từng lib, từng function
- 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 cơ bản là nắm được ý tưởng. Tuy nhiên:
- Hơi ko cần thiết phần phân tích code đến từng lib, từng function
- 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:
@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. ^^
@vtdat, anh xem ạ!!
sudo apt install python3.7
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. sudo apt-get install gcc python3-dev
pip3 install psutil
c = prometheus_client.Counter('metric_name','Description of counter')
HTTP
start_http_server(port)
OR
Flask
WSGI
của Prometheus. Nó có thể đạt được bằng cách gửi ứng dụng Flask.@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
@vtdat anh!!