狠狠撸

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

More Related Content

中国地方顿产勉强会