問題
AWSアカウントをリンクする手順を踏んで、AWS CloudWatchメトリクスストリームとAWS Kinesis Data Firehoseを設定したのに、New Relicに期待通りのメトリクスが表示されない。
ソリューション
New Relicにメトリクスやエラーが表示されない
AWS CloudWatch Metric StreamがAWS Kinesis Data Firehoseに接続されてもNew Relicにデータが表示されない場合は、以下の手順で設定のトラブルシューティングを行ってください。
AWSコンソールまたはAPIを介して、メトリックストリームが
Running
の状態にあることを確認します。詳細については、 AWSトラブルシューティングのドキュメントを参照してください。AWS/CloudWatch/MetricStreams
名前空間の下のメトリックストリームメトリックを確認します。メトリックストリームごとのメトリック更新とエラーの数が表示されます。これは、メトリックストリームが正常にデータを送信していることを示しています。エラーが表示された場合は、メトリクスストリーム設定で指定されたIAMロールが、CloudWatchサービスに書き込みのプリンシパルパーミッションを付与し、目的のFirehoseリソースをターゲットにしていることを確認します。
KinesisコンソールのKinesis Data FirehoseのMonitoringタブで、Firehoseが正常にデータを受信しているかどうかを確認します。
Kinesis Data FirehoseでCloudWatchのエラーログを有効にすることで、問題をデバッグするためのより詳細な情報を得ることができます。詳細は、Amazon Kinesis Data Firehoseの公式ドキュメントを参照してください。
Kinesis Data Firehoseに正しい送信先情報が設定されていることを確認します。
- に 40 桁の 16 進数のライセンスキーが含まれていることを確認してください。
- NewRelicアカウントに適切なデータセンターUSまたはEUが選択されていることを確認してください。ヒント:
license_key
が「eu」で始まる場合は、EUデータセンターを選択する必要があります。
Kinesis Data Firehoseに、設定された保存先への書き込み権限があるかどうかを確認します。例えば、S3バケットのポリシーでは、書き込みが許可されています。
使用方法と実装のトラブルシューティングについては、公式の AWS Firehose ドキュメントを確認してください。
引き続き問題が発生する場合は、サポートケースを作成して AWS サポートに連絡し、さらにサポートを受けてください。 AWS Firehose ストリーム情報、 ターゲットエンドポイント、問題の時間範囲、受信したエラーメッセージを含めます。
特定のAWSネームスペースのメトリクスの欠落
New Relic は、AWS CloudWatch のメトリクスストリームから受け取ったメトリクスに対して、何のフィルターも適用しません。
特定のメトリクスが取り込まれることを期待しているのに取り込まれない場合は、以下を確認してください。
- CloudWatchMetricStreamに
Inclusion
またはExclusion
フィルターがないことを確認してください。 - メトリクスが AWS CloudWatch で利用可能であり、AWS CloudWatch インターフェイスでクエリできることを確認してください。ECS/EKS コンテナインサイトなどの一部の特定の AWS サービスでは、メトリクスにアクセスする前に、AWS 側で拡張モニタリングを明示的に有効にする必要があります。
重要
AWS CloudWatchでは、2時間以内に利用できないメトリクスは含まれません。例えば、 いくつかのS3メトリクス は日単位で集計されます。このような特殊なメトリクスの一部をNew Relicで利用できるようにする予定です。
AWS CloudWatchとNew Relicの間のメトリック値の不一致
メトリクスは、AWS CloudWatch メトリクスストリームから受信したとおりに処理、マッピング、保存されます。AWS CloudWatch と New Relic のダッシュボードを比較すると、いくつかの相違点が見られる場合があります。限られたシナリオでは、AWS CloudWatchはメトリクスをレンダリングする前に特定の機能やロジックを適用します。
これらのガイドラインは、不一致の根本原因を理解するのに役立つはずです。
- メトリックで同じ関数が使用されていることを確認します(たとえば、
average
、min
、max
)。 - New Relic側では、AWS CloudWatchと全く同じ時間を表示するために、同じタイムスタンプまたはタイムフレーム(タイムゾーンを考慮)をフィルタリングすることを確認してください。
- 時系列を使用する場合、 New Relicユーザー インタフェースは間隔に基づいて丸めを実行する場合があります。
次のようなクエリを使って、時間ごとに受信した生のメトリックのリストを得ることができます(選択したメトリックには何の関数も適用されないことに注意してください)。
FROM MetricSELECT aws.outposts.InstanceTypeCapacityUtilizationWHERE collector.name = 'cloudwatch-metric-streams'
AWSは、AWS CloudWatchで報告されるすべてのメトリックの最大解像度(1分、5分など)を固定していることを覚えておいてください。
AWS Metric Streamsの運用
メトリックスストリームの状態は、CloudWatchコンソールの[Streams]タブで確認できます。特に、メトリックストリームは、 running
またはstopped
の2つの状態のいずれかになります。
- 実行中です。ストリームは正しく実行されています。実行中であっても、設定されたフィルターのために、ストリーミングされるメトリックデータがない場合があります。
- ストップしました。ストリームが明示的に停止状態になった(エラーではない)。この状態は、設定を削除することなく、データのストリーミングを一時的に停止するのに便利です。
ステータスダッシュボードのエラー
New Relicは、CloudWatch Metric Streamで受信したメトリクスを強化するために、リソースから追加のメタデータを収集するためにAWS Configサービスを利用しています。
AWS AccountでAWS Configが有効になっていることを確認し、リンク先のRoleに以下のパーミッションまたはインラインポリシーが作成されていることを確認してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "config:BatchGetResourceConfig", "Resource": "*" } ]}