暮らしの技術

暮らしを豊かにする技術や、特に暮らしを豊かにしない技術があります

入門監視 読んだ

読んだ。

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

モチベーション

  • 監視設定はこれまでもしてきたけど、結構新規に入れることが多かった。
  • 使い込まれて成熟した監視設定、みたいなのを知らない
    • そういうベスト・プラクティスを知りたかった。

読んだ結果

  • 1章, 2章が良かったので定期的に読みたい
  • 結構幅広くて、ビジネスKPIとか対応チームの組み方、ネットワークからセキュリティまでカバーされててびっくりした
  • 一方で、絶対動いててほしいところは最低これぐらいあるでしょみたいな感じで下限を設定した監視をする*1、みたいな、システムの特性を加味した監視設定のテクニックみたいなのはあんまりなかった気がする。
    • これはちょっと残念、サンプリングエラーの話とかはありましたが...

読書メモ

1章: アンチパターン

  • 何度も読みたい
  • `5. 手動設定` がよい(つらい...)
    • Stackdriver を使ってた頃に開発環境とステージングと本番のため、同じ設定を3回繰り返すといったことがあったのを思い出した。
      • チームは締切に迫られていて、設定の自動化について調べる余裕がなかった
      • テスト環境では手動で設定を試していたので、それなら勉強せずに設定ができた
    • その後なんども設定を変えることはないと思っていた
    • 実際にはアプリケーションの進化と共に設定は増えたり減ったりするはず
      • そのためにも自動化は必要そう

2章: デザインパターン

  • 全体的にデザインパターンというよりベストプラクティスっぽい
  • 2.2
    • たしかにユーザに近いところから始めるのは導入が楽そう
  • 2.3
    • 作るのではなく買う!!!!
      • OSS活用しつつ内部で用意してペイする規模ならかわってくるのかも、どれぐらいからそういう話になってくるんだろ

3章: アラート、オンコール、インシデント管理

  • 3.3 インシデント管理 が参考になったので読み直したい
    • ITIL のインシデント管理の紹介
    • インシデントの際の役割の整理と、そのうち2つ以上を兼務するのは避けるべきであること、またインシデント時の役割分担は通常時の役割と関係なく設定できたほうがいいことが指摘されている
      • 例えばチームマネージャーは現場指揮官(IC, Incident Commander)よりコミュニケーション調整役として社内外の関係者に最新の情報を提供する役割のほうがおすすめ、とか
        • 過去を振り返っても自然とそうなっていた気がする
          • いいチームだったと言えそう

4 章: 統計入門

  • とくにあまり感想がない

5章: ビジネスを監視する

  • 会社KPIを監視と結びつけるのは結構重要な気がしている
    • KPI から企画が決まることが多い
      • 事前にKPIを知っておけば、システム内でどこの負荷が高まる可能性が高いか予測がつく
    • ビジネスメトリクスとシステムメトリクスが結びついてると振り返りもしやすそう

6章: フロントエンド監視

  • やったことないからやってみたいのだよなあ
    • 6.4. ロギングについて でログの収集について書かれている
      • 一回ちゃんとやってみたい
        • SaaS がどう実現しているかも興味がある

7章: アプリケーション監視

  • NewRelic の APMJava アプリケーション監視してたときはなんかいい感じでよかった
    • しかし基本的に APM ってむずいですよね
  • `/health` エンドポイントパターンはなんどかやった、あれは便利
  • 7.4 アプリケーションロギング
    • 7.4.1 メトリクス vs ログ
      • 興味深いテーマな気がする。そりゃログのほうが表現力は高いよね。
    • 7.4.2 なんのログを取るべきか
      • これは開発中も迷っていて、ログレベルについてはいつも悩んでる気がする。
        • けど手元で不具合の再現するときは DEBUG レベルのログで全部出したいと思うし、しかし本番でそんなに吐き出すわけにもいかなくてむずい。答えがないと思う。
          • それがチームにとってどういう条件で有益なのか次第といえる
  • 分散トレーシングの話もちょっと出てきた
    • GAE の古い SDK は分散トレーシングの機能があって、SDK 経由での gRPC 呼び出しはすべて記録されて、それぞれのサービスの呼び出しにどれぐらいかかったかがサンプリングされて記録される
      • 便利でした

8章: サーバ監視

  • システムを構成するさまざまなコンポーネントに対しての監視アプローチが出てきておもしろい
    • スケジュールジョブの監視面白いけど、結構ないがしろにしがちな箇所なので参考にしたい
      • 手軽に実践できそうな例が載ってて助かった

9章、10章、11章

  • それぞれネットワークとセキュリティと監視アセスメントの章
    • 確かにこの辺も監視対象になってくることがあるのか、、、と思った

*1:これはアリなんですかねえ?