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革命
Search
Kazuhiko Yamashita
May 09, 2024
Programming
2.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ペパボOpenTelemetry革命
社内のイベントでお話しました
Kazuhiko Yamashita
May 09, 2024
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2.1k
継続的な負荷検証を目指して
pyama86
3
1.7k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
650
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.4k
Managing Database Migrations in Go Backend Systems
pyama86
0
510
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.5k
事業を差別化する技術を生み出す技術
pyama86
4
2.2k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
11k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
2.1k
Other Decks in Programming
See All in Programming
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
210
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.6k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
170
Agentic UI
manfredsteyer
PRO
0
200
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
410
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
600
Oxlintのカスタムルールの現況
syumai
6
1.2k
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
170
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Oxcを導入して開発体験が向上した話
yug1224
4
340
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
290
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Building Flexible Design Systems
yeseniaperezcruz
330
40k
YesSQL, Process and Tooling at Scale
rocio
174
15k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
230
Believing is Seeing
oripsolob
1
160
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Why Our Code Smells
bkeepers
PRO
340
58k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Transcript
ϖύϘOpenTelemetryֵ໋ ʙ͜ͷલMOROHAΈͯେ߸ٽ͠·ͨ͠ʙ
ࢁԼ!QZBNB (.0ϖύϘٕज़ج൫νʔϜ γχΞɾϓϦϯγύϧ ɹΩϟϯϓɺཱྀߦɺώϧτϯ८ΓɺιϫχΤ८Γ 1SPYZαʔό։ൃɺ0QFO5FMFNFUSZ
45/4 -JOVY/444FSWFS TUOTKQ
None
ࠓ͢͜ͱ OpenTelemetry֓ཁ OpenTelemetryΛಋೖ͖͔͚ͨͬ͠ OpenTelemetryಋೖঢ়گ ࠓޙͷల
🍉🌴🏄 GoConference’19 🏄🌴🍉 6 0QFO5FMFNFUSZ ֓ཁ
OpenTelemetry چདྷɺ4BB4044͝ͱʹ࣮͞Ε͍ͯͨςϨϝτϦσʔλͷඪ४Խ IUUQTDMPVEOBUJWFEBZTKQPZ https://opentelemetry.connpass.com/
ςϨϝτϦσʔλ “ςϨϝτϦσʔλɺΦϒβʔόϏϦςΟΛ࣮ݱ͢ΔͨΊʹγεςϜ ιʔε͔Βऩू͞ΕΔग़ྗΛࢦ͠·͢ɻ͜ΕΒͷग़ྗΛ౷߹తʹੳ͢ Δ͜ͱʹΑΓɺࢄڥͰͷγεςϜؒͷؔґଘ͕ؔΘ͔Γ· ͢ɻओʹ༻͞ΕΔσʔλΫϥε ϩάɺϝτϦΫεɺτϨʔεͷ3ͭͰɺ͜Ε ʮΦϒβʔόϏϦςΟͷ3ͭͷபʯͱݺΕ·͢ɻ” https://www.splunk.com/ja_jp/data-insider/what-is-opentelemetry.html ΑΓҾ༻
ΦϒβʔόϏϦςΟ ΦϒβʔόϏϦςΟɾΤϯδχΞϦϯά 6PΑΓҾ༻ “؆୯ʹݴ͏ͱɺࢲ͕ͨͪߟ͑ΔιϑτΣΞγεςϜͷ ʮΦϒβʔόϏϦςΟʯͱɺγεςϜ͕ͲͷΑ͏ͳঢ়ଶʹͳͬͨͱ͠ ͯɺͦΕ͕ͲΜͳʹ৽ͰحົͳͷͰ͋ͬͯɺͲΕ͚ͩཧղ͠આ໌ Ͱ͖Δ͔Λࣔ͢ईͰ͢ɻ·ͨɺͦͷΑ͏ͳ৽Ͱحົͳঢ়ଶʹରͯ͠ ɺࣄલʹσόοάͷඞཁੑΛఆٛͨ͠Γ༧ଌͨ͠Γ͢Δ͜ͱͳ͘ɺ γεςϜͷঢ়ଶσʔλͷ͋ΒΏΔσΟϝϯγϣϯͦΕΒͷΈ߹Θͤʹ ͍ͭͯΞυϗοΫʹௐࠪ͠ɺΑΓσόοά͕ՄೳͰ͋ΔΑ͏ʹ͢Δඞཁ͕
͋Γ·͢ɻ͠ɺ৽͍͠ίʔυΛσϓϩΠ͢Δඞཁ͕ͳ͘ɺͲΜͳ৽Ͱ حົͳঢ়ଶͰཧղͰ͖ΔͳΒɺΦϒβʔόϏϦςΟ͕͋Δͱݴ͑·͢ɻ
https://opentelemetry.io/blog/2024/pro fi ling/
OpenTelemetry https://opentelemetry.io/docs/ ֤ݴޠͷSDK ࣗಈܭɺखಈܭ ϛυϧΣΞ͔Β ςϨϝτϦσʔλΛ ग़ྗ
OpenTelemetry https://opentelemetry.io/docs/ ඪ४Խ͞Εͨϓϩτίϧʹ ରԠͨ͠ΤʔδΣϯτ
OpenTelemetry https://opentelemetry.io/docs/collector/ GoͰ࣮͞ΕͨόΠφϦ͕ɺReceivers,Processors,ExportersΛ࣮ߦ
OpenTelemetry https://opentelemetry.io/docs/ 4BB4 ϗετ͞Εͨ044 ࠩ͠ସ͑Մೳ
OpenTelemetryΛ ಋೖ͖͔͚ͨͬ͠
None
͓Θ͔ΓͩΖ͏͔ʁ https:// fi nance.yahoo.co.jp/quote/USDJPY=FX?styl=cndl&frm=mnthly&trm=mnthly&ovrIndctr=sma%2Cmma%2Clma
ϖύϘͷࣄ ࢄτϨʔγϯά͕ະಋೖ ࢹαʔϏε͕MackerelͱPrometheusͰڞଘ
MackerelͱPrometheus Mackerel Prometheus ຊ൪αʔόͷVM Managed Service Kubernetes Control Plane ࣾαʔϏεͷVM
Kubernetes Node Monitor Servers OpenTelemetryਪਐલ ֎ܗࢹ ϓϥΠϕʔτΫϥυͷHW
MackerelͱPrometheus Mackerel Prometheus ຊ൪αʔόͷVM Managed Service Kubernetes Control Plane ࣾαʔϏεͷVM
Kubernetes Node Monitor Servers Otel CollecotrΛ͍ΕΔͳΒɺ͜͏ͨ͠΄͏͕ແବ͕ͳ͍ ֎ܗࢹ ϓϥΠϕʔτΫϥυͷHW ຊ൪αʔόͷVM
OpenTelemetryಋೖঢ়گ
ίϯϙʔωϯτ VM k8s Metrics ̋ ̋ Trace ̋ ̋ Log
˚ ˚ OpenTelemetryಋೖঢ়گ ̋ϓϩμΫγϣϯͰಋೖࡁΈ ˚લճ.FFUVQͰͨ͠ͱ͖ΑΓਐḿ
Metrics
Metrics ϗετͷϦιʔεhostmetricsͰऔಘ ɹVMͦΕͧΕotel collectorΛΠϯετʔϧ ɹk8sDaemonSetͰ/Λmount receivers: hostmetrics: collection_interval: 1m scrapers:
cpu: metrics: system.cpu.utilization: enabled: true load: metrics: system.cpu.load_average.1m: enabled: true system.cpu.load_average.5m: enabled: true system.cpu.load_average.15m: ...
Metrics %BTICPBSE(JU)VCͰϝτϦΫε໊Ͱൃ۷ͨ͠ https://ten-snapon.com/archives/2983
Metrics 4%,Λར༻ͯ͠ϝτϦΫεΛܭ͍ͯ͠Δ https://ten-snapon.com/archives/2983 if req.Method == http.MethodPost && strings.Contains(req.RequestURI, “cartin")){
if err == nil && res.StatusCode >= 200 && res.StatusCode < 300 { r.successCounter.Add(context.Background(), metric.WithAttributes(semconv.HostName(requestURL.Host))) } else { r.failCounter.Add(context.Background(), 1, metric.WithAttributes(semconv.HostName(requestURL.Host))) } }
Trace
Trace k8sͷμογϡϘʔυͱͯ͠GrafanaΛಋೖࡁΈ k8sͷϩάݕࡧʹGrafana Loki + S3ΛಋೖࡁΈ (SBGBOB5FNQPΛ࠾༻
Trace otelcol k8s DataCenter Tempo pod VM otelcol app VMͷTraceOtel
CollectorΛ ܦ༝ͯ͠ɺk8sͷTempo
΄ͱ͠ΔϚΠΫϩαʔϏεײ
΄ͱ͠ΔϚΠΫϩαʔϏεײ
Log
طଘͷϩάύΠϓϥΠϯ ϩάͷϥΠϑλΠϜʹ߹ΘͤͨετΞʹ֨ೲ
Apache Kafka LBGLBDMVTUFS /var/log/audit.log LBGLBCSPLFS BVEJUMPH UPQJD LBGLBCSPLFS TZTMPH UPQJD
ϩά͝ͱʹτϐοΫΛ͚͍ͯΔ /var/log/syslog
Kafka Exporter 5PQJD͕ݱঢ়ܾΊଧͪͬΆ͍ https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/kafkaexporter
Kafka Exporter ͜͏͍͏ײ͡Ͱॻ͚͍ͨ
ͳΜͱॻ͚·͢!!1
ࠓޙͷల Self Hosted APM ܭଌ͔ΒվળͷαΠΫϧΛճ͢ OpenTelemetryͷߩݙ
Self Hosted APM APMͷՄ༻ੑߴ͘ͳ͍͍ͯ͘ͷͰɺ ӡ༻Ͱ͖ΔͳΒSelf HostedͰ͍͍ ݱࡏSentryΛධՁத
Elastic APMΊͨ ҎલDockerͰىಈͯͦ͜͠ʹϝτϦΫεΛૹ Δ͚͕ͩͩͬͨɺAgentͷΠϯετʔϧ͕ඞཁʹ ͳͬͨΓɺҠߦɺESɺkibanaͷϝϯςίετ͕ ͍ͱݴ͑ͳ͍
ܭଌ͔ΒվળͷαΠΫϧΛճ͢ ܭଌͰ͖ΔΑ͏ʹͳ͕ͬͨɺܭଌͰ͖͍ͯΔ͔ผ ܭଌͰ͖ͨͱͯ͠ɺվળͰ͖Δ͔ผ πʔϧͷڭҭɺϋϯζΦϯ ϘτϧωοΫͷಛఆɺղফ
ܭଌ͔ΒվળͷαΠΫϧΛճ͢
永遠のN+1 net.ipv4.tcp_max_syn_backlog Kubernetes Scheduler 突然のYahooトピックス 特定のバージョンだけで取られる謎のロック Slow Query
ܭଌ͔ΒվળͷαΠΫϧΛճ͢ վળʹ͍Ζ͍ΖͳεΩϧɺ͕ࣝඞཁ σʔλϕʔε: ΫΤϦύϑΥʔϚϯεɺύϥϝʔλʔνϡʔχϯά OS/Kernel: ωοτϫʔΫɺύϥϝʔλʔɺCPUɺϝϞϦʔ ιϑτΣΞ։ൃ: ܭࢉྔɺϦόʔεΤϯδχΞϦϯά ใऩूೳྗ: GitHub
IssueɺThe Linux Kernel ArchivesɺX
ܭଌ͔ΒվળͷαΠΫϧΛճ͢ ͠ΐ͏ͳ͍ɺΘΕͳ͍ɺҙຯ͕ͳ͍ ͦΜͳͷͰ͍͍ɺͱʹ͔͘ॻ͘͜ͱͰ ॻ͚ΔΑ͏ʹͳΓɺؾ͕͍ͭͨΒເͷதͰ ઃܭ͢ΔΑ͏ʹͳΔ
OpenTelemetryͷߩݙ OpenTelemetry(collector)ͷ࣮ൣғͱ͍ͯ receiver,exporter,processor͝ͱʹϝϯςφ͕͍ͯɺ·ΔͰ৫ͷΑ͏ ࣮ࢀߟʹͳΔ͜ͱ͕ଟ͘ɺֶͼͷػձʹͳΔ
ͳΜͱɺ ೖࣾͨ͠Βશ෦ Ε·͢ʂʂ1
܅PUFMʹͳΒͳ͍͔ʁ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU