Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

中国地方Db勉強会

中国地方DB勉強会の発表資料

  • Login to see the comments

中国地方Db勉強会

  1. 1. Mackerelを支えるデータストア - PostgreSQL, Redis, Graphite 2015年4月18日 第8回 中国地方DB勉強会 id:daiksy
  2. 2. 粕谷 大輔 id:daiksy (@daiksy) 株式会社 はてな
  3. 3. トイレに閉じ込められる 検 索
  4. 4. Mackerelの機能紹介
  5. 5. ホストやロールによる メトリック管理
  6. 6. ロール
  7. 7. サーバのスケーリングに 対応
  8. 8. サーバーインスタンスごとの グラフの各色の重ねあわせで 全体の傾向を把握
  9. 9. メトリック監視とアラート
  10. 10. 多様な通知先
  11. 11. 通知時にグラフ画像が添付 ※Slackのみ。順次拡張予定
  12. 12. スマフォ対応
  13. 13. サービスメトリック
  14. 14. オフィスの温度・湿度を計測
  15. 15. 新機能順次開発中! ローンチ以来毎週リリース継続中!
  16. 16. Mackerelのデータストア
  17. 17. Mackerelのデータストア redis Graphite PostgreSQL
  18. 18. {"name": "hogeHost", "meta": {}, “interfaces”: [{“address":"192.168.1.1","defaultGateway":"192.168. 1.1","encap":"Ethernet","ipAddress":"192.168.1.1"...} ]}
  19. 19. メトリックの保存先と用途 - Redis: モニター監視 - Graphite: 時系列データの永続化 - PostgreSQL: グラフ定義
  20. 20. redis
  21. 21. ❝RedisはANSI Cで書かれていて、 すべてのデータセットをメモリ内 に読み込むため、危険なほどのス ピードで動作します!❞ http://redis.shibu.jp/features.html
  22. 22. _人人人人人人人人人人人人_ > 危険なほどのスピード <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  23. 23. リスト・セット・ハッシュな どのデータ構造をValueとし て格納できるKVS
  24. 24. すべてのデータをメモリ上に 格納するので高速 揮発性のデータストアだが、 定期的にディスクに書き込ん で永続化される
  25. 25. Mackerelでは監視対象データ をRedisで扱っている
  26. 26. クライアントから送られた メトリックは、Redisと時系列 DB(後述)に格納される
  27. 27. モニター監視は直近5分のデータ のみあればよい -> Redisで高速に処理 ※具体的には直近15個のデータを 保持。それ以前は削除
  28. 28. Graphite
  29. 29. Graphiteの構成 - Carbon: メトリック収集 - Whisper: 時系列DB - graphite-web: グラフ描画
  30. 30. Mackerelのグラフ用時系列 データを管理 ※グラフ描画部分は独自実装
  31. 31. 時系列データはクライアント から1分おきに収集
  32. 32. まともに全部保存したら データ量が膨大になる
  33. 33. グラフに必要な 時系列データの特徴 - 直近のデータは細かく見たい - 古いデータはアバウトでも良い
  34. 34. 直近6時間のグラフ 直近1ヶ月のグラフ
  35. 35. 描画に必要なデータポイントは 描画範囲が広がるほど粒度が荒くてよくなる
  36. 36. 直近1日のデータ -> 1分ごとに保存 それ以前のデータ -> 5分ごとに平均化 のように古くなるほどデータを 間引きできる
  37. 37. 具体的には 直近25時間 -> 60秒ごと 直近21日間 -> 5分ごと 直近90日間 -> 1時間ごと
  38. 38. PostgreSQL
  39. 39. 時系列データをのぞく Mackerelの全データを管理
  40. 40. PostgreSQLのうれしみポイント - Json型 - チェック制約
  41. 41. ホストのメタ情報 - EC2インスタンス情報 - ネットワーク・インターフェース -> Json型
  42. 42. チェック制約 “AかBいずれかがNullの場合はCは 0になる” のような制約 仕様としてのデータの制約をデー タベースの制約として定義
  43. 43. 適材適所にデータストアを 活用しよう。
  44. 44. ご清聴 ありがとうございました

×