目次
追加すべきメトリクス一覧
1. システムリソースメトリクス
- CPU使用率:
node_cpu_seconds_total - メモリ使用率:
node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes - ディスク使用率:
node_filesystem_avail_bytes / node_filesystem_size_bytes - ネットワーク帯域:
rate(node_network_receive_bytes_total[5m]) - Docker コンテナメトリクス:
container_cpu_usage_seconds_total,container_memory_usage_bytes
2. ビジネスメトリクス
- 価格変動率: 各シンボルの価格変動パーセンテージ
- 取引量トレンド: 時間帯別の取引量推移
- スプレッド分析: bid/askスプレッドの平均値と変動
- 市場深度: オーダーブックの深さ(流動性指標)
- 異常検知: 価格や取引量の異常なスパイク
3. データ品質メトリクス
- データ遅延:
received_at - timestamp(データ鮮度) - 重複率: 重複データの割合
- 欠損率: 期待されるデータポイントに対する欠損割合
- データ完全性: 必須フィールドの充足率
4. エラー率とリトライメトリクス
- WebSocket切断回数:
hyperliquid_orderbook_websocket_disconnections_total - 再接続成功率: 再接続試行に対する成功率
- API応答時間: 各エンドポイントの応答時間分布
- タイムアウト率: リクエストタイムアウトの発生率
5. Kafkaメトリクス(詳細)
- パーティションラグ: 各パーティションのコンシューマーラグ
- メッセージサイズ分布: メッセージサイズのヒストグラム
- コンシューマーグループ状態: アクティブ/非アクティブなコンシューマー
- リバランス頻度: コンシューマーグループのリバランス回数
6. QuestDB詳細メトリクス
- クエリ実行時間: 各クエリタイプの実行時間
- テーブルサイズ: 各テーブルのレコード数とディスク使用量
- インデックス効率: インデックス使用率とヒット率
- パーティション統計: 日次パーティションのサイズと古さ
実装例(Rust)
// 価格変動率の計算
lazy_static! {
pub static ref PRICE_CHANGE_PERCENTAGE: GaugeVec = register_gauge_vec!(
"crypto_price_change_percentage",
"Price change percentage over different time windows",
&["symbol", "window"]
).unwrap();
pub static ref SPREAD_PERCENTAGE: GaugeVec = register_gauge_vec!(
"crypto_spread_percentage",
"Bid-ask spread as percentage of mid price",
&["symbol"]
).unwrap();
pub static ref MARKET_DEPTH: GaugeVec = register_gauge_vec!(
"crypto_market_depth_usd",
"Market depth in USD at different price levels",
&["symbol", "side", "level"]
).unwrap();
}
// 使用例
fn calculate_metrics(orderbook: &Orderbook) {
// スプレッド計算
let spread_pct = (orderbook.best_ask - orderbook.best_bid) / orderbook.mid_price * 100.0;
SPREAD_PERCENTAGE
.with_label_values(&[&orderbook.symbol])
.set(spread_pct);
// 市場深度計算(例:0.1%以内の流動性)
let depth_bid = calculate_depth(&orderbook.bids, orderbook.mid_price * 0.999);
let depth_ask = calculate_depth(&orderbook.asks, orderbook.mid_price * 1.001);
MARKET_DEPTH
.with_label_values(&[&orderbook.symbol, "bid", "0.1%"])
.set(depth_bid);
}
Grafanaダッシュボード追加パネル案
-
システムヘルス
- CPU/メモリ使用率ゲージ
- ディスク容量アラート
- ネットワークスループット -
データ品質
- データ遅延ヒートマップ
- エラー率トレンド
- 重複検出率 -
ビジネスインサイト
- 価格変動率チャート
- 取引量ヒートマップ(時間×シンボル)
- スプレッド推移グラフ -
アラート設定案
- CPU使用率 > 80%
- メモリ使用率 > 90%
- データ遅延 > 1秒
- エラー率 > 1%
- スプレッド異常拡大