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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
さっちゃん
July 20, 2024
Programming
1.6k
0
Share
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
さっちゃん
July 20, 2024
More Decks by さっちゃん
See All by さっちゃん
作ってよかったgraceful shutdownライブラリ #kyotogo
ne_sachirou
0
1.4k
path 依存型って何?
ne_sachirou
0
790
野生の onbording と onbording 設計 #kyototechtalk
ne_sachirou
0
690
メトリックはいかにして見え續ける樣になったか #devio2022
ne_sachirou
0
120
名實一致
ne_sachirou
0
720
まかれるあなとみあ ―Mackerel のしくみを理解する 30 分― @ Hatena Engineer Seminar #16
ne_sachirou
0
3.2k
tacit programming : Point-free, Concatenatives & J
ne_sachirou
0
1.1k
Monitoring Containerized Elixir
ne_sachirou
1
1.1k
Let's create stateful systems, by Elixir
ne_sachirou
1
1k
Other Decks in Programming
See All in Programming
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
210
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
350
PHPで TLSのプロトコルを実装してみる
higaki_program
0
660
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
600
Codex の「自走力」を高める
yorifuji
0
1.3k
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
190
Claude Codeログ基盤の構築
giginet
PRO
7
3.8k
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
210
存在論的プログラミング: 時間と存在を記述する
koriym
5
730
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1032
470k
AI: The stuff that nobody shows you
jnunemaker
PRO
4
500
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Bash Introduction
62gerente
615
210k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Typedesign – Prime Four
hannesfritz
42
3k
Six Lessons from altMBA
skipperchong
29
4.2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
Technical Leadership for Architectural Decision Making
baasie
3
300
For a Future-Friendly Web
brad_frost
183
10k
Transcript
みんなのオブザーバビリティ プラットフォームを作ってるんだが パフォーマンスがやばい .。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
None
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆) はてなでMackerelを作っています オブザーバビリティプラットフォームを作ってゐる人閒です
※開發中の機能についての話です
Mackerelは今、オブザーバビリティプラットフォームへ向けて進化してゐます
None
None
OTelメトリックを受けるアーキテクチャ code nameは“michizane” ラベルを保存する 時系列DB メトリックを保存する
OTelメトリックを受けるアーキテクチャ Mackerel の PromQL 處理の內部 (2023/12 時點) #mackerelio - c4se記:さっちゃん
ですよ☆ https://c4se.hatenablog.com/entry/2023/12/08/011251 今日はここの話 時系列DB
最初に作ったstorage Prometheusのv1似 テナントID メトリックID テナントID メトリックID ラベルのkey ラベルの値 時系列DB テナントID
メトリックID 時系列data michizane
最初に作ったstorage Prometheusのv1似 テナントID メトリックID テナントID メトリックID ラベルのkey ラベルの値 時系列DB テナントID
メトリックID 時系列data michizane 書き込みも 讀み出しも 激重
最初に作ったstorage テナントID メトリックID ラベルのkey ラベルの値 ラベル(key=value)每に1行作られる
最初に作ったstorage テナントID メトリックID ラベルのkey ラベルの値 時系列に對應する。container×メトリック每に異なる ラベル(key=value)每に1行作られる
最初に作ったstorage テナントID メトリックID ラベルのkey ラベルの値 時系列に對應する。container×メトリック每に異なる ラベル(key=value)每に1行作られる 10 container ×100メトリック
×40ラベル ×deploy 10囘/日 ×365日 =
最初に作ったstorage テナントID メトリックID ラベルのkey ラベルの値 時系列に對應する。container×メトリック每に異なる ラベル(key=value)每に1行作られる 10 container ×100メトリック
×40ラベル ×deploy 10囘/日 ×365日 =1億4,600万行 ×microservice數 ×テナント數
今作ってゐるstorage 要求 • 投稿から1分以內にPromQLでクエリーできるやうにしたい • PromQLに充分高速にresponseしたい ◦ もし遲いなら、特に最近のメトリックに關しては高速に responseしたい •
メトリック一覽の檢索は高速にresponseしたい ◦ メトリック檢索のUIや、PromQL editorの補完に用ゐる • storage料金は安く抑へたい • 勿論、ラベルが增え過ぎて檢索できなくなる問題は解決したい
今作ってゐるstorage partitioningして 保存する ラベル 一覽用 時系列DB メトリックは變 はらず
今作ってゐるstorage Prometheusのv2似 テナント1で今日 投稿されたラベル テナント1で昨日 投稿されたラベル テナント2で今日 投稿されたラベル テナント2で昨日 投稿されたラベル
・・・ ・・・ ・ ・ ・ ・ ・ ・ 10 container 10 microservice ×100メトリック ×40ラベル ×deploy 10囘/日 ×1日 =4百万行 ※この例だと1万メトリックを投稿してゐるので結構 な金額になります。御利用は計畫的に。あと、いい 感じに上限を設定すると思ひます
がんばるぞヾ(〃l _ l)ノ゙ https://ja.mackerel.io