Save 37% off PRO during our Black Friday Sale! »

IoTと監視

2512549e2f02c86ed10e1c170747e691?s=47 na-o-ys
September 11, 2019

 IoTと監視

2512549e2f02c86ed10e1c170747e691?s=128

na-o-ys

September 11, 2019
Tweet

Transcript

  1. IoT と監視
 600株式会社
 エンジニア 岡前直由


  2. 無人コンビニ600について
 • 無人決済冷蔵庫
 ◦ クレジットカードリーダー
 ◦ 電子錠
 ◦ RFID
 ◦

    Android タブレット
 • 「半径50メートル商圏」の市場開拓を狙う
 ◦ 20年で10兆円規模の市場に

  3. 自己紹介
 • 経歴
 ◦ 大阪大学大学院 (暗号理論・符号理論専攻)
 ◦ 某SIer
 ◦ 株式会社リブセンス


    ▪ SRE, SWE, 機械学習エンジニア
 ◦ 株式会社600
 ▪ 2018/9~
 ▪ 主に Product Quality Manager
 • TypeScript, Kotlin

  4. 今日の内容
 「冷蔵庫を監視する」ってどういうこと?
 Prometheus を用いた筐体監視事例の紹介


  5. • OSS のシステムモニタリングツール
 • アーキテクチャがシンプルで運用が容易
 • 機能充分なコンポーネント群と周辺ツール
 ◦ 可視化
 ◦

    アラート

  6. Prometheus のアーキテクチャ


  7. Prometheus × IoT の2つのポイント
 1. サブコンポーネント Pushgateway の利用
 2. メトリクス設計


  8. Prometheus は Pull 型
 監視対象自身がメトリクス取得用の HTTP エンドポイントを用意 し, Prometheus が定期的にスクレイピングする


  9. Pushgateway
 Push 型の監視を実現するためのサブコンポーネント
 エッジデバイスへの Pull は難しい


  10. メトリクス設計
 最も重要な部分
 • サーバー監視など一般的な用途では, 基本的なメトリクスを組 み込んだ exporter が用意されている
 • 「筐体が正常稼働」の条件をブレークダウン


    ◦ Android アプリが起動している, タブレットのバッテリーが充 分である, クレジットカードが読み込める, …
 ◦ Prometheusで表現できるメトリクス化

  11. CounterとGauge
 Prometheusが用意しているメトリクスの型
 • Counter
 ◦ 単調増加する値
 ◦ e.g. 合計リクエスト数, エラー数


    • Gauge
 ◦ 任意に上下する値
 ◦ e.g. メモリ利用量, 温度

  12. 例1: バッテリー残量
 バッテリー残量を表す Gauge メトリクス
 device_battery_percent


  13. device_battery_percent{satellite_id=”xxx”} バッテリー残量を取得するクエリ 


  14. 例2: Androidアプリの稼働率
 Metric: アプリの累積稼働時間 (Counter)
 application_alive_total
 アプリが起動していればれば5分おきにincrementさせる


  15. increase(application_alive_total{satellite_id="xxx"}[2w]) / (14 * 24 * 60 / 5) 直近2週間の稼働率を取得するクエリ

  16. 例3: クレジットカード読み取り成功率
 Metric: 累積成功数/失敗数 (Counter)
 user_cardswipe_success_total
 user_cardswipe_failure_total


  17. 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あたりのクレジットカード読み取り成功率を取得するクエリ 


  18. 筐体の性能評価指標
 シンプルなメトリクスから多くの指標が表現可能
 • 故障回数
 • 平均故障間隔 (MTBF)
 • 平均修理時間 (MTTR)


    • 故障率
 • ...

  19. ダッシュボード例


  20. IoT監視とサーバー監視
 同じ?
 • モニタリングツール導入
 • グラフ化・ダッシュボード化
 • アラート定義
 • オンコール対応


  21. 運用はけっこう違う
 • Web サーバーが1台落ちてもサービス影響無い/小さい
 ◦ 冗長構成
 • IoT エッジデバイスが1つ落ちると即サービス影響
 ◦

    冗長化が難しい
 ◦ 部品の品質を高めて故障率を下げるしかない

  22. 品質向上
 監視データをもとに,
 • 故障原因や頻度を分析
 • 解決すべき課題を優先度付け
 • 日々改善


  23. がんばっている


  24. おわりに
 • 半径50メートル商圏の先行プレイヤーとして!
 • 週休3日、待遇良いです!
 • (幸か不幸か)エンジニアリング課題が山積みです
 600で一緒にIoTしませんか