
Vor einigen Monaten hat Google OpenCensus vorgestellt – eine herstellerneutrale Open-Source-Bibliothek für Telemetrie und Tracing. Mit OpenCensus erfassen Sie mühelos Metriken aus Ihrer Anwendung und verfolgen den Verlauf von Requests.
In den meisten Fällen lässt sich klar zwischen dem Erfassen der Daten und dem Export an Tracing- und Monitoring-Systeme trennen. Sobald Sie OpenCensus im Projekt einsetzen und feststellen, welche Metriken für Sie besonders relevant sind, können Sie zwischen verschiedenen Monitoring-Systemen wechseln oder mehrere parallel betreiben – ohne an Ihrer Erfassungslogik etwas zu ändern.
Bei DoiT International arbeiten wir derzeit an einer Referenzarchitektur samt konkreter Implementierung einer Event-Analytics-Pipeline (noch in Arbeit – einen ersten Blick können Sie aber bereits hier werfen).
Unsere API schreiben wir in Go, und wir wollten den Nutzern Einblick in das System sowie in einige eigene Metriken geben, die wir bereitstellen möchten. Früher musste man sich auf ein Monitoring-System festlegen, und ein späterer Wechsel kostete Zeit (und Geld). Doch was tun, wenn Sie ein Open-Source-System bauen und vorab nicht wissen, wo und wie es deployed und überwacht werden soll?
Mit OpenCensus müssen Sie so gut wie nichts vorab entscheiden. Die Wahl des Monitoring-Systems ist nicht fest verdrahtet, und Sie können sogar mehrere Monitoring- oder Erfassungssysteme parallel nutzen.
Um die Metriken an das Monitoring-System Ihrer Wahl zu liefern, brauchen Sie lediglich einen neuen Exporter anzulegen und zu registrieren:
https://gist.github.com/avivl/15fd071ca0212838aebec2e45430eb1c
Auch das Anlegen von Metriken ist denkbar einfach – Sie legen lediglich Typ und gewünschte Darstellung fest:
https://gist.github.com/avivl/32ed40cbbfb8bbc07e3b3ae07a161251
Damit sind Sie bereit, Metriken zu erfassen: Rufen Sie einfach die Methode Record auf und übergeben Sie die benötigten Daten.
https://gist.github.com/avivl/f49969508a846fbf0abd1a7a37825c52
Wie Sie in den folgenden Diagrammen sehen, werden die Metriken sowohl an Prometheus als auch an Stackdriver exportiert und in beiden Systemen visualisiert:
Prometheus- Grafana Dashboard
Stackdriver Dashboard
Lust auf mehr? Schauen Sie in unseren Blog oder folgen Sie Aviv auf Twitter.