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
Grafana Cloudとソラカメ
Search
kumico
February 01, 2025
Programming
0
320
Grafana Cloudとソラカメ
kumico
February 01, 2025
Tweet
Share
More Decks by kumico
See All by kumico
インタラクティブシェルのカスタマイズを楽しもう
devoc
0
180
OpenID Connect から学ぶ認証・認可
devoc
0
22
モダンターミナルエミュレータは画像を表示できるらしい
devoc
1
29
アプリケーションパフォーマンスの計測と改善の方法を勉強している話
devoc
11
3.4k
Other Decks in Programming
See All in Programming
クラウドに依存しないS3を使った開発術
simesaba80
0
210
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
300
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.9k
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
Basic Architectures
denyspoltorak
0
160
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
CSC307 Lecture 03
javiergs
PRO
1
460
SQL Server 2025 LT
odashinsuke
0
120
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
280
これならできる!個人開発のすゝめ
tinykitten
PRO
0
140
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
150
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
140
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
100
Prompt Engineering for Job Search
mfonobong
0
140
Exploring anti-patterns in Rails
aemeredith
2
220
The Spectacular Lies of Maps
axbom
PRO
1
410
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Thoughts on Productivity
jonyablonski
73
5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
160
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
120
Statistics for Hackers
jakevdp
799
230k
We Are The Robots
honzajavorek
0
130
Game over? The fight for quality and originality in the time of robots
wayneb77
1
74
Transcript
Grafana Cloud とソラカメ 株式会社ソラコム ソラコムクラウドカメラサービス/エンジニア 片瀬 拓海 Grafana Meetup Japan
#4
片瀬 拓海 • ソラコムクラウドカメラサービス (ソラ カメ) / エンジニア • Go
/ Terraform / neovim • ❤ ラーメン🍜
• ソラコムクラウドカメラサービス (ソラカメ) • なぜGrafana Cloudを使っているか • ソラカメでのGrafana Cloud活用 目次
ソラコムクラウドカメラサービス (ソラカメ)
3,980 円〜始められるIoTカメラ ソラコムクラウドカメラサービス(ソラカメ)
3,980 円〜始められるIoTカメラ ソラコムクラウドカメラサービス(ソラカメ) • 工事不要で設置 • APIを使ったシステム連携 • PC・スマートフォンから利用
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード •
カメラで検出したイベントの一覧 … ソラコムクラウドカメラサービス(ソラカメ)
なぜGrafana Cloudを 使っているか
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード •
カメラで検出したイベントの一覧 … ソラカメAPI
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード •
カメラで検出したイベントの一覧 … ソラカメAPI
なぜGrafana Cloudを使っているか AWS ライブストリーミ ングAPI
なぜGrafana Cloudを使っているか AWS ライブストリーミ ングAPI ランニングコストを抑えるためにデータ転送量料金が定額のサー バーとAWSの両方を使用
なぜGrafana Cloudを使っているか 両方のサーバーを統合してモニタリングしたかったので Grafana Cloud を採用 Grafana Cloud AWS 開発者
ソラカメでのGrafana Cloud活用
• マネージドサービス活用により、シンプルなモニタリン グ基盤の構築 • ソラカメAPIのE2Eテスト基盤と可視化 ソラカメでのGrafana Cloud活用
マネージドサービス活用により、 シンプルなモニタリング基盤の構築
Grafana Cloud Overview > Grafana Cloud is a fully managed
cloud-hosted observability platform ideal for cloud native environments. Grafana Cloudは、クラウドネイティブ環境に最適な完全 に管理されたクラウドホストの観測可能性プラットフォー ムです。 https://grafana.com/products/cloud/
Grafana Cloud Overview
Grafana Cloud Overview
Grafana Cloud Overview data sourceやpluginによ るクラウドプロバイダや SaaSとの統合
Grafana Cloud Overview データストア、Grafana含めてマ ネージドで提供されるので、テレ メトリーを送る仕組みを作ること に集中できる
テレメトリーパイプライン AWS ストリーミングサーバー app app ‧‧‧ prometheus.remote_write 開発者 モニタリング プロビジョニング
Grafana Cloud
利点 ✅ • 各ストリーミングサーバーから直接マネージド Prometheusに送信 • コレクターのような追加のコンポーネントがないのシン プル 欠点 ⛔
• テレメトリの送信先を変更したい時にすべてのサー バーに対してプロビジョニングが必要 • サーバーの台数が増えると大変 テレメトリーパイプライン
テレメトリーパイプライン AWS ストリーミングサーバー app app ‧‧‧ Push metrics, logs 開発者
ダッシュボード・アラート作成 プロビジョニング 手作業だと辛い Grafana Cloud
None
> Ansible offers open-source automation that is simple, flexible, and
powerful. Ansibleは、シンプルで柔軟で強力なオープンソースオー トメーションを提供しています。 Ansible https://docs.ansible.com/
• GrafanaがメンテナンスしているAnsible collectionがある。 • インストールから設定まで一括で管理できる Ansible https://docs.ansible.com/ansible/latest/collections/grafana/grafana/index.html#plugins-in-grafana-grafana
Grafana Agent - Metrics / Logs grafana_cloud_log_url ↓ https://logs-xxx.grafana.net/l oki/api/v1/push
grafana_cloud_hosted_url ↓ https://prometheus-xxx.grafana .net/api/prom/push
Grafana Agent - Metrics / Logs
Grafana Agent - Metrics / Logs ダッシュボードやAlertを設定するためにメトリクスやログを クエリできるようになる
ソラカメAPIのE2Eテスト基盤と 可視化
• ソラカメはAPIから利用することが可能 • 実際のユーザーのように、外部からAPIを呼び出し て、期待通りに動いているかテストしている ソラカメAPI E2Eテスト
ソラカメAPI E2Eテスト E2E テストコード (Python) Grafana Cloud ソラカメAPI ① テスト実行
(5分ごと) ② テスト結果送信
✅ テスト用のカメラをセットアップして、定期的にテストを 実施 ✅ API ~ カメラまで通してテストすることが可能。 ✅ テストが意図した通りに動いていることを確認。 ✅
デバイスの不具合を見つけることも可能。 (特定のデバイスのみテストが失敗するなど) ⛔ Flaky (再実行することである程度カバーしている) ソラカメAPI E2Eテスト
ソラカメAPI E2Eテスト E2E テストコード (Python) Grafana Cloud ソラカメAPI ① テスト実行
(5分ごと) ② テスト結果送信
ソラカメAPI E2Eテスト ① Grafana Cloudのエンドポイント 取得 ② テスト結果を送信する際のメトリ クスフォーマットに従って格納 ③
①で取得したエンドポイントに POST
ソラカメAPI E2Eテスト ① Grafana Cloudのエンドポイント 取得 ② テスト結果を送信する際のメトリ クスフォーマットに従って格納 ③
①で取得したエンドポイントに POST
ソラカメAPI E2Eテスト f"{metric_index},test_name={result['name']},device_id={result ['device_id']},test_kind={test_kind} value={value} {int(time.time() * 1e9)}" <metrics_name>,labelx=xxx,labely=yyy <value>=value
<timestamp>
ソラカメAPI E2Eテスト Grafana Cloud <metrics_name>,labelx=xxx,labely=yyy <value>=value <timestamp> influxDB line protocol
送信 Prometheus のメト リクスに変換
ソラカメAPI E2Eテスト Grafana Cloud <metrics_name>,labelx=xxx,labely=yyy <value>=value <timestamp> influxDB line protocol
送信 Prometheus のメト リクスに変換 シンプルなプロトコル。ツールやライブラリなど使わなくても 気軽にメトリクスを送信可能
ソラカメAPI E2Eテスト 他のメトリクスと同様に、PromQLを使ってダッシュボードに 表示可能 sora_cam_pytest_results_prod{test_name=~"test_p2 p_api_.*"}
ソラカメAPI E2Eテスト 3回連続それぞれのテストが成功していることがわかる
ソラカメAPI E2Eテスト このAPIは調子悪そう。 同一のテスト名で、違うデバイスはパスしているなら、デバ イス起因の問題の可能性も
• ソラカメで活用しているGrafana Cloudの機能を紹介 しました。 • Grafana Agent を使ったサーバーのモニタリング • E2Eテスト基盤の可視化
まとめ マネージドサービスをフルに活用することで、シンプルな構 成で監視基盤を構築できる 👍