既存の Redis とのインテグレーション
このセクションでは、ClickStack OTel collector で Redis receiver を設定し、既存の Redis 環境から ClickStack にメトリクスを送信できるようにする手順を説明します。
既存の環境をご自身で設定する前に Redis メトリクスのインテグレーションを試したい場合は、次のセクションで用意されている事前設定済みのデモデータセットを使ってテストできます。
前提条件
- 稼働中の ClickStack インスタンス
- 既存の Redis インストール (バージョン 3.0 以降)
- ClickStack から Redis へのネットワークアクセス (デフォルトポート: 6379)
- authentication が有効な場合は Redis のパスワード
Redis 接続を確認する
まず、Redis に接続でき、INFO コマンドを実行できることを確認します。
# Test connection
redis-cli ping
# Expected output: PONG
# Test INFO command (used by metrics collector)
redis-cli INFO server
# Should display Redis server informationRedisで認証が必要な場合:
redis-cli -a <your-password> ping一般的な Redis のエンドポイント:
- ローカル環境:
localhost:6379 - Docker: コンテナー名またはサービス名を使用 (例:
redis:6379) - リモート:
<redis-host>:6379
カスタム OTel collector の設定を作成する
ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、OpenTelemetry collector のベース設定を拡張できます。カスタム設定は、OpAMP 経由で HyperDX が管理するベース設定にマージされます。
以下の内容で、redis-metrics.yaml という名前のファイルを作成します。
receivers:
redis:
endpoint: "localhost:6379"
collection_interval: 10s
# Uncomment if Redis requires authentication
# password: ${env:REDIS_PASSWORD}
# Configure which metrics to collect
metrics:
redis.commands.processed:
enabled: true
redis.clients.connected:
enabled: true
redis.memory.used:
enabled: true
redis.keyspace.hits:
enabled: true
redis.keyspace.misses:
enabled: true
redis.keys.evicted:
enabled: true
redis.keys.expired:
enabled: true
processors:
resource:
attributes:
- key: service.name
value: "redis"
action: upsert
service:
pipelines:
metrics/redis:
receivers: [redis]
processors:
- resource
- memory_limiter
- batch
exporters:
- clickhouseこの構成では、次のことを行います。
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- 拒否された接続数
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 のデプロイメント設定を更新します。
services:
clickstack:
# ... existing configuration ...
environment:
- CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
# Optional: If Redis requires authentication
# - REDIS_PASSWORD=your-redis-password
# ... other environment variables ...
volumes:
- ./redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
# ... other volumes ...
# If Redis is in the same compose file:
depends_on:
- redis
redis:
image: redis:7-alpine
ports:
- "6379:6379"
# Optional: Enable authentication
# command: redis-server --requirepass your-redis-passwordオプション 2: Docker run (オールインワンイメージ)
オールインワンイメージを docker run で使用する場合:
docker run --name clickstack \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
clickhouse/clickstack-all-in-one:latest重要: Redis が別のコンテナーで実行されている場合は、Docker ネットワークを使用してください。
# Create a network
docker network create monitoring
# Run Redis on the network
docker run -d --name redis --network monitoring redis:7-alpine
# Run ClickStack on the same network (update endpoint to "redis:6379" in config)
docker run --name clickstack \
--network monitoring \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
clickhouse/clickstack-all-in-one:latestHyperDX でメトリクスを確認する
設定が完了したら、HyperDX にログインして、メトリクスが取り込まれていることを確認します。
- Metricsエクスプローラーに移動します
redis.で始まるメトリクスを検索します (例:redis.commands.processed、redis.memory.used)- 設定した収集間隔でメトリクスのデータポイントが表示されるはずです
デモデータセット
本番システムを構成する前に Redis メトリクスのインテグレーションを試したいユーザー向けに、実際の Redis メトリクスの傾向に近い、事前生成済みのデータセットを用意しています。
サンプルのメトリクスデータセットをダウンロードする
事前生成済みのメトリクスファイルをダウンロードします (実際の傾向に近い 24 時間分の Redis メトリクス) :
# Gauge メトリクスをダウンロード(メモリ、断片化率)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-gauge.csv
# sum メトリクスをダウンロード(コマンド、接続、keyspace 統計)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-sum.csvこのデータセットには、次のような現実的なパターンが含まれています:
- キャッシュウォームアップイベント (06:00) - ヒット率が 30% から 80% に上昇
- トラフィックスパイク (14:30-14:45) - 接続負荷を伴ってトラフィックが 5 倍に急増
- メモリ逼迫 (20:00) - キーのエビクションと cache パフォーマンスの低下
- 日次トラフィックパターン - 営業時間中のピーク、夕方の低下、ランダムな小規模スパイク
ClickStack を起動する
ClickStack インスタンスを起動します:
docker run -d --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-all-in-one:latestClickStack が完全に起動するまで約 30 秒待ちます。
ClickStack にメトリクスを読み込む
メトリクスを ClickHouse に直接読み込みます:
# Gauge メトリクスを読み込む(メモリ、断片化)
cat redis-metrics-gauge.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
# sum メトリクスを読み込む(コマンド、接続、keyspace)
cat redis-metrics-sum.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"HyperDX でメトリクスを確認する
読み込み後、メトリクスをすばやく確認するには、あらかじめ用意されたダッシュボードを使うのが最も簡単です。
ダッシュボードをインポートして Redis メトリクスをまとめて表示するには、ダッシュボードと可視化 セクションに進んでください。
ダッシュボードと可視化
ClickStack で Redis の監視を始めるにあたって、Redis メトリクス向けの主要な可視化を用意しています。
ダッシュボード設定をダウンロードする
あらかじめ用意されたダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します
- 右上の三点メニューから Import Dashboard をクリックします

