OpenTelemetry コレクターを使用して、Redis インスタンスに関するメトリクスを収集できます。コレクターは、テレメトリ データを収集、処理し、New Relic (または任意の可観測性バックエンド) にエクスポートする OpenTelemetry のコンポーネントです。Redis レシーバーは、単一の Redis インスタンスから Redis INFO データを取得し、そのデータからメトリクスを構築し、構成可能な間隔で次のコンシューマーに送信するように設計されています。
インストール手順を完了した後、事前に構築されたダッシュボードでこのメトリクス データを表示し、アラート ポリシーを作成し、カスタム クエリとグラフを作成します。
前提条件
Redis メトリクスの収集を開始するには、無料の New Relic アカウントにサインアップする必要があります。
サインアップしたら、次の設定が完了していることを確認してください。
- Redis レシーバーコンポーネント。コレクタはエンドポイント経由で Redis にアクセスする必要があるため。推奨される最小バージョンは v0.83.0 です。
- OpenTelemetryドキュメントに従う OpenTelemetry コレクター
OpenTelemetry コレクターをインストールする
OpenTelemetry ディストリビューションをインストールする
OpenTelemetry Collector Contrib Distroをインストールする必要があります。別のディストリビューションを使用している場合は、選択したディストリビューションに次のコンポーネントが含まれていることを確認してください。
重要
ディストリビューションにこれらのコンポーネントが含まれていない場合、次の手順の構成ファイルは適用されません。
OpenTelemetry コレクターを構成する
config.yaml
という名前の新しいファイルを更新または作成します。次のスニペットを新しいファイルに挿入します。
receivers: redis: endpoint: "<YOUR_REDIS_HOSTNAME>:<REDIS_PORT>" metrics: # Enable redis.maxmemory optional metric redis.maxmemory: enabled: true
processors: # This is needed since redis receiver is not currently adding any means to understand to which redis server the metrics are referring to attributes/redis_metrics: include: match_type: regexp metric_names: # Notice that if with single or without quotes just one backslash is needed 'redis\..*' - "redis\\..*" actions: - action: upsert key: server.address value: "<YOUR_REDIS_HOSTNAME>" - action: upsert key: server.port value: "<REDIS_PORT>" # resource and resource-detection processors allow decorating the metrics with host attributes resource: attributes: - key: host.id from_attribute: host.name action: insert resourcedetection: detectors: ["env", "system"] resourcedetection/cloud: detectors: ["gcp", "ec2", "azure"] timeout: 2s override: false
exporters: otlphttp: endpoint: https://otlp.nr-data.net headers: api-key: <NEW_RELIC_LICENSE_KEY>
service: telemetry: logs: pipelines: metrics: receivers: [redis] processors: - resourcedetection - resourcedetection/cloud - resource - attributes/redis_metrics exporters: [otlphttp]
- ファイル内の
NEW_RELIC_LICENSE_KEY
を独自の値に置き換えます。詳細については、 「New Relic ライセンス キー」を参照してください。 - OTel レシーバーによって Redis メトリクスに識別子が付加されないため、メトリクスを
server.address
およびserver.port
メタデータで修飾するには属性プロセッサが必要です。属性server.address
とserver.port
、Redis サーバー間で区別するデータのクエリとファセットを実行したり、New Relic エンティティを作成したりできるようにするために必要です。 - さらに、複数の Redis サーバーが単一の otel コレクターから監視され、各インスタンスを対応するメタデータで修飾する場合には、
resource/redis_metrics
の異なるインスタンスを持つ個別のパイプラインが必要になります。
他の構成オプションについては、次を参照してください。
コレクターを実行する
OpenTelemetry コレクターを実行します (実行方法は、選択したインストール方法によって異なる場合があります)。例:
/usr/bin/otelcol-contrib --config ./config.yaml
メトリクス エクスプローラーを使用してデータをクエリする
メトリクス エクスプローラーを使用して、取り込まれているメトリクスを確認できます。Redis レシーバーによって報告されるすべてのメトリクスは、 "redis."
プレフィックスで始まります。
次の NRQL クエリは、受信したメトリクスをクエリするのに役立つ例を示しています。
取り込まれたメトリック更新の数をメトリック名ごとにリストします。
SELECT count(*) FROM Metric WHERE metricName LIKE 'redis.%' and instrumentation.provider='opentelemetry' facet metricName LIMIT maxホストごとにファセット化された特定のメトリクスをクエリします。
SELECT average(redis.commands.processed) FROM Metric WHERE instrumentation.provider='opentelemetry' FACET host.name TIMESERIES特定のメトリクスで利用可能なディメンションをリストします。
SELECT keyset() FROM Metric WHERE metricName = 'redis.commands.processed'サポートされているすべてのメトリクスのリストについては、 「Redis レシーバー メトリクス リファレンス」を参照してください。
次は何ですか?
New Relic にレポートする Redis データを使用して、 Redis Open Telemetryダッシュボードをインストールできます。これにより、事前に作成されたダッシュボード エクスペリエンスが提供され、Redis インフラストラクチャを追跡および監視できます。
他のコレクターのユースケースに関するヘルプを探している場合は、 newrelic-opentelemetry-examplesリポジトリを参照してください。