Di jalan untuk merencanakan

Selamat siang, pembaca yang budiman! Artikel ini muncul dari upaya untuk melihat pemantauan operasional dari analitik. Ini akan bermanfaat bagi Anda jika:

  • sesuatu dari daftar berikut ini sudah dikenal: Grafana, InfluxDB, Prometheus, Zabbix, atau sistem pemantauan lain dengan ide-ide serupa;
  • Anda bukan ahli / profesional / percaya diri tengah dalam berbagai jenis tampilan seri waktu dan statistik (jika tidak, itu akan sangat membosankan bagi Anda);
  • ada keinginan untuk melihat beberapa aspek "di bawah mikroskop".

Jika Anda memutuskan bahwa persyaratan di atas terpenuhi, selamat datang di kucing.




"Tolong beritahu aku, kemana aku harus pergi dari sini?"
"Ke mana kamu mau pergi?" - jawab si Kucing.
"Aku tidak peduli ..." kata Alice.
"Maka tidak masalah ke mana harus pergi," kata si Kucing.
"... hanya untuk mendapatkan suatu tempat," Alice menjelaskan.
"Kamu pasti akan pergi ke suatu tempat," kata si Kucing. "Kamu harus pergi cukup lama."
Alice in Wonderland oleh Lewis Carroll

Petualangan dimulai ...


. , , , , . , «?» . ? , ( , )! , .



, RFC1065:



3.2.3.3. Counter

This application-wide type represents a non-negative integer which

Rose & McCloghrie [Page 8]

RFC 1065 SMI August 1988


monotonically increases until it reaches a maximum value, when it
wraps around and starts increasing again from zero. This memo
specifies a maximum value of 2^32-1 (4294967295 decimal) for
counters.

3.2.3.4. Gauge

This application-wide type represents a non-negative integer, which
may increase or decrease, but which latches at a maximum value. This
memo specifies a maximum value of 2^32-1 (4294967295 decimal) for
gauges.


, , 1988- , : . - , , , Prometheus.


. — : , , . — - . - …


UI Grafana, , , - , $__interval, , , . — , 4k. , , — . , , .


, ( ) « » . :


, “Step count” 200 300 (, , . : 10 , :

“”$group_time
InfluxQLWHERE time>now()-...GROUP BY time(...)
1h20s2
1d (24h)5m30
1w1h360
1month3h1080


, ! ( ) , , .



. ( Influx’, ):


InfluxDB, , : An instantaneous rate of change is equivalent to a derivative ( ), . , , , , (average rate of change). . , , mean ( ), , . , «» , - . , , , , , .



«» : , last, ( InfluxQL, promql ). last . , . , , 00 . non_negative_derivative(first(...)) . , , — , — : ( ) .



, ? .


mean, InfluxDB : max, min, last, , , — stddev. prometheus min_over_time, max_over_time, stddev_over_time, Influx ( , ). Last, , , , , mean: - , mean , «».


Jelas, max dan min akan bekerja secara mandiri. Tetapi bagaimana jika Anda menggabungkan keduanya dan menambahkan rata-rata ke mereka? Ternyata ide ini bukan sesuatu yang baru, pada umumnya kuno, seperti piramida. Dari contoh "klasik" dalam sistem pemantauan, saya ingat tren di Zabbix (saya sengaja mencari tautan ke versi yang lebih lama) dan Graphite Whisper Rollup , serta RRDtool sebelumnya , yang juga digunakan di Cacti , di mana karena beberapa alasan min hilang secara default. Mungkin, terlepas dari semua teks berikut, ini adalah salah satu pendekatan terbaik. Ini cukup informatif, tidak terlalu berisik, intuitif, murah dalam implementasinya, relatif universal dan tersedia di hampir semua sistem modern.



Contoh rendering serupa:
  • dalam zabbix
  • Grafana


, min mean ( max avg) , , Grafana Legend -> Values , , , .


«»


, , stddev — standard deviation, - . , , . , , «» . , (, , , , ).


, : error bar. — “ ”, 1-, 2- 3- (25% , 75% ). , ? :) , , Grafana. , pandas seaborn ( plotly).


, , « » , , . “the Datasaurus Dozen animation” Google.




, , , . , , , .


, « » . ? seaborn! , : violinplot. , « » « -» , , - , : violinplot Grafana.



: , , ? , ? ? , ? - .


, , . : Google SRE book. « » (, , ): latency, traffic, errors, saturation. , - ( ), . : saturation % 100, : 100, «» , 0 — , , , . , , — , .



, : . , , , /. (, , ): pull push. , . , , , push — Riemann-tools, pull — Prometheus.


Telegraf, (input-plugins) , (output-plugins) . , discovery-plugins— input-plugins, . , , LLD (low-level discovery) Zabbix, . «»: ( ). (, prometheus-operator), , . , , … Kubernetes, — Influxdata. - ( API/RPC) snap, , , ( , ).


, pull- -, . , . , , , . . , : (, Riemann ). . , , , , (, - ). Graphite / statsd, , , UI. Prometheus recording rules Thanos Compact, TICK- , , : Continues Queries InfluxDB TICKscript Kapacitor. , , — , Histogram Summary Prometheus, Accumulator interface Telegraf.


B , , , , :


, UI, . : , , , UI-preprocessing. , . , «» UI-preprocessing UI, , . , , / — .


« » , 3- , , . , , .



, , : Prometheus, Telegraf . , , heatmap ( ), Grafana. , « », .


Grafana


, Grafana heatmap time series buckets, , , CPU :



, :

  1. :
    ;
    latency, traffic, errors saturation.
  2. , .
  3. ( ), , , .
  4. . - Grafana ( UI ), , , , - Python JS.


Grafana ) UI; ) ; ) .


— , : , , .



, , , . . latency .


All Articles