Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team

motemen
October 27, 2017

はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team

2017/10/27 モニタリング勉強会の資料です https://mackerel-ug.connpass.com/event/68478/

motemen

October 27, 2017
Tweet

More Decks by motemen

Other Decks in Technology

Transcript

  1. History of Mackerel 2007 はてな社内サーバ管理ツール 2013 クラウドサーバ監視サービス 開発開始 2014 Mackerel

    チーム結成 2014-05 ベータリリース 2014-09 正式リリース 2016-06 連続リリース100週達成
  2. プラグイン • github.com/mackerelio/mackerel-agent-plugins • Linux (fork, netstat), inode • Docker,

    Elasticsearch, fluentd, MySQL, nginx, ... • AWS: CloudFront, DynamoDB, RDS, ...
  3. 組織構造 Op Team Dev Team 1 Dev Team 2 Dev

    Team 3 Service B Service A Service C Service D
  4. HTTP レスポンス / サービスメトリック • より詳しいステータス状況 • fluentd で収集・集計 ◦

    fluent-plugin-mackerel ◦ レイテンシ ▪ average, 90/99 %ile ◦ ステータスコード ▪ percentage, count
  5. ホストメトリック • ビルトイン: Loadavg, CPU%, Memory, Filesystem, ... • OS

    やミドルウェアに合わせたカスタムメトリック • 監視よりは観察用
  6. Service/Role 世界観 • リポジトリが Service/Role 対応 ◦ hatena/Hatena-Identity • リポジトリ中のディレクトリが

    Service/Role 対応 ◦ nginx-config/Hatena-Identity/backend/nginx.conf ◦ chef/cookbooks/service-identity/recipes/backend.rb
  7. その他 • イベントのグラフ投稿 ◦ Dev: デプロイ ◦ Op: chef 適用

    • mkr でサービス事情の監視 ◦ 旧: cron で DB 不整合の件数をメールで通知 ◦ 新: mkr throw でサービスメトリック投稿、監視閾値設定
  8. 設定した監視ポイント • 外形監視(レスポンスボディチェック) • nginx - app 間通信(専用エンドポイント + check-http)

    • app - DB 間通信(専用エンドポイント + check-http) • nginx: カスタムメトリック(mackerel-plugin-nginx) • app: カスタムメトリック(mackerel-plugin-gostats) • おまけ: app-version チェック