redis-metrics-dashboard.jsonファイルをアップロードし、Finish Import をクリックします

ダッシュボードを表示する
ダッシュボードは、すべての可視化があらかじめ設定された状態で作成されます。

トラブルシューティング
カスタム設定が読み込まれない
環境変数 CUSTOM_OTELCOL_CONFIG_FILE が正しく設定されているか確認してください。
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILEカスタム設定ファイルが /etc/otelcol-contrib/custom.config.yaml にマウントされていることを確認してください。
docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yamlカスタム設定の内容を表示し、正しく読み取れることを確認します:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yamlHyperDX にメトリクスが表示されない
collector から Redis にアクセスできることを確認してください。
# ClickStack コンテナーから実行
docker exec <clickstack-container> redis-cli -h <redis-host> ping
# 期待される出力: PONGRedis の INFO コマンドが動作するか確認します:
docker exec <clickstack-container> redis-cli -h <redis-host> INFO stats
# Redis統計情報が表示されるはずです有効な設定に Redis receiver が含まれていることを確認してください:
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 "redis:"collector のログにエラーがないか確認します:
docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i redis
# 接続エラーや認証エラーがないか確認する認証エラー
ログに認証エラーが表示された場合:
# Redis が認証を必要とすることを確認する
redis-cli CONFIG GET requirepass
# 認証をテストする
redis-cli -a <password> ping
# ClickStack 環境にパスワードが設定されていることを確認する
docker exec <clickstack-container> printenv REDIS_PASSWORD設定を更新し、パスワードを使用するようにします。
receivers:
redis:
endpoint: "redis:6379"
password: ${env:REDIS_PASSWORD}ネットワーク接続の問題
ClickStack から Redis に接続できない場合:
# 両方のコンテナーが同じネットワーク上にあるか確認する
docker network inspect <network-name>
# 接続性をテストする
docker exec <clickstack-container> ping redis
docker exec <clickstack-container> telnet redis 6379Docker Compose ファイルまたは docker run コマンドで、両方のコンテナーが同じネットワークに接続されるようにしてください。
次のステップ
- 重要なメトリクス (メモリ使用量のしきい値、接続数の上限、cache ヒット率の低下) に対するアラートを設定します
- 特定のユースケース向けに、追加のダッシュボードを作成します (レプリケーションラグ、永続化パフォーマンス)
- 異なるエンドポイントとサービス名を使用して receiver 設定を複製し、複数の Redis インスタンスを監視します
本番環境への移行
このガイドでは、すばやくセットアップできるよう、ClickStack に組み込まれた OpenTelemetry Collector を利用しています。本番環境でのデプロイメントでは、お使いの OTel Collector を運用し、データを ClickStack の OTLP エンドポイントに送信することを推奨します。本番環境向けの構成については、OpenTelemetry データの送信を参照してください。