LoginSignup
3
1

Mackerel の OpenTelemetry(ラベル付きメトリック)をオンプレサーバで試した備忘録

Posted at

動機

今更ながら Mackerel で OpenTelemetry(ラベル付きメトリック)を試したくなったが、探しても Docker + ECR とか K8S とか最近流行りの情報ばかり出てきて、現在の社内サーバの状況には合わなかったため、備忘録としてまず Nginx のラベル付きメトリックを投稿できるところまで書いておく。

サーバ情報

  • OS : Rocky Linux 8
    • まぁ使い始めてしまったのでしょうがない
  • Nginx : 1.22.1

Nginx の準備

適当に stub_status を出せる location を用意。
(OpenTelemetry の nginx receiver が http_stub_status を元に投稿するらしいので)

/etc/nginx/conf.d/status.conf
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 のチュートリアル 通りに進めるだけ。

/etc/otelcol-contrib/config.yaml
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

確認

あとはチュートリアルの通り、カスタムダッシュボードを作成してグラフを作るだけ。

スクリーンショット 2024-03-26 15.11.55.png

http_stub_status で取れる情報はあまり多くもないので、OpenTelemetry 用の module を入れたりすればより多くの情報が可視化できるようになると思われる。

感想

今まで使ってきた Mackerel にそのまま PromQL で出せるグラフを投げつけられるのはやはり便利そう。
既存の mackerel-agent や plugin によるグラフ資産とも競合してしまう部分ではあるので、今後のアップデートに合わせて移行・共存していければいいなぁと思う。
特に課金体系が気になる・・・うちはホストが多めなのでホストメトリックとしてカウントしてもらえるとありがたい:innocent:

終わりに

ねこじゃらしでは人材募集中です。
https://www.green-japan.com/company/2706

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1