Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
opentelemetry-goとGCPでパフォーマンス解析
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yohei Iino
July 26, 2022
Technology
140
0
Share
opentelemetry-goとGCPでパフォーマンス解析
opentelemetry-goとGCPでパフォーマンス解析
Yohei Iino
July 26, 2022
More Decks by Yohei Iino
See All by Yohei Iino
1年半放置したExpo製アプリを最新化してみた
wheatandcat
0
95
作成中のFlutterアプリの中間発表
wheatandcat
0
78
最近読んだ技術書を簡単紹介
wheatandcat
0
99
ユニバーサルリンク/アプリリンクを使ってQRコードでゲストログインできるようにする
wheatandcat
0
370
Firebase App Checkを実装したので紹介
wheatandcat
0
280
PlanetScaleの無料プランがなくなるので、NeonとTiDBを試してみた
wheatandcat
0
390
Flutter HooksとRiverpodの解説
wheatandcat
0
560
T3 Stack(応用編: Next Auth & SSRの実装紹介)
wheatandcat
1
390
App Routerの紹介
wheatandcat
0
140
Other Decks in Technology
See All in Technology
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8k
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.4k
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
330
毎日の作業を Claude Code 経由にしたら、 ノウハウがコードになった
kossykinto
1
1k
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
250
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
2.5k
エンタープライズの厳格な制約を開発者に意識させない:クラウドネイティブ開発基盤設計/cloudnative-kaigi-golden-path
mhrtech
0
320
オライリーイベント登壇資料「鉄リサイクル・産廃業界におけるAI技術実応用のカタチ」
takarasawa_
0
320
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
3k
VespaのParent Childを用いたフィードパフォーマンスの改善
taking
0
270
Forget technical debt
ufried
0
170
大学職員のための生成AI最前線 :最前線を、AIガバナンスとして読み直すためのTips
gmoriki
2
3.8k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Mind Mapping
helmedeiros
PRO
1
180
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Ethics towards AI in product and experience design
skipperchong
2
270
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
780
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
opentelemetry-go とGCP でパフォーマンス解析 Press Space for next page
自己紹介 📝 飯野陽平(wheatandcat ) 🏢 フリーランスエンジニア(シェアフル株式会社CTO ) 💻 Blog: https://www.wheatandcat.me/
🛠 今までに作ったもの memoir ペペロミア Atomic Design Check List
OpenTelemetry とは OpenTelemetry は、オープンソースのオブザーバビリティフレームワーク 運用しているアプリのパフォーマンスや健全性が正常な状態か判断するために使用する情報をテレメトリーデータ と呼ばれている テレメトリーデータは主に3 つのカテゴリに分類される ログ メトリクス
トレース OpenTelemetry は、それらのテレメトリデータを収集するためのベンダーに依存しないAPI 、ソフトウェア開発キッ ト(SDK) 、その他のツールを提供している Learn More 1 Learn More 2
opentelemetry-go リポジトリ: opentelemetry-go OpenTelemetry は、OpenCensus (+ Stackdriver )、OpenTracing のプロジェクトの正式な後継版 検索時に以下のリポジトリで実装されたものもヒットするが、これから実装するならopentelemetry-go
が推奨なの で注意 opencensus-go opentracing-go
対応のパッケージのサンプル OpenTelemetry のGitHub に言語ごとにリポジトリが作成されている https://github.com/open-telemetry?q=go&type=all&language=&sort= Go 言語なら以下を確認 opentelemetry-go-contrib Go のフレームワークなら以下を確認
https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/github.com
実装してみた① 実際にプロジェクトにopentelemetry-go を実装したみた。 構成は以下の通り プロジェクト: memoir-backend フレームワーク: gqlgen ベンダー: Cloud
Trace 最初はDatadog のAPM を想定していたが、Cloud Run For Manager をサポートしていなかったので😓、 Cloud Trace で実装
実装してみた② PR https://github.com/wheatandcat/memoir-backend/pull/128 以下を解説 gqlgen のトレースのハンドリングの解説 Cloud Trace の出力のデモ
Cloud Trace を実装してみての感想と課題 トレース情報が可視化されて、各 API の処理速度を直感的にわかるようになった 今回のプロジェクトはAPI の数も少ないのでトレース情報のみでも十分に解析可能だが、以下のようなケースでは別 のアプローチを考える必要がある トレース情報が大雑把すぎる。具体的に遅い処理を検知したい
API や処理数が膨大で漠然と全体的に遅い ユーザーによって処理が遅い 上記のケースではCloud Profiler が有効なので紹介
Cloud Profiler とは Cloud Profiler は、本番環境のアプリケーションからCPU 使用率やメモリ割り当てなどの情報を継続的に収集できる サービス トレースのような大雑把な情報は出力できないが、ピンポイントにボトルネックになっている処理の検知が行える 料金は無料なので、取り敢えず実装しておいても損は無さそう
Learn More
実装してみた 以下を参考に実装 https://cloud.google.com/profiler/docs/profiling-go?hl=ja 以下を解説 Cloud Profiler のデモ memoir-backend は処理がシンプル過ぎて、解説向きの情報が無いので以下で解説 以下を参考に実際の利用方法の解説
チュートリアル: Go アプリの最適化
おまけ 今回、実装までは行わなかったが、今回紹介したCloud Trace とCloud Profiler などの情報をまとめて、Cloud Monitoring でアラートもできそう https://cloud.google.com/architecture/integrating-monitoring-logging-trace-observability-and-alerting? hl=ja
Cloud Monitoring の説明は以下を参照 https://cloud.google.com/monitoring/monitor-compute-engine-virtual-machine
まとめ OpenTelemetry は現状デファクトなので、理解しておいたほうが良さそう パフォーマンス解析のアプローチについて理解できた 早くDatadog のAPM がCloud Run For Manager
をサポートして欲しい GKE 構成にすれば使えるけど、個人プロジェクトで、そこまで管理コストをかけたくない 😓
ご清聴ありがとうございました