🎄

OpenTelemetry デモアプリケーションを使って Mackerel のメトリックエクスプローラーを体験

2024/12/14に公開

本記事は以下の14日目のエントリです。

予告通り、タイトルの記事↓をなぞりました。
https://mackerel.io/ja/blog/entry/opentelemetry-demo-application

↓のウェビナーでの話を聞いて、やっておこうって思ってました。
https://mackerelio.connpass.com/event/337110/

OpenTelemetry、ちょっとだけ始めてみてはいたんですが、まだまだ、だったので。

まずはデモ動画を見ました

ふむふむ、なるほど。最後にアラート出て良かったですね。

https://www.youtube.com/watch?v=enoQCnVPrOM&t=3357s

ローカルにセットアップ

なんだか初回失敗してたけど、単純にやり直して2回目で起動成功。

Mackerel と Vaxila にテレメトリを送る設定を追加

これも1回目見逃しがあってMackerelにうまくテレメトリ送れてなかったんですが、解決できました。

src/otelcollector/otelcol-config.yml の差分

MACKEREL_API_KEY の指定は docker-compose.yml に追記しました。

docker-compose.yml の差分

これで起動したら、おおお・・・徐々にメトリクスが入ってきてる感じが。


実はだいぶ時間経過してから↑のスクショ採取したんですが

Vaxila に入ってきた Trace、可視化されたの初めて見ました。 Trace の投げ方はもうちょっと深掘って年内くらいには把握したい。

Trace 可視化を体験できた記念

ラベルによるフィルタリングと監視ルール設定

実は書いてある通りに app.frontend.requests のメトリクス見つけられなくて、監視設定にはなんだかだんだん増えてた feature_flag.flagd.evaluation.reason{service.name="flagd"} を使いました。

こんな感じ。アラートも妥当に通知されてきて、閾値少しずつ上げてみるなどした。

障害発生検知を試す

OpenTelemetry デモアプリケーションでは、フィーチャーフラグによって意図的に特定のコンポーネントの障害を発生させることができます。 とのことなので、やってみました。

src/flagd/demo.flagd.json を弄ってフィーチャーフラグの変更

するとまもなく、めっちゃエラーが発生。Vaxila に飛んできました。
殺到感がすごかったので、ちょっと置いたらすぐに off に修正。保存したら止まりました。

エラー通知がすごかった

という感じで、OpenTelemetry を体験できました。
テレメトリの投げ方を覚えれば、やっていけそう、と思いました。いい体験できました。

最後まで読んでいただきありがとうございました。

明日15日目の予定は以下になっています。お楽しみに。

脚注
  1. 13日目は @rymatsuoka さんの Span Metrics Connector で SQL のクエリの処理時間を計測する でした。 ↩︎

  2. 13日目は @katzchang さんの OpenTelemetry SDKのSplunk Distroについて解説します (12/14 18:00 時点で未完成) でした。 ↩︎

Discussion