12章exporterの書き方
アプリケーションにダイレクトインストルメンテーションを追加できず、アプリケーションを対象とする既存のexporterも見つからない場合がある。そうなれば、自分でexporterを書かなければならない。幸い、exporterは比較的簡単に書ける。難しいのは、アプリケーションが開示するメトリクスの意味を明らかにすることだ。単位はわからず、ドキュメントはあったとしても曖昧なことがある。この章では、の書き方を学ぶ。
12.1 Consulのtelemetry
ここでは、Consulのための小さなexporterを書くことにする。Consulについては、すでに「10.1 Consul exporter」でConsul exporterのバージョン0.3.0を紹介しているが、このバージョンは、新しく追加されたtelemetry APIのメトリクスをサポートしていない†1。
[†1] Consul exporterのバージョン0.4.0ではこれらのメトリクスもサポートされるだろう。(監訳注:2018年8月にリリースされたバージョン0.4.0で、これらのメトリクスはサポートされなかった。)
exporterはどのプログラミング言語でも書けるが、大半はGoで書かれており、この章でもGoを使うことにする。しかし、少数ながらPythonで書かれているexporterも見かけるだろうし、さらに少数だがJavaによるものもある。
Consulが実行されていないなら、例8-6に従ってもう1度起動しておこう。http://localhost:8500/v1/agent/metricsに移動すると、相手にすることになるJSON出力がわかる(例12-1参照)。幸い、Consulは自由に使えるGoライブラリを提供しており、このJSONを自分でパースする必要はない。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access