Gnocchi ist eine time series database die aus dem OpenStack Projekt hervorgegangen ist. Da Gnocchi erst 2014 entstanden ist, wurde versucht die Schwächen vorhandener Lösungen zu umgehen. Im Vergleich fallen mir vor allem folgenden Features auf:
- Mandantenfähigkeit
- Skalierbarkeit
- Hochverfügbarkeit
- REST Interface (HTTP)
- Unterstützung moderner Backends wie Ceph (librbd), Swift und S3
- OpenSource
Ein weiters Feature ist die Unterstützung von archive policies. Diese legen fest wie lange und in welcher Granularität Metriken vorgehalten werden. Zusätzlich kann auch die Art der Aggregation definiert werden. Sendet man den unten stehenden json Text per HTTP an /v1/archive_policy wird z.B. eine Policy angelegt die Metriken mit einer Granularität von 5 Minuten für 62 Tage speichert und dafür 17856 Punkte benötigt (12 Metriken je Stunde * 24 Stunden * 62 Tage = 17856). Zusätzlich werden die Metriken in aggregierter From für 365 und 3650 Tage gespeichert.
{ "name": "router-metriken", "back_window" : 0, "definition" : [ { "points" : 17856, "granularity" : "00:05:00", "timespan" : "62 days, 0:00:00" }, { "points" : 8760, "granularity" : "1:00:00", "timespan" : "365 days, 0:00:00" }, { "points" : 3650, "granularity" : "24:00:00", "timespan" : "3650 days, 0:00:00" } ], "aggregation_methods" : [ "min", "max", "mean", "sum" ] }
Welche archive policy für einzelne Metriken angewendet wird kann über rules bestimmt werden. Neue Metriken werden per Regex geprüft und ggf. einer Policy zugewiesen. Treffen mehrer Regeln greift der längste Regex. Mit der folgenden Regel werden alle Metriken die mit router beginnen zu der oben definierten Policy hinzugefügt.
{ "archive_policy_name": "router-metriken", "metric_pattern": "router.*", "name": "router-metriken" }
Mein erster Eindruck von Gnocchi ist durchaus positiv und mit den genannten Features kann sich die OpenStack Lösung von der Konkurrenz abheben. Aktuell ist Gnocchi wohl am besten für die Bedürfnisse von OpenStack ausgelegt. Es gibt aber auch Integrationen zu collectd, statsd, Icinga und Grafana.

0 Comments