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
ヘンリーにおける可観測性獲得への取り組み
Search
nabeo
October 19, 2023
Technology
2
1.8k
ヘンリーにおける可観測性獲得への取り組み
OpenTelemetry Meetup 2023-10
https://opentelemetry.connpass.com/event/296353/
nabeo
October 19, 2023
Tweet
Share
More Decks by nabeo
See All by nabeo
OpenTelemetry Collector 自身のモニタリング / Monitoring the OpenTelemetry Collector itself
nabeo
0
390
AWS CDK (TypeScript) を継続的にメンテ可能にするために取り入れているノウハウ集
nabeo
0
1.1k
AWS Organizations 組織を移動する時に 考えること 100 連発 (AWS Control Tower への組み込みを添えて) / Hatena Engineer Seminar #20
nabeo
2
2.7k
AWS Transit Gateway を使った内部ネットワークの構成変更の話 / AWS Transit Gateway and Me
nabeo
0
510
Docker イメージのダイエットが成功するまで帰れまてん / Docker Image Diet Challenge
nabeo
4
4k
LVS 勉強会 (LVS Study)
nabeo
0
3.2k
Other Decks in Technology
See All in Technology
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
Our Journey from in-House CD System to Open Source
ffjlabo
0
100
New Relicで実践する外形監視
aeonpeople
1
120
歴史と背景から改めて振り返るVPC
shotashiratori
2
220
「名前解決」から振り返るAmazon VPC
yuki_ink
0
320
HolidayJp.jl を作りました
mrkn
0
110
SHIFTの課題と目指したい組織像 / 20240827 Rinto Ikenoue
shift_evolve
0
140
標準ライブラリの奥深アップデートを掘り下げよう!
logica0419
2
390
FastlyとfalcoでNode.jsレスな Webサーバー構築 : IPTV版 ABEMAアプリインフラ刷新 / Building web server using Fastly and falco without Node.js for IPTV ABEMA app
nodaguti
0
240
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
2
130
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
夏休みの(最後の)宿題 for JuliaTokyo #12
antimon2
0
130
Featured
See All Featured
Clear Off the Table
cherdarchuk
90
320k
Navigating Team Friction
lara
183
13k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Designing for Performance
lara
604
68k
We Have a Design System, Now What?
morganepeng
48
7.1k
Embracing the Ebb and Flow
colly
83
4.4k
The Language of Interfaces
destraynor
153
23k
What the flash - Photography Introduction
edds
67
11k
How GitHub Uses GitHub to Build GitHub
holman
472
290k
Agile that works and the tools we love
rasmusluckow
327
20k
The Mythical Team-Month
searls
218
43k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Transcript
Copyrights(c) Henry, Inc. All rights reserved. 好きになる、はじめての電子カルテ OpenTelemetry Meetup 2023-10
ヘンリーにおける可観測性獲得への取り組み 2023/10/19 @nabeo
Copyrights(c) Henry, Inc. All rights reserved. 自己紹介 渡辺 道和 (@nabeo)
株式会社ヘンリー CTO室 SRE 2023年06月〜 2
Copyrights(c) Henry, Inc. All rights reserved. クラウド型電子カルテ・レセコンシステム「Henry」 • 電子カルテ :
医療情報を管理・記録するソフトウェア • レセコンシステム : レセプト (診療報酬) に基づいた会計情報を管 理するソフトウェア 3
Copyrights(c) Henry, Inc. All rights reserved. 扱っている課題の特徴と技術スタック • ドメインが巨大、かつ、複雑、かつ、難解 ◦
難解な診療報酬制度が2年ごとに改訂される ◦ 地方自治体ごとに異なる公費の計算 ◦ 医療機関様ごとに異なるニーズへの対応 ◦ ソフトウェアとしても機能が複雑に絡まっていて見通しにくい状態 • 技術スタック ◦ Server-side Kotlin ◦ Backend for Frontend としての Node.js (TypeScript) ◦ gRPC、GraphQL ◦ Google Cloud 4
Copyrights(c) Henry, Inc. All rights reserved. 可観測性獲得文脈での課題 • 医療機関様ごとに必要とされる機能やその使用頻度が異なる •
問題やお問い合わせの切り分けが難しい • SLI/SLO の整備でも可観測性の獲得は重要である 5
Copyrights(c) Henry, Inc. All rights reserved. ヘンリーにおける Observability ツールの現 状
• 一部で OpenTelemetry のトレース情報を Cloud Trace や Sentry に送信して、可視化をしている ◦ OpenTelemetry SDK のトレース ID 採番を利用して、分散システムの ログにトレーサビリティを持たせている ◦ 意図通りのトレーサビリティが確保できていない問題があった • 【イマココ】トレース情報の送信方法の見直し ◦ 一緒にプロジェクトを進めている同僚から OpenTelemetryを正しく計装 して、Datadogに連携したら欲しい情報がとれていそうという示唆があっ た 6
Copyrights(c) Henry, Inc. All rights reserved. Datadog の検討 • いい感じに可視化できて、トレース情報の扱いもコントロールでき
そう ◦ とくに tail sampling ができそうということが大きい • 一旦、Datadog の採用は見送る方針に変更 ◦ OpenTelemetry 計装に問題がありそうということもわかった ◦ コストの試算したところ一旦は採用を見送って、Cloud Trace や Cloud Logging をちゃんと使う方針に方向転換 ▪ Datadog の利用料金だけでまぁまぁな金額になりそうだった ▪ OpenTelemetry の計装だけでは Datadog による可視化、データ連携で制限が つく 7
Copyrights(c) Henry, Inc. All rights reserved. Cloud Run サービス +
OpenTelemetry Collector エージェントの実装アプローチ • OpenTelemetry エージェントをアプリケーションに組み込む • OpenTelemetry コレクターをサイドカーとして組み込む • 完全に独立した OpenTelemetry コレクターにトレース情報を送信 する 8
Copyrights(c) Henry, Inc. All rights reserved. 実装アプローチの比較 OpenTelemetry エージェントをアプリケーションに組 み込む
• 😀 ◦ インフラ視点で管理するコンポーネントが一番少ない構成 • 🤨 ◦ アプリケーションと密結合になる ◦ エージェントが起動してから、アプリケーションでリクエストを受付させる など気を遣う必要がある 9
Copyrights(c) Henry, Inc. All rights reserved. 実装アプローチの比較 OpenTelemetry コレクターをサイドカーとして組み込む •
😀 ◦ アプリケーションからコレクター部分を切り離して管理できる • 🤨 ◦ 一般的なコンテナ PaaS の課金体系と相性が悪い ◦ Cloud Run ではマルチコンテナ対応が 2023/10 時点で pre-GA 10
Copyrights(c) Henry, Inc. All rights reserved. 実装アプローチの比較 独立した OpenTelemetry コレクターにトレース情報を送信する
• 😀 ◦ アプリケーションからコレクター部分を切り離して管理できる ◦ アプリケーションのトレース情報の送信先をまとめることができる -> コス トメリットが期待できる • 🤨 ◦ インフラ視点だと構成が一番複雑になる ◦ トレース情報の送信元と OpenTelemetry コレクターの間で通信ができ なかった時のアプリケーションの挙動を確認しておく必要がある 11
Copyrights(c) Henry, Inc. All rights reserved. Cloud Run で OpenTelemetry
コレクターを 動かす時の注意 • OpenTelemetry の Node.js 向け SDK では認証ヘッダをつける ことが難しいので、通信経路を工夫する必要がある • OpenTelemetry の仕様の他にベンダー独自拡張の仕様にも気を 配って計装する必要がある 12
Copyrights(c) Henry, Inc. All rights reserved. Thank you We are
hiring!! https://jobs.henry-app.jp/ 13 https://dev.henry.jp/ We are writing!!