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テスト基盤の可視化 まとめ マネージドサービスをフルに活用することで、シンプルな構 成で監視基盤を構築できる 👍