TICK Stack

von Bernd Waibel

Was ist TICK Stack

TICK Stack ist ein (weiteres) Monitoring und Auswertungs-Tool. Es basiert auf der InfluxDB von influxdata, die folgende Vorteile verspricht:

  • InfluxDB is a time series database designed to handle high write and query loads.

  • Real-time visibility into stacks, sensors and systems.

Die Influx Produkte gibt es kostenlos, oder aber als Enterprise Variante.

Welche Komponenten hat der TICK Stack?

Der TICK Stack ergibt sich aus den Komponenten:

  • (T)elegraf
  • (I)nfluxDB
  • (C)hronometer
  • (K)apacitor

Folgendes Schaubild verdeutlicht die Komponenten:

Quelle: influxdata

Welche Aufgaben hat der TICK Stack?

Quelle: influxdata

Use Cases

Wir haben uns folgende Use Cases umgesetzt

  1. Sandbox zum Laufen kriegen
  2. Daten für TICK Stack erzeugen
    1. Visualisierung verschiedener Quellen
    2. Wetterstationen
  3. Stress Test
    1. Bestehendes Beispiel ausführen und werten
  4. Anbindung einer eigenen Anwendung
    1. SpringBoot Anwendung
  5. Bestehende Anwendung überwachen
    1. MySQL, Apache HTTP mit Benachrichtigung (Alert)
  6. Cloud verwenden
    1. AWS Amazon Beispiel

Wie waren die Erfahrungen?

Topic

Bewertung

Lernkurve

Lernkurve war niedrig

Einfach, es gibt ein Sandbox Beispiel (Basis Docker) das auch funktioniert.

Die Anwendungsoberfläche leistet erstmal viel.

Gefühlte
Werte

Der Hauptspeicherbedarf war enorm.

Kleine Konfigurationsfehler bewirken ein komplette „tut nicht“.

Die Konfiguration ist nicht einheitlich (mal als Konfigurationsdatei, mal über Umgebungsvariablen).

Als Production-ready empfinden wir es nicht: Der Hauptspeicherbedarf ist enorm, Restart oft notwendig, oft tut was nicht und "reset" ist die einzige Möglichkeit.
Eventuell ist die DB „production-ready“, und die anderen Komponenten benötigen noch Arbeit.

Anbindung
eigener
Anwendungen

Über eine Standardprotokoll (statsD) einfach.

Anwendung muss nichts über TICK wissen.
Damit ist TICK dann austauschbar.

Resümee

So, und nun, würden wir es nutzen oder empfehlen?

Topic
Bewertung
Umgebung Die Umgebung ist schnell und leicht aufgesetzt, das Sandbox Beispiel ist ein einfacher Einstieg.
Ein PoC wäre einfach.
Cloud Ready

Das ganze ist dank der AWS Examples auch als "cloud-ready" einzustufen. Hier zeigt sich jedoch, dass es an der aktualität der Beispiele und des "kostenlosen" Beispiel Codes entscheidend ist.

Genau da, wo diese nicht funktionenern, oder inkosistent sind und auf alten Versionen aufbauen, scheitert man, und benötigt dann viel Zeit.

Das hat auch, aber nicht nur, mit AWS Problemen und genutzten Frameworks (helm, tiller) zu tun, die dann nicht mehr aktuell sind oder eigene Bugs mitbringen.

Datenbank
InfluxDB

Die Datenbank ist performant, und wird kommerziell weiterentwickelt (Enterprise Lizenz). Hier zeigt sich eine gute Performanz.

Allerdings wird deutlich mehr (>10G) an Speicher verwendet als in den AWS Empfehlungen (8B) empfohlen wird.

Chronograph

Die Visualisierung wirkt nicht ganz passend zu den anderen Produkten.

Die Konfiguration erfolgt hier via Umgebungsvariablen, nicht via config-file.

Wenn man in InfluxDB ein Kennwort setzt, kommt Chronograph nicht mehr weiter. Es verwendet ein eigenens User/Security Konzept.

Im Gegensatz zu Telegraf werden hier keine Plugins verwendet, alle sind hard-coded.
Wir wollten gerne MS Teams anbinden, das hierfür entwickelte OpenSource Plugin muss jedoch per Merge Request in das Produkt eingebaut werden. Und dieser Request ist schon 6 Monate alt.
Der Entwickler hat ein bisschen entnervt aufgegeben.

Nun ja, und es geht auch anders (Grafana, Kibana, …)

Telegraf Verwendet Plugins, und unterstützt die wichtigsten und gängigsten Schnittstellen, wie z.B. statsD.
Kapacitor Hier zeigt sich, dass sehr wenig konfiguriert werden kann.

 

Highlights

Während eines CodeCamps geht man irgendwie immer davon aus, dass GitHub sowas ist wie die "alte" Telefonie: immer verfügbar. Falsch.
So sehen wir zum ersten Mal ein rosa Einhorn. Meine Tochter wäre begeistert gewesen...

Zurück