Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
オブザーバビリティの Primary Signals
Search
Takafumi ONAKA
PRO
April 10, 2024
Technology
6.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オブザーバビリティの Primary Signals
2024-04-10 OpenTelemetry Observability運用の実例 Lunch LT
https://findy.connpass.com/event/313260/
Takafumi ONAKA
PRO
April 10, 2024
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
その Valkey 使いこなしていますか?
onk
PRO
5
2.4k
Hono x Inertia.js x Cloudflare_Workers
onk
PRO
0
22
気づけばこうなる運用 ~運用現場の現実と理想~
onk
PRO
0
110
プラットフォームを作る、プラットフォームを変える
onk
PRO
0
92
強いチームと開発生産性
onk
PRO
44
18k
ADRを運用して3年経った僕らの現在地
onk
PRO
22
26k
1文字エイリアスのすゝめ
onk
PRO
0
160
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
1
1.6k
Cache Stampede
onk
PRO
1
2.5k
Other Decks in Technology
See All in Technology
「AIチャットからもできないの?」と言われたら ~業務アプリをMCP対応するときの認証・認可の勘所
oidfj
0
290
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
360
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3.2k
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
0
160
GCASアップデート(202607-202610)
techniczna
1
250
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
210
[dbts2026]数十PBの超巨大データ×AI活用を支えるSnowflakeの実力〜大規模環境におけるアーキテクチャと運用のリアル〜
y_matsubara
0
130
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
660
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
1
460
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
230
思考過程から秘密が漏れる:Amazon Bedrock上のKimi K3を5つの方法で攻めたら、25回中22回漏洩した話
yama3133
1
110
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
BBQ
matthewcrist
90
10k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
520
Making the Leap to Tech Lead
cromwellryan
135
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Un-Boring Meetings
codingconduct
0
490
Design in an AI World
tapps
1
390
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Transcript
オブザーバビリティの Primary Signals id:onk 2024-04-10 OpenTelemetry Observability運用の実例 Lunch LT 1
自己紹介 • 大仲 能史 a.k.a. id:onk • 株式会社はてな ◦ チーフエンジニア
◦ Mackerel開発チーム 2
3
4
5 今日の話
6 オブザーバビリティの Primary Signals
オブザーバビリティのPrimary Signals 7 https://github.com/cncf/tag-observability/blob/whitepaper-v1.0.0/whitepaper.md
オブザーバビリティのPrimary Signals • Metrics: システムの健康状態を高レベルで示す • Logs: イベントの詳細を提供する • Traces:
リクエストの流れを追跡する • … 8
9 Primary Signalsは、大局 から詳細までシステムを多 角的に理解するために必要
メトリックの良いところ • パフォーマンス、効率性 ◦ ログやトレースを大量に収集・分析するのは重い ◦ お金がかかる 10 https://dev.henry.jp/entry/observability-and-cost
メトリックの良いところ • 監視やトレンド分析の容易性 ◦ 数値なので異常値の検出やアラート設定が容易で、 監視しやすい、可視化しやすい ◦ ダッシュボードを構築して、システムの健康状態を 一目で把握できる ◦
長期的なパフォーマンス変化を追跡できる 11
最近目にするオブザーバビリティ • トレース・ログに重心が寄っている ◦ メトリックは既存の監視で既にカバーされている領域 ◦ オブザーバビリティを高めるには、現状のメトリックだ と詳細度が足りないことも多い • とはいえPrimary
Signalsなので大事 ◦ コストが安いし、キャパシティプランニングや ふりかえりに必要 12
Primary Signals • メトリック ◦ システム全体の健康とパフォーマンスの概要 システムが期待通りに機能しているかを把握する • ログ ◦
何が起きているか、どのように発生しているのかの詳細 • トレース ◦ システムの内部動作とリクエストの流れを理解するビュー 複雑な問題の診断に有効 13
14 OpenTelemetryで メトリックを収集する
OpenTelemetryでメトリックを収集 • 既存の監視が既に構築されている ◦ メトリックを収集できていて、直ちに困ってはいない • OpenTelemetryになるとここが嬉しい ◦ メトリックがAttributeを持つのでO11yを高めやすい ◦
将来的にOTelがメトリック収集方法の標準になる見込み ◦ 他のテレメトリーデータとの相互操作性 ▪ 例えばメトリックの異常値からトレースに簡単に遷移するとか 15
16 どうやって始めれば?
17 OpenTelemetry Collectorを使え
OpenTelemetry Collector 18 https://opentelemetry.io/docs/collector/ https://opentelemetry.io/docs/
OpenTelemetry Collector • Receiver ◦ Collectorがデータを受信する方法を提供する ◦ LISTENするだけじゃなく、ポーリングも可能 19
ホストメトリックの計装 • ホストメトリック ◦ CPU使用率 ◦ メモリ使用率 ◦ ディスク使用率 ◦
ネットワーク I/O ◦ … 20
ホストメトリックの計装 • Host Metrics Receiverを使う • OpenTelemetry Collectorのreceiversに設定 すると、自身のホストメトリックを収集できる 21
ホストメトリックの計装 22 https://mackerel.io/ja/blog/entry/tech/sending-host-metrics-to-mackerel-with-opentelemetry-collector
ミドルウェアのメトリックの計装 • ミドルウェアのメトリック ◦ nginx ◦ MySQL ◦ Redis ◦
Elasticsearch ◦ … 23
ミドルウェアのメトリックの計装 • OpenTelemetry Collector Contribにある 24
ミドルウェアのメトリックの計装 • OpenTelemetry Collector Contribにある 25 https://kmuto.hatenablog.com/entry/2024/03/24/215200
ミドルウェアのメトリックの計装 • ポーリングするReceiverの作り ◦ 既にあるエンドポイントからメトリックを収集 ▪ nginxならhttp_stub_status moduleで出力している ◦ 収集したメトリックをOpenTelemetry形式に変換
◦ 収集する頻度はカスタマイズ可能 26
アプリケーションのメトリックの計装 • アプリケーションのメトリック ◦ アクティブユーザー数 ◦ データベースの応答時間 ◦ キャッシュヒット率 ◦
… 27
アプリケーションのメトリックの計装 • 自動計装はまだまだ足りない ◦ 例えばOpenTelemetry Ruby Contribにメトリックの 自動計装は存在していない 28
アプリケーションのメトリックの計装 29
30 それでも自動計装に なるべく乗りつつ メトリックが欲しい!
31 Span Metrics Connector
Connectorとは • ReceiverとExporterの2つの役割を持つ • 異なるテレメトリーパイプラインを繋ぎ合わ せる 32 https://opentelemetry.io/docs/collector/building/connector/
Connectorとは • OpenTelemetry Casual Talkも見てね 33 https://speakerdeck.com/rnakamine/building-a-servicemap-with-service-graph-connector
Span Metrics Connectorとは • トレースからメトリックを生成する ◦ R.E.D メソッドのメトリックを収集できる ◦ Request,
Error, Duration 34
Span Metrics Connectorとは • トレースは自動計装されている ◦ 主にシステム境界でspanが切られている ▪ HTTPリクエスト ▪
SQLの実行 • トレースを集計するとメトリックになる ◦ Request数、Error数、Duration(histogram) 35
メトリックを収集したら • メトリックを集計するとダッシュボードになる ◦ どこに時間が掛かっているのか可視化したい ▪ HTTPリクエストやSQLの実行に掛かった時間を積み上げグラ フに ◦ 特定のクエリにかかった時間のパーセンタイル表示
▪ 各Durationをhistogramで保存しているので、計算可能 36
37 OpenTelemetryで メトリックを収集する その他の方法
その他の方法 • 既存のプラグインを利用する ◦ 各バックエンド向けに実装されたプラグインを活用して 今まで通りにメトリックを収集する ◦ 各バックエンド向けに実装されたReceiverに送信する と、メトリックをOpenTelemetryに加工し、ラベル付 きメトリックとしてバックエンドに送信する
38
その他の方法 39 https://sfujiwara.hatenablog.com/entry/maprobe-otel-metrics • 既存のバックエンド向けのエージェントから OTLPで送信する
40 まとめ
まとめ • 各Primary Signalの立ち位置 ◦ メトリックは引き続き大事 • OpenTelemetryでのメトリック収集の始め方 ◦ CollectorにReceiverを入れると収集できるよ
◦ SpanMetricsConnectorで始めることもできる 41