Prometheusのexporterのメトリックをcarbon-clickhouseに登録する

はじめに

Prometheusのexporterのメトリックをcarbon-clickhouseに登録しようとして調べてみた際のメモです。 実際に調べたのは、prometheus/node_exporter: Exporter for machine metricsだけなので、他のexporterだと違うことがあるかもしれません。

prometheus/prometheus: The Prometheus monitoring system and time series database.のソースも拾い読みしましたが、レポジトリがいろいろ分かれていて、正しい箇所を見れているかは不明です。

Prometheusのexporterが出力するメトリックの形式

テキスト形式

Protocol Buffers形式

Protocol Buffersは以下protobufと略します。

carbon-clickhouseへのメトリック登録

go-graphite/carbon-clickhouse: Graphite metrics receiver with ClickHouse as storage

Graphiteのplaintext形式でのデータ登録

Prometheusの形式でのメトリック登録

ClickHouseでのデータ格納形式

Goでcarbon-clickhouseのパッケージを使う際の注意

レポジトリのURLは https://github.com/go-graphite/carbon-clickhouse だが、go.mod#L1module github.com/lomik/carbon-clickhouseと指定されている。Goからこのパッケージを使う際にはこのmoduleのパスのほうを指定する必要があるので要注意。

データ参照はgrahite-clickhouseを使う

試してみたコード

環境構築用Ansible playobok

hnakamur/carbon-clickhouse-ansible-playbook

exporterからのデータをcarbon-clickhouseに登録するサーバー

https://github.com/hnakamur/prometheus-exporter-to-carbon-clickhouse-relay