AWS Metric Streamsの統合により、すべてのAWSメトリクスとカスタムネームスペースを収集してNew Relicに送信するために必要なのは、単一のサービスAWSCloudWatchだけです。
CloudWatchのメトリクスをNew Relicにストリーミングするには。
- 最小限のパーミッションとマッピングの説明 を確認してください。
- Kinesis Data Firehoseを作成し、New Relicを指定します。
- 次に、先ほど作成したFirehoseにメトリクスを送信するために、CloudWatch Metric Streamを作成する。
- ガイド付き または マニュアル のセットアップ手順に従う。
- データ受信の検証。
該当する場合は、 AWSポーリング統合からの移行に関するドキュメントをお読みください。
ヒント
Terraformを使用して、クラウド統合を有効にするプロセスを自動化できます。 Terraformの公式ドキュメントサイトでその方法をお読みください。
最小限のパーミッションとマッピングの指示
サービスメタデータやカスタムタグを追加してCloudWatchのメトリクスを充実させるには、New Relicに設定されているAWSロールに、以下の最小限の権限を付与する必要があります。
config:BatchGetResourceConfigconfig:ListDiscoveredResourcestag:GetResources
New Relic UIは現在、これらの個々のアイテムに対してReadOnlyAccess
ポリシーを推奨しているため、New Relicには、AWS CloudWatchMetricStreamsでは利用できないサービスデータを収集するための適切な権限があります。
New RelicとAWSのアカウントとリージョンのマッピング
- 複数のAWSアカウントを管理している場合は、それぞれのアカウントをNew Relicに接続する必要があります。
- これらのアカウントで複数の地域を管理している場合は、各地域にNew Relicを指す異なるKinesis Data Firehoseを設定する必要があります。
- 通常、1つのNew Relicアカウントに1つまたは複数のAWSアカウントをマッピングします。
CloudFormationを使ったガイド付きセットアップ
まず、各AWSアカウントをNewRelicアカウントにリンクする必要があります。これを行うには、次のいずれかのオプションを使用します。
- one.newrelic.com > Infrastructure> AWS をクリックし、 Add an AWS account をクリックし、 Use metric streams をクリックし、手順に従ってください。
- NerdGraphを使用してこのステップを自動化します。
次に、UIの最後のステップで提供するCloudFormationテンプレートを使用してメトリックストリームを設定します。このテンプレートは、単一のリージョンで統合を設定するためのベースとして提供されています。要件に合わせてカスタマイズおよび拡張できます。
ヒント
提供されているCloudFormationテンプレートには、CloudWatchメトリックスストリームに包含または除外名前空間フィルターが含まれていません。ビジネス要件に基づいて基本テンプレートを適合させることを検討してください。
AWSコンソール、API、またはコールを使用した手動設定
- Create a Kinesis Data Firehose Delivery Stream 、以下の宛先パラメータを設定します。
ソースダイレクトPUTまたはその他のソース
データ変換。使用不可
記録フォーマットの変換。無効
目的地New Relic
以下の設定が定義されていることを確認してください。
New Relicの設定(Destination Settings)
- HTTPエンドポイントURL-米国のデータセンター:
https://aws-api.newrelic.com/cloudwatch-metrics/v1
- HTTPエンドポイントURL-EUデータセンター:
https://aws-api.eu01.nr-data.net/cloudwatch-metrics/v1
- APIキーを入力します。 ライセンスキーを入力してください。
- コンテンツエンコーディング:
GZIP
- 再試行期間:
60
- HTTPエンドポイントURL-米国のデータセンター:
S3バックアップモード。失敗したデータのみ
S3バケット:送信に失敗したメトリクスを保存するバケットを選択するか、新しいバケットを作成します。
New Relicのバッファ条件
- バッファサイズ:
1 MB
- バッファ間隔:
60 (seconds)
- バッファサイズ:
パーミッション IAMロール
- IAMロールの作成または更新
- メトリクス・ストリームの作成.
AWSコンソールでCloudWatchサービスに移動し、[メトリクス]メニューの[ストリーム]オプションを選択します。
[メトリックストリームの作成]をクリックします。
ユースケースに応じて適切な構成を決定します。
- どのサービスがNew Relicにメトリクスをプッシュすべきかを選択するには、包含フィルターと除外フィルターを使用します。
- Kinesis Data Firehoseを選択します。
- ストリームに意味のある名前を定義します(たとえば、
newrelic-metric-stream)
。
デフォルトの出力形式を
Open Telemetry 0.7
に変更します。(JSONはサポートされていません。)メトリクスストリームの作成を確認します。
また、CloudFormationテンプレート、API、またはCLIを使用してCloudWatchメトリック・ストリームを作成するための手順が、AWSのドキュメントに記載されています。
- 新しい AWS アカウント を New Relic UI の Metric streams モードで追加します。 one.newrelic.com > Infrastructure> AWS をクリックし、 Add an AWS account をクリックし、 Use metric streams をクリックし、手順に従います。
データが正しく受信されているかどうかの確認
メトリックストリームからデータを受信していることを確認するには、次の手順に従います。
- one.newrelic.com > Infrastructure> AWS にアクセスし、 Stream のアカウントを検索してください。
- 次の点をチェックします。
- アカウントステータスのダッシュボード。メトリクスデータが受信されていることを確認するのに便利です(エラー、取り込まれたネームスペース/メトリクスの数、など)。
- データを調べます。データエクスプローラーを使用して、特定のメトリックセットを検索したり、特定のメトリックで使用可能なすべてのディメンションにアクセスしたりできます。
新しいリソースが検出され、エンティティとして合成されるまで、数分かかる場合があります。詳細については、クラウド統合システムの制限を参照してください。
ヒント
AWS S3やAWS BillingなどのグローバルサービスのAWS CloudWatchメトリクスは、 us-east-1 リージョンでのみ利用可能です。そのリージョンにアクティブなCloudWatchメトリックストリームが設定されていることを確認してください。
クエリ、メトリックの保存、マッピング
AWS CloudWatchからのメトリクスは、タイプsummary
のディメンションメトリクスとして保存されます。NRQLを使用してクエリを実行できます。
我々は、現在のクラウド統合から、AWS Metric Streamsから来る新しいマッピングにメトリックをマッピングしました。現在のメトリックの名前を使い続けることができ、クエリは引き続き動作し、AWS Metric Streamsと現在のクラウド統合からデータを選択することができます。
現在のクラウド統合のメトリクスと新しいメトリクスの名称 への対応については、ドキュメントをご確認ください。
メトリクスストリームから送られてくるすべてのメトリクスは、これらの属性を持ちます。
aws.MetricStreamArn
collector.name = 'cloudwatch-metric-streams'
。
NewRelicエクスプローラーのAWS名前空間のエンティティ
New Relic エンティティ を、最も使用されている AWS の名前空間に合わせて生成しており、今後もより多くの名前空間に対応していく予定です。
名前空間のNew Relicエンティティを生成すると、次のようなことが期待できます。
- NewRelicエクスプローラーでこれらのエンティティを参照します。
- それらのエンティティ用に自動的に作成されたエンティティダッシュボードにアクセスします。
- AWSタグで装飾された名前空間からメトリックとエンティティを取得します。AWSタグを収集するには、UIのセットアッププロセスの一部である
tag:GetResources
権限をNewRelicに付与している必要があります。AWSタグは、メトリックにtag.AWSTagName
として表示されます。たとえば、リソースにTeam
AWSタグを設定した場合、tag.Team
と表示されます。 - エクスプローラーの一部であるすべての組み込み機能を活用します。
重要
Lookout view in Entity Explorer は、現時点ではAWS Metric Streamsの統合から作成されたエンティティとの互換性はありません。
アラート条件の設定
メトリック・ストリームからのメトリクスに対してNRQLアラート条件を作成することができます。フィルタがデータをCloudWatchメトリック・ストリームからのメトリクスのみに制限することを確認してください。そのためには、以下のようにクエリを構成します。
SELECT sum(aws.s3.5xxErrors) FROM Metric WHERE collector.name = 'cloudwatch-metric-streams' FACET aws.accountId, aws.s3.BucketName
次に、アラートがデータを正しく処理することを確認するために、高度な信号設定を構成します。AWS CloudWatchは特定の遅延でサービスからメトリクスを受信するため、これらの設定が必要です。(たとえば、Amazonは、EC2メトリクスの90%が生成されてから7分以内にCloudWatchで利用可能であることを保証します。)さらに、AWSからNew Relicへのストリーミングメトリックは、主にFirehoseでのデータのバッファリングが原因で、最大1分の追加の遅延を追加します。
信号設定を行うには、 Condition Settings で、 Advanced Signal Settings をクリックし、以下の値を入力します。
- アグリゲーションウィンドウ.1分に設定することをお勧めします。アラートのフラッピングやアラートがトリガーされないなどの問題がある場合は、2分に設定することを検討してください。
- によるオフセット評価。サービスによっては、CloudWatchが一定の遅延でメトリクスを送信する場合があります。値はウィンドウで設定されます。 1分の集計ウィンドウで、オフセットを8に設定すると、メトリックの大部分が正しく評価されます。 AWSとFirehoseによって導入された遅延が少ない場合は、より低いオフセットを使用できる可能性があります。
- データのギャップを。で埋めます。これを無効のままにするか、AWSからのデータのギャップが誤検知または誤検知につながる場合は、最後の既知の値を使用します。
詳細については、NRQLアラートの作成方法に関するドキュメント をご覧ください。
タグコレクション [#tags-collection]
New Relic は、AWS CloudWatch メトリックストリームから送られてくるメトリクスのディメンションを強化します。リソースタグとカスタムタグは、ほとんどのサービスから自動的に引き出され、追加のディメンションでメトリクスを装飾するために使用されます。 データエクスプローラー を使用して、各 AWS メトリックでどのタグが利用できるかを確認できます。
次のクエリは、タグを収集し、メトリクスのディメンションとしてクエリを実行する例を示しています。
SELECT average(`aws.rds.CPUUtilization`) FROM Metric FACET `tags.mycustomtag` SINCE 30 MINUTES AGO TIMESERIES
すべての指標にカスタムタグがディメンションとして含まれているわけではないことに注意してください。現在、 NewRelicエクスプローラーのエンティティにリンクされているメトリックのみにカスタムタグが関連付けられています。AWS CloudWatchメトリクスストリームには、ストリームメッセージの一部としてタグが含まれていません。したがって、NewRelic側では追加の処理が必要です。
メタデータの収集
カスタムタグと同様に、New RelicはAWS CloudWatchのメトリクスをAWS Services APIから収集したエンリッチドメタデータで装飾するために、関連するAWSサービスからメタデータ情報を引き出します。このメタデータは、AWS CloudWatchが提供するメトリクスの追加ディメンションとしてNew Relicでアクセスできる。これは、CloudWatch Metric Streamsの統合を補完するオプションの機能です。
このソリューションは、 AWS Config に依存しており、お客様のAWSアカウントに追加コストが発生する可能性があります。 AWS Config は、どのサービスやリソースを記録するかを決定するために、 粒度の高いコントロールを提供します。New Relic は、お客様の AWS アカウントで利用可能なリソースからのみメタデータを取り込みます。
ALB/NLB
APIゲートウェイ(API v1を除く)
DynamoDB
EBS
EC2
ECS
ELB
ラムダ
RDS
S3
インフラストラクチャエージェントのメトリクスとEC2メタデータの装飾 [#infra-data-decoration]
キュレーションされたダッシュボード [#curated-dashboards]
最も一般的な AWS サービスのダッシュボード一式は、New Relic Instant Observability で入手できます。
ダッシュボードのインポート方法
ダッシュボードをブラウズしてインポートするには、以下の手順に従ってください。
- NewRelicUIのトップバーから[ InstantObservability]をクリックします。
- AWS SQS, AWS RDS, AWS ELB, AWS EC2 のように、任意のAWSサービス名を検索します。
- AWSサービスタイルにアクセスします。
- Install this quickstarts をクリックし、アカウントを選択します。
- Done をクリックして、AWS メトリックストリームがすでに設定されていることを確認します。
- ダッシュボードを閲覧し、ニーズに合わせて調整することができます。
コミュニティと共有する興味深いダッシュボードがありますか?InstantObservabilityGitHubリポジトリの貢献ガイドラインを参照してください。
カスタムメトリックとパーセンタイル
CloudWatchメトリクスストリーム統合は、カスタムメトリクスやパーセンタイルなど、ストリームに設定された新しいメトリクスを自動的に取り込みます。
カスタムメトリック
CloudWatchカスタムメトリクスを取り込むには、カスタムネームスペースがCloudWatchメトリクスストリームコンフィギュレーションに表示され、包含ルールまたは除外ルールによってフィルタリングされていないことを確認してください。
パーセンタイル
AWS CloudWatchを使用すると、パーセンタイルなどの追加の統計を定義できます。
次の手順に従って、CloudWatchストリームで利用可能なすべてのメトリクスにパーセンタイルを追加します。
AWSで、CloudWatchストリーム設定を(API、CLI、またはAWSコンソールを介して)
StatisticConfiguration
設定で必要なパーセンタイルで更新します。たとえば、p90、p95、およびp99パーセンタイルをELB latency metric (aws.elb.Latency)
に追加できます。数分後、新しい統計がストリームで利用可能になり、NewRelicによって取り込まれるはずです。パーセンタイルは、次の命名規則を使用して照会できます。
From Metric select max(aws.elb.Latency.p99) where collector.name = 'cloudwatch-metric-streams' timeseries
AWSは、パーセンタイルを超えるストリーム内の他の統計をサポートしていますが、それらはOpen Telemetryエクスポート形式(JSONのみ)では利用できず、現在NewRelicではサポートされていません。
価格設定、制限、および事前設定の詳細については、 AWSのドキュメントをご覧ください。
データの管理
New Relic UIは、アカウントに取り込まれているデータを追跡するための一連のツールを提供します。すべての詳細を表示するには、設定メニューの[データの管理]に移動します。AWS Metric Streams統合から取り込まれたメトリクスは、メトリクスバケットで考慮されます。
データをより詳細に表示する必要がある場合は、取り込み中のデータを見積もるために、 Metric
でbytecountestimate()
関数を使用してください。たとえば、次のクエリは、過去30日間にAWS Metric Streams統合を介して処理されたすべてのメトリクスから取り込まれたデータを表します(バイト単位)。
FROM Metric SELECT bytecountestimate()/10e8 as 'GB Estimate' WHERE collector.name='cloudwatch-metric-streams' SINCE 30 day ago
AWSサービス/ネームスペースによって取り込まれたデータを表示するには:
FROM Metric SELECT bytecountestimate()/10e8 as 'GB Estimate' WHERE collector.name='cloudwatch-metric-streams' FACET aws.Namespace
AWSサービス/ネームスペースによって処理された生のメトリックスアップデートの数を確認するには:
FROM Metric SELECT dataPointCount() WHERE collector.name='cloudwatch-metric-streams' FACET aws.Namespace
インジェストされるデータをコントロールするために、次のような対応をお勧めします。
- New Relicで監視したいAWSアカウントとリージョンでのみメトリックストリームが有効になっていることを確認します。
- New Relicによって監視されているサービスまたはネームスペースを選択するには、CloudWatchMetricStreamsの包含フィルターと除外フィルターを使用します。
- ドロップデータルールを使用して、カスタムフィルターに基づくメトリックを破棄することを検討してください。(たとえば、名前空間とタグ、タグ値、またはその他の有効なNRQL基準ごとにメトリックを削除します。)
重要
AWS Metric Streams を介して送信されたメトリクスは、データが取り込まれる New Relic アカウントの Metric API 制限にカウントされます。