Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Grafana Cloud とソラカメ 株式会社ソラコム ソラコムクラウドカメラサービス/エンジニア 片瀬 拓海 Grafana Meetup Japan #4
Slide 2
Slide 2 text
片瀬 拓海 • ソラコムクラウドカメラサービス (ソラ カメ) / エンジニア • Go / Terraform / neovim • ❤ ラーメン🍜
Slide 3
Slide 3 text
• ソラコムクラウドカメラサービス (ソラカメ) • なぜGrafana Cloudを使っているか • ソラカメでのGrafana Cloud活用 目次
Slide 4
Slide 4 text
ソラコムクラウドカメラサービス (ソラカメ)
Slide 5
Slide 5 text
3,980 円〜始められるIoTカメラ ソラコムクラウドカメラサービス(ソラカメ)
Slide 6
Slide 6 text
3,980 円〜始められるIoTカメラ ソラコムクラウドカメラサービス(ソラカメ) • 工事不要で設置 • APIを使ったシステム連携 • PC・スマートフォンから利用
Slide 7
Slide 7 text
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード • カメラで検出したイベントの一覧 … ソラコムクラウドカメラサービス(ソラカメ)
Slide 8
Slide 8 text
なぜGrafana Cloudを 使っているか
Slide 9
Slide 9 text
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード • カメラで検出したイベントの一覧 … ソラカメAPI
Slide 10
Slide 10 text
• カメラ一覧、カメラ詳細情報の取得 • 常時録画ストリーミング再生API • ライブ映像ストリーミング再生API • 常時録画データから切り出した静止画像のダウン ロード • カメラで検出したイベントの一覧 … ソラカメAPI
Slide 11
Slide 11 text
なぜGrafana Cloudを使っているか AWS ライブストリーミ ングAPI
Slide 12
Slide 12 text
なぜGrafana Cloudを使っているか AWS ライブストリーミ ングAPI ランニングコストを抑えるためにデータ転送量料金が定額のサー バーとAWSの両方を使用
Slide 13
Slide 13 text
なぜGrafana Cloudを使っているか 両方のサーバーを統合してモニタリングしたかったので Grafana Cloud を採用 Grafana Cloud AWS 開発者
Slide 14
Slide 14 text
ソラカメでのGrafana Cloud活用
Slide 15
Slide 15 text
• マネージドサービス活用により、シンプルなモニタリン グ基盤の構築 • ソラカメAPIのE2Eテスト基盤と可視化 ソラカメでのGrafana Cloud活用
Slide 16
Slide 16 text
マネージドサービス活用により、 シンプルなモニタリング基盤の構築
Slide 17
Slide 17 text
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/
Slide 18
Slide 18 text
Grafana Cloud Overview
Slide 19
Slide 19 text
Grafana Cloud Overview
Slide 20
Slide 20 text
Grafana Cloud Overview data sourceやpluginによ るクラウドプロバイダや SaaSとの統合
Slide 21
Slide 21 text
Grafana Cloud Overview データストア、Grafana含めてマ ネージドで提供されるので、テレ メトリーを送る仕組みを作ること に集中できる
Slide 22
Slide 22 text
テレメトリーパイプライン AWS ストリーミングサーバー app app ‧‧‧ prometheus.remote_write 開発者 モニタリング プロビジョニング Grafana Cloud
Slide 23
Slide 23 text
利点 ✅ • 各ストリーミングサーバーから直接マネージド Prometheusに送信 • コレクターのような追加のコンポーネントがないのシン プル 欠点 ⛔ • テレメトリの送信先を変更したい時にすべてのサー バーに対してプロビジョニングが必要 • サーバーの台数が増えると大変 テレメトリーパイプライン
Slide 24
Slide 24 text
テレメトリーパイプライン AWS ストリーミングサーバー app app ‧‧‧ Push metrics, logs 開発者 ダッシュボード・アラート作成 プロビジョニング 手作業だと辛い Grafana Cloud
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
> Ansible offers open-source automation that is simple, flexible, and powerful. Ansibleは、シンプルで柔軟で強力なオープンソースオー トメーションを提供しています。 Ansible https://docs.ansible.com/
Slide 27
Slide 27 text
• GrafanaがメンテナンスしているAnsible collectionがある。 • インストールから設定まで一括で管理できる Ansible https://docs.ansible.com/ansible/latest/collections/grafana/grafana/index.html#plugins-in-grafana-grafana
Slide 28
Slide 28 text
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
Slide 29
Slide 29 text
Grafana Agent - Metrics / Logs
Slide 30
Slide 30 text
Grafana Agent - Metrics / Logs ダッシュボードやAlertを設定するためにメトリクスやログを クエリできるようになる
Slide 31
Slide 31 text
ソラカメAPIのE2Eテスト基盤と 可視化
Slide 32
Slide 32 text
• ソラカメはAPIから利用することが可能 • 実際のユーザーのように、外部からAPIを呼び出し て、期待通りに動いているかテストしている ソラカメAPI E2Eテスト
Slide 33
Slide 33 text
ソラカメAPI E2Eテスト E2E テストコード (Python) Grafana Cloud ソラカメAPI ① テスト実行 (5分ごと) ② テスト結果送信
Slide 34
Slide 34 text
✅ テスト用のカメラをセットアップして、定期的にテストを 実施 ✅ API ~ カメラまで通してテストすることが可能。 ✅ テストが意図した通りに動いていることを確認。 ✅ デバイスの不具合を見つけることも可能。 (特定のデバイスのみテストが失敗するなど) ⛔ Flaky (再実行することである程度カバーしている) ソラカメAPI E2Eテスト
Slide 35
Slide 35 text
ソラカメAPI E2Eテスト E2E テストコード (Python) Grafana Cloud ソラカメAPI ① テスト実行 (5分ごと) ② テスト結果送信
Slide 36
Slide 36 text
ソラカメAPI E2Eテスト ① Grafana Cloudのエンドポイント 取得 ② テスト結果を送信する際のメトリ クスフォーマットに従って格納 ③ ①で取得したエンドポイントに POST
Slide 37
Slide 37 text
ソラカメAPI E2Eテスト ① Grafana Cloudのエンドポイント 取得 ② テスト結果を送信する際のメトリ クスフォーマットに従って格納 ③ ①で取得したエンドポイントに POST
Slide 38
Slide 38 text
ソラカメAPI E2Eテスト f"{metric_index},test_name={result['name']},device_id={result ['device_id']},test_kind={test_kind} value={value} {int(time.time() * 1e9)}" ,labelx=xxx,labely=yyy =value
Slide 39
Slide 39 text
ソラカメAPI E2Eテスト Grafana Cloud ,labelx=xxx,labely=yyy =value influxDB line protocol 送信 Prometheus のメト リクスに変換
Slide 40
Slide 40 text
ソラカメAPI E2Eテスト Grafana Cloud ,labelx=xxx,labely=yyy =value influxDB line protocol 送信 Prometheus のメト リクスに変換 シンプルなプロトコル。ツールやライブラリなど使わなくても 気軽にメトリクスを送信可能
Slide 41
Slide 41 text
ソラカメAPI E2Eテスト 他のメトリクスと同様に、PromQLを使ってダッシュボードに 表示可能 sora_cam_pytest_results_prod{test_name=~"test_p2 p_api_.*"}
Slide 42
Slide 42 text
ソラカメAPI E2Eテスト 3回連続それぞれのテストが成功していることがわかる
Slide 43
Slide 43 text
ソラカメAPI E2Eテスト このAPIは調子悪そう。 同一のテスト名で、違うデバイスはパスしているなら、デバ イス起因の問題の可能性も
Slide 44
Slide 44 text
• ソラカメで活用しているGrafana Cloudの機能を紹介 しました。 • Grafana Agent を使ったサーバーのモニタリング • E2Eテスト基盤の可視化 まとめ マネージドサービスをフルに活用することで、シンプルな構 成で監視基盤を構築できる 👍