En camino a trazar

Buenas tardes, querido lector! Este artículo surgió de un intento de observar el monitoreo operativo desde el análisis. Te será útil si:

  • algo de la siguiente lista es familiar: Grafana, InfluxDB, Prometheus, Zabbix u otro sistema de monitoreo con ideas similares;
  • No es un medio experto / profesional / seguro en varios tipos de visualización y estadísticas de series de tiempo (de lo contrario, probablemente será aburrido para usted);
  • existe el deseo de ver algunos aspectos "bajo el microscopio".

Si decide que se cumplen las condiciones anteriores, bienvenido a cat.




"Dime, por favor, ¿a dónde debo ir desde aquí?"
"¿A donde quieres ir?" - respondió el gato.
"No me importa ..." dijo Alice.
"Entonces no importa a dónde ir", dijo el gato.
"... solo para llegar a algún lado", explicó Alice.
"Seguro que irás a algún lado", dijo el gato. "Solo tienes que ir lo suficiente".
Alicia en el país de las maravillas de Lewis Carroll

El viaje comienza ...


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



, 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 , «».


Obviamente, max y min funcionarán más o menos independientemente. Pero, ¿qué pasa si combina estos dos y les agrega el promedio? Resulta que esta idea no es algo nuevo, generalmente es antigua, como las pirámides. De los ejemplos "clásicos" en los sistemas de monitoreo, recuerdo las tendencias en Zabbix (busqué intencionalmente un enlace a una versión anterior) y Graphite Whisper Rollup , así como el RRDtool anterior , que también se usó en Cacti , donde por alguna razón faltaba min por defecto. Quizás, a pesar de todo el texto siguiente, este es uno de los mejores enfoques. Es bastante informativo, no demasiado ruidoso, intuitivo, económico de implementar, relativamente universal y disponible en casi todos los sistemas modernos.



Ejemplos de renderizado similar:
  • en 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