要点OTel Redis receiver を使用して、ClickStack で Redis のパフォーマンスメトリクスを監視します。デモデータセットと、あらかじめ用意されたダッシュボードが含まれています。
既存の Redis とのインテグレーション
前提条件
- 稼働中の ClickStack インスタンス
- 既存の Redis インストール (バージョン 3.0 以降)
- ClickStack から Redis へのネットワークアクセス (デフォルトポート: 6379)
- authentication が有効な場合は Redis のパスワード
1
Redis 接続を確認する
まず、Redis に接続でき、INFO コマンドを実行できることを確認します。- ローカル環境:
localhost:6379 - Docker: コンテナー名またはサービス名を使用 (例:
redis:6379) - リモート:
<redis-host>:6379
2
カスタム OTel collector の設定を作成する
ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、OpenTelemetry collector のベース設定を拡張できます。カスタム設定は、OpAMP 経由で HyperDX が管理するベース設定にマージされます。以下の内容で、redis-metrics.yaml という名前のファイルを作成します。redis-metrics.yaml
localhost:6379上の Redis に接続します (環境に合わせて endpoint を調整してください)- 10 Seconds ごとにメトリクスを収集します
- 主要なパフォーマンスメトリクス (コマンド、クライアント、メモリ、keyspace 統計) を収集します
- OpenTelemetry semantic conventions に従って、必須の
service.nameリソース属性を設定します - 専用の pipeline を介してメトリクスを ClickHouse エクスポーターにルーティングします
redis.commands.processed- 1 秒あたりに処理されたコマンド数redis.clients.connected- 接続中のクライアント数redis.clients.blocked- ブロッキング呼び出しで待機しているクライアント数redis.memory.used- Redis が使用しているメモリ量 (バイト)redis.memory.peak- ピークメモリ使用量redis.keyspace.hits- 成功したキーのルックアップ数redis.keyspace.misses- 失敗したキーのルックアップ数 (cache ヒット率の計算用)redis.keys.expired- 期限切れになったキー数redis.keys.evicted- メモリ不足により追い出されたキー数redis.connections.received- 受信した接続の総数redis.connections.rejected- 拒否された接続数
- カスタム構成では、新しい receivers、processors、pipelines のみを定義します
memory_limiterとbatchの processors、およびclickhouseエクスポーターは、ベースの ClickStack 構成ですでに定義されています。ここでは名前で参照するだけですresourceprocessor は、OpenTelemetry semantic conventions に従って必須のservice.name属性を設定します- authentication を使用する本番環境では、パスワードを環境変数
${env:REDIS_PASSWORD}に保存してください collection_intervalは必要に応じて調整してください (既定値は 10s。値を小さくするとデータ量が増えます)- 複数の Redis インスタンスがある場合は、それらを区別できるように
service.nameをカスタマイズしてください (例:"redis-cache"、"redis-sessions")
3
ClickStack がカスタム設定を読み込むように構成する
既存の ClickStack デプロイメントでカスタム collector 設定を有効にするには、次の対応が必要です。- カスタム設定ファイルを
/etc/otelcol-contrib/custom.config.yamlにマウントする - 環境変数
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yamlを設定する - ClickStack と Redis 間のネットワーク接続を確保する
オプション 1: Docker Compose
ClickStack のデプロイメント設定を更新します。オプション 2: Docker run (オールインワンイメージ)
オールインワンイメージをdocker run で使用する場合:4
HyperDX でメトリクスを確認する
設定が完了したら、HyperDX にログインして、メトリクスが取り込まれていることを確認します。- Metricsエクスプローラーに移動します
redis.で始まるメトリクスを検索します (例:redis.commands.processed、redis.memory.used)- 設定した収集間隔でメトリクスのデータポイントが表示されるはずです
デモデータセット
1
サンプルのメトリクスデータセットをダウンロードする
事前生成済みのメトリクスファイルをダウンロードします (実際の傾向に近い 24 時間分の Redis メトリクス) :- キャッシュウォームアップイベント (06:00) - ヒット率が 30% から 80% に上昇
- トラフィックスパイク (14:30-14:45) - 接続負荷を伴ってトラフィックが 5 倍に急増
- メモリ逼迫 (20:00) - キーのエビクションと cache パフォーマンスの低下
- 日次トラフィックパターン - 営業時間中のピーク、夕方の低下、ランダムな小規模スパイク
2
3
4
HyperDX でメトリクスを確認する
読み込み後、メトリクスをすばやく確認するには、あらかじめ用意されたダッシュボードを使うのが最も簡単です。ダッシュボードをインポートして Redis メトリクスをまとめて表示するには、ダッシュボードと可視化 セクションに進んでください。デモデータセットの時間範囲は 2025-10-20 00:00:00 から 2025-10-21 05:00:00 までです。HyperDX の時間範囲がこの期間に一致していることを確認してください。次のような興味深いパターンを確認できます:
- 06:00 - キャッシュウォームアップ (低いヒット率が上昇)
- 14:30-14:45 - トラフィックスパイク (クライアント接続数が増加し、一部で拒否が発生)
- 20:00 - メモリ逼迫 (キーのエビクションが始まる)
ダッシュボードと可視化
1
してダッシュボード設定を取得する
2
あらかじめ用意されたダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します
- 右上の三点メニューから Import Dashboard をクリックします
redis-metrics-dashboard.jsonファイルをアップロードし、Finish Import をクリックします
3
ダッシュボードを表示する
ダッシュボードは、すべての可視化があらかじめ設定された状態で作成されます。デモデータセットでは、時間範囲を 2025-10-20 05:00:00 - 2025-10-21 05:00:00 (UTC) に設定してください (ローカルのタイムゾーンに応じて調整してください) 。インポートしたダッシュボードには、デフォルトでは時間範囲が設定されていません。
トラブルシューティング
カスタム設定が読み込まれない
CUSTOM_OTELCOL_CONFIG_FILE が正しく設定されているか確認してください。
/etc/otelcol-contrib/custom.config.yaml にマウントされていることを確認してください。
HyperDX にメトリクスが表示されない
認証エラー
ネットワーク接続の問題
docker run コマンドで、両方のコンテナーが同じネットワークに接続されるようにしてください。
次のステップ
- 重要なメトリクス (メモリ使用量のしきい値、接続数の上限、cache ヒット率の低下) に対するアラートを設定します
- 特定のユースケース向けに、追加のダッシュボードを作成します (レプリケーションラグ、永続化パフォーマンス)
- 異なるエンドポイントとサービス名を使用して receiver 設定を複製し、複数の Redis インスタンスを監視します