IoTと監視
by
na-o-ys
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
IoT と監視 600株式会社 エンジニア 岡前直由
Slide 2
Slide 2 text
無人コンビニ600について ● 無人決済冷蔵庫 ○ クレジットカードリーダー ○ 電子錠 ○ RFID ○ Android タブレット ● 「半径50メートル商圏」の市場開拓を狙う ○ 20年で10兆円規模の市場に
Slide 3
Slide 3 text
自己紹介 ● 経歴 ○ 大阪大学大学院 (暗号理論・符号理論専攻) ○ 某SIer ○ 株式会社リブセンス ■ SRE, SWE, 機械学習エンジニア ○ 株式会社600 ■ 2018/9~ ■ 主に Product Quality Manager ● TypeScript, Kotlin
Slide 4
Slide 4 text
今日の内容 「冷蔵庫を監視する」ってどういうこと? Prometheus を用いた筐体監視事例の紹介
Slide 5
Slide 5 text
● OSS のシステムモニタリングツール ● アーキテクチャがシンプルで運用が容易 ● 機能充分なコンポーネント群と周辺ツール ○ 可視化 ○ アラート
Slide 6
Slide 6 text
Prometheus のアーキテクチャ
Slide 7
Slide 7 text
Prometheus × IoT の2つのポイント 1. サブコンポーネント Pushgateway の利用 2. メトリクス設計
Slide 8
Slide 8 text
Prometheus は Pull 型 監視対象自身がメトリクス取得用の HTTP エンドポイントを用意 し, Prometheus が定期的にスクレイピングする
Slide 9
Slide 9 text
Pushgateway Push 型の監視を実現するためのサブコンポーネント エッジデバイスへの Pull は難しい
Slide 10
Slide 10 text
メトリクス設計 最も重要な部分 ● サーバー監視など一般的な用途では, 基本的なメトリクスを組 み込んだ exporter が用意されている ● 「筐体が正常稼働」の条件をブレークダウン ○ Android アプリが起動している, タブレットのバッテリーが充 分である, クレジットカードが読み込める, … ○ Prometheusで表現できるメトリクス化
Slide 11
Slide 11 text
CounterとGauge Prometheusが用意しているメトリクスの型 ● Counter ○ 単調増加する値 ○ e.g. 合計リクエスト数, エラー数 ● Gauge ○ 任意に上下する値 ○ e.g. メモリ利用量, 温度
Slide 12
Slide 12 text
例1: バッテリー残量 バッテリー残量を表す Gauge メトリクス device_battery_percent
Slide 13
Slide 13 text
device_battery_percent{satellite_id=”xxx”} バッテリー残量を取得するクエリ
Slide 14
Slide 14 text
例2: Androidアプリの稼働率 Metric: アプリの累積稼働時間 (Counter) application_alive_total アプリが起動していればれば5分おきにincrementさせる
Slide 15
Slide 15 text
increase(application_alive_total{satellite_id="xxx"}[2w]) / (14 * 24 * 60 / 5) 直近2週間の稼働率を取得するクエリ
Slide 16
Slide 16 text
例3: クレジットカード読み取り成功率 Metric: 累積成功数/失敗数 (Counter) user_cardswipe_success_total user_cardswipe_failure_total
Slide 17
Slide 17 text
increase(user_card_swipe_success_total{satellite_id="xxx"}[3d]) / ( increase(user_card_swipe_success_total{satellite_id="xxx"}[3d]) + increase(user_card_swipe_failure_total{satellite_id="xxx"}[3d]) ) 3dあたりのクレジットカード読み取り成功率を取得するクエリ
Slide 18
Slide 18 text
筐体の性能評価指標 シンプルなメトリクスから多くの指標が表現可能 ● 故障回数 ● 平均故障間隔 (MTBF) ● 平均修理時間 (MTTR) ● 故障率 ● ...
Slide 19
Slide 19 text
ダッシュボード例
Slide 20
Slide 20 text
IoT監視とサーバー監視 同じ? ● モニタリングツール導入 ● グラフ化・ダッシュボード化 ● アラート定義 ● オンコール対応
Slide 21
Slide 21 text
運用はけっこう違う ● Web サーバーが1台落ちてもサービス影響無い/小さい ○ 冗長構成 ● IoT エッジデバイスが1つ落ちると即サービス影響 ○ 冗長化が難しい ○ 部品の品質を高めて故障率を下げるしかない
Slide 22
Slide 22 text
品質向上 監視データをもとに, ● 故障原因や頻度を分析 ● 解決すべき課題を優先度付け ● 日々改善
Slide 23
Slide 23 text
がんばっている
Slide 24
Slide 24 text
おわりに ● 半径50メートル商圏の先行プレイヤーとして! ● 週休3日、待遇良いです! ● (幸か不幸か)エンジニアリング課題が山積みです 600で一緒にIoTしませんか