[PYTHON] [Amsel-Kinesis-Stream] Überwachung von AWS KinesisStream

Dieses Plug-in erhält CloudWatch-Metriken für Kinesis Stream.

What Metrics does this plugin get?

Die Spalte Metrikname lautet MetricName.Statistics. Dies ist der Metrikname. Wie soll er verwendet werden (Summe oder Durchschnitt)? Einheit ist eine Einheit (Bytes, ms usw.).

Metric Name Unit Detail
PutRecord.Bytes Bytes Anzahl der Bytes von Elementen in Stream
PutRecord.Latency milliseconds Latenz beim Einfügen in Stream(Antwortzeit der PutRecord-API)
PutRecord.Success Count Anzahl erfolgreicher PutRecord-APIs
GetRecords.Bytes Bytes Anzahl der vom Stream abgerufenen Bytes
GetRecords.IteratorAgeMilliseconds milliseconds -
GetRecords.Latency milliseconds Latenz beim Abrufen aus Stream(Antwortzeit der GetRecords-API)
GetRecords.Success Count Erfolgsquote der GetRecords-API

Zabbix Template

Items

Bei diesem Element handelt es sich um die oben genannten CloudWatch-Metriken, die pro Sekunde berechnet werden.

Triggers

//トリガーの作成はここだけの話超苦労しました。

Aufgrund der Eigenschaften von Kinesis Stream (im Gegensatz zu Queue verschwinden Daten nicht, selbst wenn sie herausgenommen werden) ist die Größe des gesamten Streams nicht sehr sinnvoll. Wenn der Unterschied zwischen PutRecord und GetRecords zu klein (oder zu groß) als beim vorherigen Mal ist, wird er ausgelöst Ich habe versucht, es zu erhöhen, aber aufgrund der Eigenschaften, die die Verbraucherseite mit GerRecords sofort erwirbt, flattert es ziemlich stark. Als ich es zum ersten Mal vorstellte, überwachte ich es ehrlich (in der experimentellen Phase flog ich nur zu meinem Handy, also war ich verrückt).

Daher subtrahieren Sie anstelle einer einfachen Differenzüberwachung den Durchschnittswert von 3-mal (in kurzer Zeitspanne) vom Durchschnittswert von 10-mal (in langer Zeitspanne) (die Häufigkeit von Durchschnittswerten ist ein Beispiel). Ich habe es so geändert, dass eine Warnung ausgelöst wird, wenn die Differenz 25% überschreitet.

Jetzt können Sie die Klappenwerte ausgleichen und die gemittelte Differenz sehen. Nur wenn die Flussrate zum Stream (oder die herausgenommene Flussrate) extrem zunimmt oder abnimmt, können Sie erkennen, dass "Oh, etwas ist passiert".

Abhängig von den Eigenschaften der Anwendung kann es natürlich erforderlich sein, den Durchschnittswert dieser langen und kurzen Spanne zu verlängern oder zu verkürzen, daher habe ich die Spanne und den Schwellenwert in MACRO festgelegt.

Ist der Auslöser. Sie können Informationen, Durchschnittswerte und hohe Schwellenwerte angeben, um die Integration von Chat, E-Mail und Benachrichtigung zu ändern.

Graphs

Die überdurchschnittliche Differenzüberwachung ist in Worten schwer zu verstehen, sollte jedoch in Grafiken sehr leicht zu verstehen sein.

Diagramm der Rohwerte von GetRecords.Bytes

スクリーンショット_2014-12-11_2_06_20.png

Es ist ziemlich gezackt. Wenn Sie dies mit einem einfachen Unterschied zum vorherigen Vergleich überwachen, erhalten Sie viele Warnungen.

GetRecords.Bytes durchschnittliches Differenzdiagramm

スクリーンショット_2014-12-11_2_07_15.png

Dies ist ein geglättetes Diagramm, aber ich denke, es sieht ziemlich ruhig aus. Wenn Sie es tatsächlich mit einer etwas längeren Spanne betrachten und es mit der Spitzenzeit der Anwendung vergleichen, scheint die Durchflussrate so zu sein.

Als weiteres Diagramm

es gibt.

How to Install

Ich habe das RPM auf [üblicher Ort] hochgeladen (https://vagrants.github.io/blackbird/repo/yum/6/x86_64/repoview/index.html), also dieses Verfahren Erstellen Sie eine Repo-Datei unter //qiita.com/JumpeiArashi/items/849281083b6c7888f25d#case-of-using-yum),

yum install blackbird-kinesis-stream --enablerepo=blackbird

Bitte tu es.

Der Pip wird bald aktualisiert, also warten Sie bitte etwas länger > <

Gibt es nicht eine Überwachung für jeden Shard?

In CloudWatch können Sie Metriken für jeden Shard abrufen, daher möchte ich sie unbedingt implementieren (ich weiß, wo der Schlüssel abhängt), aber solange die Anwendungslogik nicht falsch ist, passiert allein der Differenzfluss. Ich denke, es ist möglich, es zu bemerken.

In Zukunft planen wir jedoch, jeden Shard zu überwachen.

Schließlich

Ich denke, Put's Throuput hat sich stark verbessert, seit die Put Records API neulich implementiert wurde, aber da sie auf der Plugin-Seite noch nicht implementiert ist, möchte ich sie so schnell wie möglich erhalten und zur Zabbix-Vorlage hinzufügen.

Recommended Posts

[Amsel-Kinesis-Stream] Überwachung von AWS KinesisStream
[blackbird-dynamodb] Überwachung von AWS DynamoDB
[blackbird-rds] Überwachung von AWS RDS
[blackbird-sqs] Überwachung von AWS SQS
[blackbird-elb] Überwachung von AWS ElasticLoadBalancing
[Amsel-Elastik] Überwachung von AWS ElastiCache (Redis)
[blackbird-aws-service-limits] Überwachung der AWS-Servicelimits
Führen Sie AWS Kinesis Firehose aus