動機
今更ながら Mackerel で OpenTelemetry(ラベル付きメトリック)を試したくなったが、探しても Docker + ECR とか K8S とか最近流行りの情報ばかり出てきて、現在の社内サーバの状況には合わなかったため、備忘録としてまず Nginx のラベル付きメトリックを投稿できるところまで書いておく。
サーバ情報
- OS : Rocky Linux 8
まぁ使い始めてしまったのでしょうがない
- Nginx : 1.22.1
Nginx の準備
適当に stub_status を出せる location を用意。
(OpenTelemetry の nginx receiver が http_stub_status を元に投稿するらしいので)
server {
listen 80;
server_name localhost;
location = /status {
stub_status;
}
}
# curl http://localhost/status
Active connections: 2
server accepts handled requests
70704 70704 70828
Reading: 0 Writing: 1 Waiting: 1
OpenTelemetry Collector Contrib のインストール
ここがあまり情報出てこなくて色々つまづいた。
OpenTelemetry 公式に RPM installation の項目 もあるが、ここでインストールできる otelcol
では nginx の receiver が入っていないため使えない。
使うのは OpenTelemetry Collector Contrib のほう。
https://github.com/open-telemetry/opentelemetry-collector-releases
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.96.0/otelcol-contrib_0.96.0_linux_amd64.rpm
yum install ./otelcol-contrib_0.96.0_linux_amd64.rpm
設定ファイルなどは /etc/otelcol-contrib/
に入る。
# ls -l /etc/otelcol-contrib/
合計 12
-rw-r--r-- 1 root root 424 3月 26 14:40 config.yaml
-rw-r--r-- 1 root root 1461 3月 5 19:48 config.yaml.bk
-rw-r--r-- 1 root root 246 3月 5 19:48 otelcol-contrib.conf
Mackerel 向けに設定して起動
ここまで来たらほぼ Mackerel のチュートリアル 通りに進めるだけ。
receivers:
nginx:
endpoint: "http://localhost:80/status"
collection_interval: 10s
processors:
batch:
timeout: 1m
exporters:
otlp/mackerel:
endpoint: otlp.mackerelio.com:4317
compression: gzip
headers:
Mackerel-Api-Key: "insert your Mackerel API Key (write)"
service:
pipelines:
metrics:
receivers: [nginx]
processors: [batch]
exporters: [otlp/mackerel]
設定ファイルの解説についてはチュートリアルに詳しく書いてあるのでそちらを。
ここにある receiver.nginx
が Contrib じゃないと入ってないので動かず、しばらく悩んでしまった。
API Key はベタ書きにしているが、OS 環境変数に入れるなどしたほうがいいかも知れない。
設定したら再起動。
systemctl restart otelcol-contrib.service
確認
あとはチュートリアルの通り、カスタムダッシュボードを作成してグラフを作るだけ。
http_stub_status で取れる情報はあまり多くもないので、OpenTelemetry 用の module を入れたりすればより多くの情報が可視化できるようになると思われる。
感想
今まで使ってきた Mackerel にそのまま PromQL で出せるグラフを投げつけられるのはやはり便利そう。
既存の mackerel-agent や plugin によるグラフ資産とも競合してしまう部分ではあるので、今後のアップデートに合わせて移行・共存していければいいなぁと思う。
特に課金体系が気になる・・・うちはホストが多めなのでホストメトリックとしてカウントしてもらえるとありがたい
終わりに
ねこじゃらしでは人材募集中です。
https://www.green-japan.com/company/2706