-
Notifications
You must be signed in to change notification settings - Fork 29
グラフ機能仕様メモ
ashie edited this page Oct 31, 2014
·
8 revisions
- グラフを作成する際には、Itemの情報が必要。
現在はDBに格納していない情報もあるので、カラムを追加する。
- 型情報
- 単位
- 最新の情報を素早く取得したいため、個々のItemのみを個別に取得できる ようにしたい。 現状は監視サーバ毎の一括取得。 ただし、グラフ表示への導線を考えると必ずItem情報は事前に取得してい ると思われるため、優先度は低い。
- Historyデータはアイテムと同様にオンデマンドで取得する。
- 基本的にはHatoholのDBに保存しない。
- 理由: 全てを蓄積するには数が多すぎる。
- クライアントへは取ってきた値を直接渡す。 DBに保存しないため、アイテム取得とは少し異なる実装が必要。
- 過去数時間分程度は、Hatohol側にキャッシュするか?
- -> 実装の優先度は下げる。少なくとも14.12では実装しない。
- 一回辺りの最大History取得数は1000に制限する
- Eventの場合と同様の理由(Zabbix側が正しく動作しない)
- 漏れなく取得するのはクライアント側の役割とする
- -> データが足りないと推測される場合は時間範囲をシフトして再取得
- 当面は数値型以外のHistoryはサポートしない。
- 14.12ではZabbixのみサポート。
- HAPIを優先すべきか、ArmZabbixを優先すべきかは要検討。
- 15.03でCeilometerをサポート。
- Nagiosは検討中。少なくとも14.12ではサポートしない。
- 長期間のグラフ作成する場合には、Zabbixと同様に、Historyを直接扱う のではなく、Trend(集計データ)を使用する。
- Zabbix APIにはTrendの取得機能が無いため、Hatohol側で集計する。
集計は高速化のためHatoholサーバ(C++)で行う。
- -> 他監視システムにもそのまま使用可能
- 問題点は、一般的にZabbixのHistoryはTrendよりも保存期間が短いこと。 ただし、現状のZabbix APIを使用する限り解決方法は無い。
- 詳細はZabbixの実装を参考にしつつ決定する。
- trendは一時間毎に一レコード?
- 最大値・最小値・平均値・分散等?
- TrendはDBに保存する。
- 運用開始時点ではHistory保存期間より前に翻ることはできないが、これは仕様とする
- TODO: 保存期間は?
- アイドル時間を利用して投機的実行しておくとよいか?
- Itemにスコアをつけて、頻繁に参照されるItemについて優先実行
- -> 実装の優先度は下げる。少なくとも14.12では実装しない。
- 実装の優先度は下げる。14.12に入れるかどうかは時間次第。
- Zabbixのグラフ定義。
- 利用するかどうか詳細未定。少なくとも14.12ではサポートしない。
- 分割取得する。
- 受け取ったデータから逐次グラフ描画する。
- 時間範囲に応じて、Historyを取得するかTrendを取得するかを決定する。
- Zabbixと同じように「アイテム」ページの各行にグラフページへのリンクを追加し、 グラフ描画専用のページを用意する
- Flotを使用してJavaScriptで描画する: http://www.flotcharts.org/
- 単位接頭辞の変換はHatoholのWebUIで行う
- 15.03ではHatoholサーバ側のTrend機能に移すか?
- 定期的に新規値を取得して更新する
- リクエスト間隔を自動で調整できるように、アイテムの更新間隔もDBに入れておくべきか? (NVPSの計算のために取得はしているが、DBには保存していない)
- その他UIの仕様は実装しながら検討