في الطريق إلى التآمر

مساء الخير عزيزي القارئ! نشأت هذه المقالة من محاولة للنظر في المراقبة التشغيلية من التحليلات. سيكون من المفيد لك:

  • شيء من القائمة التالية مألوف: Grafana ، InfluxDB ، Prometheus ، Zabbix ، أو نظام مراقبة آخر بأفكار متشابهة ؛
  • أنت لست وسطًا خبيرًا / محترفًا / واثقًا في أنواع مختلفة من عرض السلاسل الزمنية وإحصائياتها (وإلا ، فمن المحتمل جدًا أن تكون مملة بالنسبة لك) ؛
  • هناك رغبة في النظر إلى بعض الجوانب "تحت المجهر".

إذا قررت استيفاء الشروط المذكورة أعلاه ، نرحب بك في القط.




"قل لي ، من فضلك ، أين يجب أن أذهب من هنا؟"
"أين تريد أن تذهب؟" - أجاب القطة.
قالت أليس "لا أهتم ...".
قال القطة "ثم لا يهم أين تذهب".
وأوضحت أليس "... فقط للوصول إلى مكان ما".
قال القطة: "من المؤكد أن تذهب إلى مكان ما". "عليك فقط الذهاب لفترة طويلة بما فيه الكفاية."
أليس في بلاد العجائب بواسطة لويس كارول

تبدأ الرحلة ...


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



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


من الواضح أن الحد الأقصى والدقيقة سيعملان بشكل مستقل. ولكن ماذا لو قمت بدمج هذين وإضافتهما إلى المتوسط؟ اتضح أن هذه الفكرة ليست شيئًا جديدًا ، فهي قديمة بشكل عام ، مثل الأهرامات. من الأمثلة "الكلاسيكية" في أنظمة المراقبة ، أتذكر الاتجاهات في Zabbix (بحثت عن قصد عن رابط إلى إصدار قديم) و Graphite Whisper Rollup ، بالإضافة إلى أداة RRDtool السابقة ، والتي تم استخدامها أيضًا في Cacti ، حيث لسبب ما كان مفقودًا بشكل افتراضي. ربما ، على الرغم من كل النص التالي ، يعد هذا أحد أفضل الأساليب. إنه غني بالمعلومات تمامًا ، وليس صاخبًا جدًا ، وبديهيًا ، ورخيص التنفيذ ، وعالميًا نسبيًا ومتاح في جميع الأنظمة الحديثة تقريبًا.



أمثلة على العرض المماثل:
  • في زبكس
  • 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