MackerelはCloudNative Daysにツールスポンサーしてゐる。その繫がりで、Mackerelの開發者の一員でもある私は、CloudNative Daysのオブザーバビリティチームに參加してゐる。先日CloudNative Days Winter 2024 (CNDW2024)が開催された。そこでのMackerelの使ひ方を紹介したい。CNDW2024を聽講した事はCloudNative Days Winter 2024 #CNDW2024 - c4se記:さっちゃんですよ☆に書いた。
オブザーバビリティチームの仕事は、
- CloudNative Daysで獨自に開發・運用してゐる配信基盤である「dreamkast」のオブザーバビリティ基盤を構築・運用する
- 技術 stack
- さくらのクラウド
- Terraform
- Sentry
- Loki
- Grafana
- Mackerel
- CloudNative Daysを支える Observabilityの取り組み 2023年度編 - Speaker Deckにも紹介されてゐる
- (當記事の題名はこのslideに寄せた訣だ)
- 技術 stack
- CloudNative Daysといふイベントのテレメトリ、CFPの應募狀況や配信の視聽狀況等を、Grafanaのダッシュボードに見せ公開する
- 技術 stask
- さくらのクラウド
- Terraform
- Prometheus
- Grafana
- 技術 stask
である。この記事はMackerelに話題を絞る。
MackerelはCNDS2024からツールスポンサーしてゐる。それからMackerelを使ってやった事は、
- ECSで動く (CNDW2024でEKSから移行) dreamkastのメトリックをmackerel-container-agentで觀測
- dreamkastの使ふAWSのサービスを、AWSインテグレーションで觀測
- さくらのクラウドで動くオブザーバビリティチームのサーバーをmackerel-agentで觀測
- 監視ルールで閾値に對して監視
- 當日に眺めるカスタムダッシュボードを作成
- おまかせ生成機能が助かった
- グラフにコメントを附してSlackに共有できる機能は私は便利だと思ってゐる
といふ普通のMackerelユーザーとして過ごしてゐる。
Sentryは、Docker、PostgreSQL、Redis、Kafkaを使ってゐる。Docker、PostgreSQL、Redisはmackerel-agentのpluginが有りそれで觀測できる。Kafkaに對しては專用のpluginが無く、Prometheus用のexporterからGitHub - k1LoW/mackerel-plugin-prometheus-exporter: :fish: Mackerel plugin for scraping Prometheus exporter metrics. :fire:で變換してMackerelに投稿してゐる。これに關聯して小話が有って、
- KafkaのPrometheus exporterはcommit log stream每にメトリック (kafka_consumergroup_members_XXX) を作る
- commit log streamはメッセージを捌くと切り替はってゆく
- Sentryに大量のトレースが送られる (これ自體が計裝のbugだったのだが) 時期が有り、commit log streamが次々切り替はり、Prometheus exporterは次々と新しいメトリックをMackerelに投稿する
- 或るグラフのグラフ定義といふデータが一週閒で數十萬個に肥大化する
- ホスト詳細ページを開くと500 ISEになるホストができあがる
- グラフ定義を消そうにも、やはり500 ISEになり消せない
情けない事にかうなってしまった。そこで、
- kafka_consumergroup_members で始まるメトリックは、監視對象でもないので除く
- mackerel-plugin-prometheus-exporterをwrapした
- Mackerelの開發者でもある私が、Mackerelのcodeを修正して、大きなグラフ定義を消せるやうにし、そしてグラフ定義を消した
- 開發者が參加してゐるとかういふ利點も有る…利點か? まぁ利點ではあるか
今後は計裝の基盤をOpenTelemetryに切り替へて、Mackerelの新機能を使っていかうと思ふ。