AWS と統合すると、New Relic プラットフォームでアラート条件を設定したり、データをクエリしたりできます。 このドキュメントでは、アラートを作成してデータをクエリできるように、AWS ディメンションメトリクスを保存する方法について説明します。
まだ行っていない場合は、 Amazon CloudWatch Metric Streamsインテグレーションをインストールまたは移行して、 AWSメトリクスを取り込むことをお勧めします。 APIポーリングを使用してAWSデータを収集している場合は、 APIポーリングのメトリクス」セクションで、統合ごとに収集されるメトリクスを確認できます。
クエリ、メトリックの保存、マッピング
個々のクラウド統合からのメトリクスを、Amazon CloudWatch Metric Streamsからの新しい候補にマッピングしました。 どちらのメトリクス命名規則を使用しても、アラート、ダッシュボード、および書き込みは引き続き機能します。 以下の点に留意してください:
- メトリクス ストリームからのすべてのメトリクスには、
aws.MetricStreamArnおよびcollector.name = 'cloudwatch-metric-streams'プロパティがあります。 - AWS CloudWatch からのメトリクスは、タイプ
summaryの次元メトリクスとして保存されます。
New Relic が AWS メトリクスをディメンション メトリクスとして保存する方法の詳細については、以下を参照してください。
- 次元メトリクスの命名規則はNew RelicバックエンドのAWSネームスペースを更新する方法を説明しています。
- 複数のディメンションの組み合わせによるメトリクスでは、書き込み集計を使用して複数のディメンションを持つメトリクスを解析する方法について説明します
- by
+ dimensionのメトリクスには、接尾辞.by + dimensionNameが付いているすべてのメトリクスのテーブルが含まれます。
AWS メトリクスはディメンション メトリクスとして New Relic に保存されます。 New Relic元のAWSメトリクスの大文字と小文字を維持しますが、 AWSネームスペースを指定するためにすべて小文字の aws プレフィックスを追加します。 例えば:
aws.ec2.CPUUtilizationaws.s3.5xxErrorsaws.sns.NumberOfMessagesPublishedまた、プレフィックス内の
/のすべてのインスタンスを.に置き換えます。AWS/EC2として表示されるaws.ec2AWS/ApplicationELBとして表示されるaws.applicationelbメトリクスが属するリソースに特定のネームスペース プレフィックスがある場合、そのネームスペース プレフィックスは維持しますが、引き続き
awsプレフィックスを追加します。aws.Regionaws.s3.BucketNameAWS がサポートするネームスペースの詳細については、 CloudWatch ドキュメントウェブサイト を参照してください。
メトリクスは、その名前とさまざまな次元によって定義されます。 特定のメトリクスに複数の異なるディメンションがある場合、それらは個別の時系列として取り込まれます。 この傾向により、同じメトリクス名が異なる次元の組み合わせを持つ複数のメトリクスとして表示される場合があります。 例えば:
aws.apigateway.4XXErrorディメンションはaws.apigateway.ApiNameとaws.apigateway.Stageです。aws.apigateway.4XXError寸法はaws.apigateway.ApiNameです。sum()やcount()などの一部の集計では、正しいディメンションの組み合わせが指定されていない場合、重複した結果が返されます。sum()やcount()などの集計が両方のメトリックに同時に一致するのを回避するには、ディメンションをIS NULLまたはIS NOT NULLでフィルタリングします。たとえば、次の書き込みは両方のメトリクスに対して重複した結果を同時に返します。
SELECT sum(aws.apigateway.4XXError) FROM METRICメトリクスのみを
ApiNameディメンションと一致させるには、IS NULLを追加します。SELECT sum(aws.apigateway.4XXError) FROM METRIC WHERE aws.apigateway.Stage IS NULL2 次元のメトリクスのみを照合するには、
IS NOT NULLを追加します。SELECT sum(aws.apigateway.4XXError) FROM METRIC WHERE aws.apigateway.ApiName IS NOT NULL and aws.apigateway.Stage IS NOT NULL
歴史的な理由から、ペアで表示される一部のメトリクスに接尾辞を付けます。 たとえば、一方のメトリクスにはディメンションがあり、もう一方にはディメンションがない場合、メトリクスのディメンションにはby + dimensionサフィックスを使用します。 例えば:
aws.lambda.Durationディメンションaws.lambda.FunctionNameがマッピングされるaws.lambda.Duration.byFunctionaws.lambda.Duration次元がないので同じままですこれらのマッピングは追加されなくなりましたが、上記の一般的なルールで定義されているように、すべての新しいメトリクスを元の AWS 名で保持することに取り組んでいます。 以下は、接尾辞が
.by + dimensionNameのすべてのメトリクスの完全なリストです。元のメトリクス名
元のディメンション名
接尾辞付きのメトリクス名
aws.apigateway.4XXErrorApiaws.apigateway.4XXError.byApiaws.apigateway.4XXErrorResourceWithMetricsaws.apigateway.4XXError.byResourceWithMetricsaws.apigateway.4XXErrorStageaws.apigateway.4XXError.byStageaws.apigateway.5XXErrorApiaws.apigateway.5XXError.byApiaws.apigateway.5XXErrorResourceWithMetricsaws.apigateway.5XXError.byResourceWithMetricsaws.apigateway.5XXErrorStageaws.apigateway.5XXError.byStageaws.apigateway.CacheHitCountApiaws.apigateway.CacheHitCount.byApiaws.apigateway.CacheHitCountResourceWithMetricsaws.apigateway.CacheHitCount.byResourceWithMetricsaws.apigateway.CacheHitCountStageaws.apigateway.CacheHitCount.byStageaws.apigateway.CacheMissCountApiaws.apigateway.CacheMissCount.byApiaws.apigateway.CacheMissCountResourceWithMetricsaws.apigateway.CacheMissCount.byResourceWithMetricsaws.apigateway.CacheMissCountStageaws.apigateway.CacheMissCount.byStageaws.apigateway.CountApiaws.apigateway.Count.byApiaws.apigateway.CountResourceWithMetricsaws.apigateway.Count.byResourceWithMetricsaws.apigateway.CountStageaws.apigateway.Count.byStageaws.apigateway.IntegrationLatencyApiaws.apigateway.IntegrationLatency.byApiaws.apigateway.IntegrationLatencyResourceWithMetricsaws.apigateway.IntegrationLatency.byResourceWithMetricsaws.apigateway.IntegrationLatencyStageaws.apigateway.IntegrationLatency.byStageaws.apigateway.LatencyApiaws.apigateway.Latency.byApiaws.apigateway.LatencyResourceWithMetricsaws.apigateway.Latency.byResourceWithMetricsaws.apigateway.LatencyStageaws.apigateway.Latency.byStageaws.applicationelb.RequestCountAlbaws.applicationelb.RequestCount.byAlbaws.applicationelb.RequestCountTargetGroupaws.applicationelb.RequestCount.byTargetGroupaws.docdb.BackupRetentionPeriodStorageUsedClusteraws.docdb.BackupRetentionPeriodStorageUsed.byClusteraws.docdb.BackupRetentionPeriodStorageUsedClusterByRoleaws.docdb.BackupRetentionPeriodStorageUsed.byClusterByRoleaws.docdb.BackupRetentionPeriodStorageUsedInstanceaws.docdb.BackupRetentionPeriodStorageUsed.byInstanceaws.docdb.BufferCacheHitRatioClusteraws.docdb.BufferCacheHitRatio.byClusteraws.docdb.BufferCacheHitRatioClusterByRoleaws.docdb.BufferCacheHitRatio.byClusterByRoleaws.docdb.BufferCacheHitRatioInstanceaws.docdb.BufferCacheHitRatio.byInstanceaws.docdb.CPUUtilizationClusteraws.docdb.CPUUtilization.byClusteraws.docdb.CPUUtilizationClusterByRoleaws.docdb.CPUUtilization.byClusterByRoleaws.docdb.CPUUtilizationInstanceaws.docdb.CPUUtilization.byInstanceaws.docdb.DatabaseConnectionsClusteraws.docdb.DatabaseConnections.byClusteraws.docdb.DatabaseConnectionsClusterByRoleaws.docdb.DatabaseConnections.byClusterByRoleaws.docdb.DatabaseConnectionsInstanceaws.docdb.DatabaseConnections.byInstanceaws.docdb.DBClusterReplicaLagMaximumClusteraws.docdb.DBClusterReplicaLagMaximum.byClusteraws.docdb.DBClusterReplicaLagMaximumClusterByRoleaws.docdb.DBClusterReplicaLagMaximum.byClusterByRoleaws.docdb.DBClusterReplicaLagMaximumInstanceaws.docdb.DBClusterReplicaLagMaximum.byInstanceaws.docdb.DBClusterReplicaLagMinimumClusteraws.docdb.DBClusterReplicaLagMinimum.byClusteraws.docdb.DBClusterReplicaLagMinimumClusterByRoleaws.docdb.DBClusterReplicaLagMinimum.byClusterByRoleaws.docdb.DBClusterReplicaLagMinimumInstanceaws.docdb.DBClusterReplicaLagMinimum.byInstanceaws.docdb.DBInstanceReplicaLagClusteraws.docdb.DBInstanceReplicaLag.byClusteraws.docdb.DBInstanceReplicaLagClusterByRoleaws.docdb.DBInstanceReplicaLag.byClusterByRoleaws.docdb.DBInstanceReplicaLagInstanceaws.docdb.DBInstanceReplicaLag.byInstanceaws.docdb.DiskQueueDepthClusteraws.docdb.DiskQueueDepth.byClusteraws.docdb.DiskQueueDepthClusterByRoleaws.docdb.DiskQueueDepth.byClusterByRoleaws.docdb.DiskQueueDepthInstanceaws.docdb.DiskQueueDepth.byInstanceaws.docdb.EngineUptimeClusteraws.docdb.EngineUptime.byClusteraws.docdb.EngineUptimeClusterByRoleaws.docdb.EngineUptime.byClusterByRoleaws.docdb.EngineUptimeInstanceaws.docdb.EngineUptime.byInstanceaws.docdb.FreeableMemoryClusteraws.docdb.FreeableMemory.byClusteraws.docdb.FreeableMemoryClusterByRoleaws.docdb.FreeableMemory.byClusterByRoleaws.docdb.FreeableMemoryInstanceaws.docdb.FreeableMemory.byInstanceaws.docdb.FreeLocalStorageClusteraws.docdb.FreeLocalStorage.byClusteraws.docdb.FreeLocalStorageClusterByRoleaws.docdb.FreeLocalStorage.byClusterByRoleaws.docdb.FreeLocalStorageInstanceaws.docdb.FreeLocalStorage.byInstanceaws.docdb.NetworkReceiveThroughputClusteraws.docdb.NetworkReceiveThroughput.byClusteraws.docdb.NetworkReceiveThroughputClusterByRoleaws.docdb.NetworkReceiveThroughput.byClusterByRoleaws.docdb.NetworkReceiveThroughputInstanceaws.docdb.NetworkReceiveThroughput.byInstanceaws.docdb.NetworkThroughputClusteraws.docdb.NetworkThroughput.byClusteraws.docdb.NetworkThroughputClusterByRoleaws.docdb.NetworkThroughput.byClusterByRoleaws.docdb.NetworkThroughputInstanceaws.docdb.NetworkThroughput.byInstanceaws.docdb.NetworkTransmitThroughputClusteraws.docdb.NetworkTransmitThroughput.byClusteraws.docdb.NetworkTransmitThroughputClusterByRoleaws.docdb.NetworkTransmitThroughput.byClusterByRoleaws.docdb.NetworkTransmitThroughputInstanceaws.docdb.NetworkTransmitThroughput.byInstanceaws.docdb.ReadIOPSClusteraws.docdb.ReadIOPS.byClusteraws.docdb.ReadIOPSClusterByRoleaws.docdb.ReadIOPS.byClusterByRoleaws.docdb.ReadIOPSInstanceaws.docdb.ReadIOPS.byInstanceaws.docdb.ReadLatencyClusteraws.docdb.ReadLatency.byClusteraws.docdb.ReadLatencyClusterByRoleaws.docdb.ReadLatency.byClusterByRoleaws.docdb.ReadLatencyInstanceaws.docdb.ReadLatency.byInstanceaws.docdb.ReadThroughputClusteraws.docdb.ReadThroughput.byClusteraws.docdb.ReadThroughputClusterByRoleaws.docdb.ReadThroughput.byClusterByRoleaws.docdb.ReadThroughputInstanceaws.docdb.ReadThroughput.byInstanceaws.docdb.SnapshotStorageUsedClusteraws.docdb.SnapshotStorageUsed.byClusteraws.docdb.SnapshotStorageUsedClusterByRoleaws.docdb.SnapshotStorageUsed.byClusterByRoleaws.docdb.SnapshotStorageUsedInstanceaws.docdb.SnapshotStorageUsed.byInstanceaws.docdb.SwapUsageClusteraws.docdb.SwapUsage.byClusteraws.docdb.SwapUsageClusterByRoleaws.docdb.SwapUsage.byClusterByRoleaws.docdb.SwapUsageInstanceaws.docdb.SwapUsage.byInstanceaws.docdb.TotalBackupStorageBilledClusteraws.docdb.TotalBackupStorageBilled.byClusteraws.docdb.TotalBackupStorageBilledClusterByRoleaws.docdb.TotalBackupStorageBilled.byClusterByRoleaws.docdb.TotalBackupStorageBilledInstanceaws.docdb.TotalBackupStorageBilled.byInstanceaws.docdb.VolumeBytesUsedClusteraws.docdb.VolumeBytesUsed.byClusteraws.docdb.VolumeBytesUsedClusterByRoleaws.docdb.VolumeBytesUsed.byClusterByRoleaws.docdb.VolumeBytesUsedInstanceaws.docdb.VolumeBytesUsed.byInstanceaws.docdb.VolumeReadIOPsClusteraws.docdb.VolumeReadIOPs.byClusteraws.docdb.VolumeReadIOPsClusterByRoleaws.docdb.VolumeReadIOPs.byClusterByRoleaws.docdb.VolumeReadIOPsInstanceaws.docdb.VolumeReadIOPs.byInstanceaws.docdb.VolumeWriteIOPsClusteraws.docdb.VolumeWriteIOPs.byClusteraws.docdb.VolumeWriteIOPsClusterByRoleaws.docdb.VolumeWriteIOPs.byClusterByRoleaws.docdb.VolumeWriteIOPsInstanceaws.docdb.VolumeWriteIOPs.byInstanceaws.docdb.WriteIOPSClusteraws.docdb.WriteIOPS.byClusteraws.docdb.WriteIOPSClusterByRoleaws.docdb.WriteIOPS.byClusterByRoleaws.docdb.WriteIOPSInstanceaws.docdb.WriteIOPS.byInstanceaws.docdb.WriteLatencyClusteraws.docdb.WriteLatency.byClusteraws.docdb.WriteLatencyClusterByRoleaws.docdb.WriteLatency.byClusterByRoleaws.docdb.WriteLatencyInstanceaws.docdb.WriteLatency.byInstanceaws.docdb.WriteThroughputClusteraws.docdb.WriteThroughput.byClusteraws.docdb.WriteThroughputClusterByRoleaws.docdb.WriteThroughput.byClusterByRoleaws.docdb.WriteThroughputInstanceaws.docdb.WriteThroughput.byInstanceaws.dynamodb.ConsumedReadCapacityUnitsGlobalSecondaryIndexaws.dynamodb.ConsumedReadCapacityUnits.byGlobalSecondaryIndexaws.dynamodb.ConsumedWriteCapacityUnitsGlobalSecondaryIndexaws.dynamodb.ConsumedWriteCapacityUnits.byGlobalSecondaryIndexaws.dynamodb.ProvisionedReadCapacityUnitsGlobalSecondaryIndexaws.dynamodb.ProvisionedReadCapacityUnits.byGlobalSecondaryIndexaws.dynamodb.ProvisionedWriteCapacityUnitsGlobalSecondaryIndexaws.dynamodb.ProvisionedWriteCapacityUnits.byGlobalSecondaryIndexaws.dynamodb.ReadThrottleEventsGlobalSecondaryIndexaws.dynamodb.ReadThrottleEvents.byGlobalSecondaryIndexaws.dynamodb.WriteThrottleEventsGlobalSecondaryIndexaws.dynamodb.WriteThrottleEvents.byGlobalSecondaryIndexaws.ecs.activeServicesCountClusteraws.ecs.activeServicesCount.byClusteraws.ecs.CPUUtilizationClusteraws.ecs.CPUUtilization.byClusteraws.ecs.CPUUtilizationServiceaws.ecs.CPUUtilization.byServiceaws.ecs.desiredCountServiceaws.ecs.desiredCount.byServiceaws.ecs.MemoryUtilizationClusteraws.ecs.MemoryUtilization.byClusteraws.ecs.MemoryUtilizationServiceaws.ecs.MemoryUtilization.byServiceaws.ecs.pendingCountServiceaws.ecs.pendingCount.byServiceaws.ecs.pendingTasksCountClusteraws.ecs.pendingTasksCount.byClusteraws.ecs.registeredContainerInstancesCountClusteraws.ecs.registeredContainerInstancesCount.byClusteraws.ecs.runningCountServiceaws.ecs.runningCount.byServiceaws.ecs.runningTasksCountClusteraws.ecs.runningTasksCount.byClusteraws.es.CPUUtilizationClusteraws.es.CPUUtilization.byClusteraws.es.CPUUtilizationNodeaws.es.CPUUtilization.byNodeaws.es.FreeStorageSpaceClusteraws.es.FreeStorageSpace.byClusteraws.es.FreeStorageSpaceNodeaws.es.FreeStorageSpace.byNodeaws.es.IndexingLatencyClusteraws.es.IndexingLatency.byClusteraws.es.IndexingLatencyNodeaws.es.IndexingLatency.byNodeaws.es.IndexingRateClusteraws.es.IndexingRate.byClusteraws.es.IndexingRateNodeaws.es.IndexingRate.byNodeaws.es.JVMGCOldCollectionCountClusteraws.es.JVMGCOldCollectionCount.byClusteraws.es.JVMGCOldCollectionCountNodeaws.es.JVMGCOldCollectionCount.byNodeaws.es.JVMGCOldCollectionTimeClusteraws.es.JVMGCOldCollectionTime.byClusteraws.es.JVMGCOldCollectionTimeNodeaws.es.JVMGCOldCollectionTime.byNodeaws.es.JVMGCYoungCollectionCountClusteraws.es.JVMGCYoungCollectionCount.byClusteraws.es.JVMGCYoungCollectionCountNodeaws.es.JVMGCYoungCollectionCount.byNodeaws.es.JVMGCYoungCollectionTimeClusteraws.es.JVMGCYoungCollectionTime.byClusteraws.es.JVMGCYoungCollectionTimeNodeaws.es.JVMGCYoungCollectionTime.byNodeaws.es.JVMMemoryPressureClusteraws.es.JVMMemoryPressure.byClusteraws.es.JVMMemoryPressureNodeaws.es.JVMMemoryPressure.byNodeaws.es.SearchLatencyClusteraws.es.SearchLatency.byClusteraws.es.SearchLatencyNodeaws.es.SearchLatency.byNodeaws.es.SearchRateClusteraws.es.SearchRate.byClusteraws.es.SearchRateNodeaws.es.SearchRate.byNodeaws.es.SysMemoryUtilizationClusteraws.es.SysMemoryUtilization.byClusteraws.es.SysMemoryUtilizationNodeaws.es.SysMemoryUtilization.byNodeaws.es.ThreadpoolBulkQueueClusteraws.es.ThreadpoolBulkQueue.byClusteraws.es.ThreadpoolBulkQueueNodeaws.es.ThreadpoolBulkQueue.byNodeaws.es.ThreadpoolBulkRejectedClusteraws.es.ThreadpoolBulkRejected.byClusteraws.es.ThreadpoolBulkRejectedNodeaws.es.ThreadpoolBulkRejected.byNodeaws.es.ThreadpoolBulkThreadsClusteraws.es.ThreadpoolBulkThreads.byClusteraws.es.ThreadpoolBulkThreadsNodeaws.es.ThreadpoolBulkThreads.byNodeaws.es.ThreadpoolForce_mergeQueueClusteraws.es.ThreadpoolForce_mergeQueue.byClusteraws.es.ThreadpoolForce_mergeQueueNodeaws.es.ThreadpoolForce_mergeQueue.byNodeaws.es.ThreadpoolForce_mergeRejectedClusteraws.es.ThreadpoolForce_mergeRejected.byClusteraws.es.ThreadpoolForce_mergeRejectedNodeaws.es.ThreadpoolForce_mergeRejected.byNodeaws.es.ThreadpoolForce_mergeThreadsClusteraws.es.ThreadpoolForce_mergeThreads.byClusteraws.es.ThreadpoolForce_mergeThreadsNodeaws.es.ThreadpoolForce_mergeThreads.byNodeaws.es.ThreadpoolIndexQueueClusteraws.es.ThreadpoolIndexQueue.byClusteraws.es.ThreadpoolIndexQueueNodeaws.es.ThreadpoolIndexQueue.byNodeaws.es.ThreadpoolIndexRejectedClusteraws.es.ThreadpoolIndexRejected.byClusteraws.es.ThreadpoolIndexRejectedNodeaws.es.ThreadpoolIndexRejected.byNodeaws.es.ThreadpoolIndexThreadsClusteraws.es.ThreadpoolIndexThreads.byClusteraws.es.ThreadpoolIndexThreadsNodeaws.es.ThreadpoolIndexThreads.byNodeaws.es.ThreadpoolSearchQueueClusteraws.es.ThreadpoolSearchQueue.byClusteraws.es.ThreadpoolSearchQueueNodeaws.es.ThreadpoolSearchQueue.byNodeaws.es.ThreadpoolSearchRejectedClusteraws.es.ThreadpoolSearchRejected.byClusteraws.es.ThreadpoolSearchRejectedNodeaws.es.ThreadpoolSearchRejected.byNodeaws.es.ThreadpoolSearchThreadsClusteraws.es.ThreadpoolSearchThreads.byClusteraws.es.ThreadpoolSearchThreadsNodeaws.es.ThreadpoolSearchThreads.byNodeaws.kafka.BytesInPerSecBrokeraws.kafka.BytesInPerSec.byBrokeraws.kafka.BytesInPerSecTopicaws.kafka.BytesInPerSec.byTopicaws.kafka.BytesOutPerSecBrokeraws.kafka.BytesOutPerSec.byBrokeraws.kafka.BytesOutPerSecTopicaws.kafka.BytesOutPerSec.byTopicaws.kafka.FetchMessageConversionsPerSecBrokeraws.kafka.FetchMessageConversionsPerSec.byBrokeraws.kafka.FetchMessageConversionsPerSecTopicaws.kafka.FetchMessageConversionsPerSec.byTopicaws.kafka.MessagesInPerSecBrokeraws.kafka.MessagesInPerSec.byBrokeraws.kafka.MessagesInPerSecTopicaws.kafka.MessagesInPerSec.byTopicaws.kafka.ProduceMessageConversionsPerSecBrokeraws.kafka.ProduceMessageConversionsPerSec.byBrokeraws.kafka.ProduceMessageConversionsPerSecTopicaws.kafka.ProduceMessageConversionsPerSec.byTopicaws.kinesis.IncomingBytesStreamaws.kinesis.IncomingBytes.byStreamaws.kinesis.IncomingBytesStreamShardaws.kinesis.IncomingBytes.byStreamShardaws.kinesis.IncomingRecordsStreamaws.kinesis.IncomingRecords.byStreamaws.kinesis.IncomingRecordsStreamShardaws.kinesis.IncomingRecords.byStreamShardaws.kinesis.ReadProvisionedThroughputExceededStreamaws.kinesis.ReadProvisionedThroughputExceeded.byStreamaws.kinesis.ReadProvisionedThroughputExceededStreamShardaws.kinesis.ReadProvisionedThroughputExceeded.byStreamShardaws.kinesis.WriteProvisionedThroughputExceededStreamaws.kinesis.WriteProvisionedThroughputExceeded.byStreamaws.kinesis.WriteProvisionedThroughputExceededStreamShardaws.kinesis.WriteProvisionedThroughputExceeded.byStreamShardaws.lambda.ConcurrentExecutionsFunctionaws.lambda.ConcurrentExecutions.byFunctionaws.lambda.ConcurrentExecutionsRegionaws.lambda.ConcurrentExecutions.byRegionaws.lambda.DeadLetterErrorsFunctionaws.lambda.DeadLetterErrors.byFunctionaws.lambda.DeadLetterErrorsFunctionAliasaws.lambda.DeadLetterErrors.byFunctionAliasaws.lambda.DurationFunctionaws.lambda.Duration.byFunctionaws.lambda.DurationFunctionAliasaws.lambda.Duration.byFunctionAliasaws.lambda.ErrorsFunctionaws.lambda.Errors.byFunctionaws.lambda.ErrorsFunctionAliasaws.lambda.Errors.byFunctionAliasaws.lambda.InvocationsFunctionaws.lambda.Invocations.byFunctionaws.lambda.InvocationsFunctionAliasaws.lambda.Invocations.byFunctionAliasaws.lambda.IteratorAgeFunctionaws.lambda.IteratorAge.byFunctionaws.lambda.IteratorAgeFunctionAliasaws.lambda.IteratorAge.byFunctionAliasaws.lambda.ProvisionedConcurrencyInvocationsFunctionaws.lambda.ProvisionedConcurrencyInvocations.byFunctionaws.lambda.ProvisionedConcurrencyInvocationsFunctionAliasaws.lambda.ProvisionedConcurrencyInvocations.byFunctionAliasaws.lambda.ProvisionedConcurrencySpilloverInvocationsFunctionaws.lambda.ProvisionedConcurrencySpilloverInvocations.byFunctionaws.lambda.ProvisionedConcurrencySpilloverInvocationsFunctionAliasaws.lambda.ProvisionedConcurrencySpilloverInvocations.byFunctionAliasaws.lambda.ProvisionedConcurrencyUtilizationFunctionAliasaws.lambda.ProvisionedConcurrencyUtilization.byFunctionAliasaws.lambda.ProvisionedConcurrentExecutionsFunctionaws.lambda.ProvisionedConcurrentExecutions.byFunctionaws.lambda.ProvisionedConcurrentExecutionsFunctionAliasaws.lambda.ProvisionedConcurrentExecutions.byFunctionAliasaws.lambda.ThrottlesFunctionaws.lambda.Throttles.byFunctionaws.lambda.ThrottlesFunctionAliasaws.lambda.Throttles.byFunctionAliasaws.neptune.BackupRetentionPeriodStorageUsedClusteraws.neptune.BackupRetentionPeriodStorageUsed.byClusteraws.neptune.BackupRetentionPeriodStorageUsedClusterByRoleaws.neptune.BackupRetentionPeriodStorageUsed.byClusterByRoleaws.neptune.BackupRetentionPeriodStorageUsedInstanceaws.neptune.BackupRetentionPeriodStorageUsed.byInstanceaws.neptune.ClusterReplicaLagClusteraws.neptune.ClusterReplicaLag.byClusteraws.neptune.ClusterReplicaLagClusterByRoleaws.neptune.ClusterReplicaLag.byClusterByRoleaws.neptune.ClusterReplicaLagInstanceaws.neptune.ClusterReplicaLag.byInstanceaws.neptune.ClusterReplicaLagMaximumClusteraws.neptune.ClusterReplicaLagMaximum.byClusteraws.neptune.ClusterReplicaLagMaximumClusterByRoleaws.neptune.ClusterReplicaLagMaximum.byClusterByRoleaws.neptune.ClusterReplicaLagMaximumInstanceaws.neptune.ClusterReplicaLagMaximum.byInstanceaws.neptune.ClusterReplicaLagMinimumClusteraws.neptune.ClusterReplicaLagMinimum.byClusteraws.neptune.ClusterReplicaLagMinimumClusterByRoleaws.neptune.ClusterReplicaLagMinimum.byClusterByRoleaws.neptune.ClusterReplicaLagMinimumInstanceaws.neptune.ClusterReplicaLagMinimum.byInstanceaws.neptune.CPUUtilizationClusteraws.neptune.CPUUtilization.byClusteraws.neptune.CPUUtilizationClusterByRoleaws.neptune.CPUUtilization.byClusterByRoleaws.neptune.CPUUtilizationInstanceaws.neptune.CPUUtilization.byInstanceaws.neptune.EngineUptimeClusteraws.neptune.EngineUptime.byClusteraws.neptune.EngineUptimeClusterByRoleaws.neptune.EngineUptime.byClusterByRoleaws.neptune.EngineUptimeInstanceaws.neptune.EngineUptime.byInstanceaws.neptune.FreeableMemoryClusteraws.neptune.FreeableMemory.byClusteraws.neptune.FreeableMemoryClusterByRoleaws.neptune.FreeableMemory.byClusterByRoleaws.neptune.FreeableMemoryInstanceaws.neptune.FreeableMemory.byInstanceaws.neptune.GremlinRequestsPerSecClusteraws.neptune.GremlinRequestsPerSec.byClusteraws.neptune.GremlinRequestsPerSecClusterByRoleaws.neptune.GremlinRequestsPerSec.byClusterByRoleaws.neptune.GremlinRequestsPerSecInstanceaws.neptune.GremlinRequestsPerSec.byInstanceaws.neptune.GremlinWebSocketOpenConnectionsClusteraws.neptune.GremlinWebSocketOpenConnections.byClusteraws.neptune.GremlinWebSocketOpenConnectionsClusterByRoleaws.neptune.GremlinWebSocketOpenConnections.byClusterByRoleaws.neptune.GremlinWebSocketOpenConnectionsInstanceaws.neptune.GremlinWebSocketOpenConnections.byInstanceaws.neptune.LoaderRequestsPerSecClusteraws.neptune.LoaderRequestsPerSec.byClusteraws.neptune.LoaderRequestsPerSecClusterByRoleaws.neptune.LoaderRequestsPerSec.byClusterByRoleaws.neptune.LoaderRequestsPerSecInstanceaws.neptune.LoaderRequestsPerSec.byInstanceaws.neptune.MainRequestQueuePendingRequestsClusteraws.neptune.MainRequestQueuePendingRequests.byClusteraws.neptune.MainRequestQueuePendingRequestsClusterByRoleaws.neptune.MainRequestQueuePendingRequests.byClusterByRoleaws.neptune.MainRequestQueuePendingRequestsInstanceaws.neptune.MainRequestQueuePendingRequests.byInstanceaws.neptune.NetworkReceiveThroughputClusteraws.neptune.NetworkReceiveThroughput.byClusteraws.neptune.NetworkReceiveThroughputClusterByRoleaws.neptune.NetworkReceiveThroughput.byClusterByRoleaws.neptune.NetworkReceiveThroughputInstanceaws.neptune.NetworkReceiveThroughput.byInstanceaws.neptune.NetworkThroughputClusteraws.neptune.NetworkThroughput.byClusteraws.neptune.NetworkThroughputClusterByRoleaws.neptune.NetworkThroughput.byClusterByRoleaws.neptune.NetworkThroughputInstanceaws.neptune.NetworkThroughput.byInstanceaws.neptune.NetworkTransmitThroughputClusteraws.neptune.NetworkTransmitThroughput.byClusteraws.neptune.NetworkTransmitThroughputClusterByRoleaws.neptune.NetworkTransmitThroughput.byClusterByRoleaws.neptune.NetworkTransmitThroughputInstanceaws.neptune.NetworkTransmitThroughput.byInstanceaws.neptune.NumTxCommittedClusteraws.neptune.NumTxCommitted.byClusteraws.neptune.NumTxCommittedClusterByRoleaws.neptune.NumTxCommitted.byClusterByRoleaws.neptune.NumTxCommittedInstanceaws.neptune.NumTxCommitted.byInstanceaws.neptune.NumTxOpenedClusteraws.neptune.NumTxOpened.byClusteraws.neptune.NumTxOpenedClusterByRoleaws.neptune.NumTxOpened.byClusterByRoleaws.neptune.NumTxOpenedInstanceaws.neptune.NumTxOpened.byInstanceaws.neptune.NumTxRolledBackClusteraws.neptune.NumTxRolledBack.byClusteraws.neptune.NumTxRolledBackClusterByRoleaws.neptune.NumTxRolledBack.byClusterByRoleaws.neptune.NumTxRolledBackInstanceaws.neptune.NumTxRolledBack.byInstanceaws.neptune.SnapshotStorageUsedClusteraws.neptune.SnapshotStorageUsed.byClusteraws.neptune.SnapshotStorageUsedClusterByRoleaws.neptune.SnapshotStorageUsed.byClusterByRoleaws.neptune.SnapshotStorageUsedInstanceaws.neptune.SnapshotStorageUsed.byInstanceaws.neptune.SparqlRequestsPerSecClusteraws.neptune.SparqlRequestsPerSec.byClusteraws.neptune.SparqlRequestsPerSecClusterByRoleaws.neptune.SparqlRequestsPerSec.byClusterByRoleaws.neptune.SparqlRequestsPerSecInstanceaws.neptune.SparqlRequestsPerSec.byInstanceaws.neptune.TotalBackupStorageBilledClusteraws.neptune.TotalBackupStorageBilled.byClusteraws.neptune.TotalBackupStorageBilledClusterByRoleaws.neptune.TotalBackupStorageBilled.byClusterByRoleaws.neptune.TotalBackupStorageBilledInstanceaws.neptune.TotalBackupStorageBilled.byInstanceaws.neptune.TotalClientErrorsPerSecClusteraws.neptune.TotalClientErrorsPerSec.byClusteraws.neptune.TotalClientErrorsPerSecClusterByRoleaws.neptune.TotalClientErrorsPerSec.byClusterByRoleaws.neptune.TotalClientErrorsPerSecInstanceaws.neptune.TotalClientErrorsPerSec.byInstanceaws.neptune.TotalRequestsPerSecClusteraws.neptune.TotalRequestsPerSec.byClusteraws.neptune.TotalRequestsPerSecClusterByRoleaws.neptune.TotalRequestsPerSec.byClusterByRoleaws.neptune.TotalRequestsPerSecInstanceaws.neptune.TotalRequestsPerSec.byInstanceaws.neptune.TotalServerErrorsPerSecClusteraws.neptune.TotalServerErrorsPerSec.byClusteraws.neptune.TotalServerErrorsPerSecClusterByRoleaws.neptune.TotalServerErrorsPerSec.byClusterByRoleaws.neptune.TotalServerErrorsPerSecInstanceaws.neptune.TotalServerErrorsPerSec.byInstanceaws.neptune.VolumeBytesUsedClusteraws.neptune.VolumeBytesUsed.byClusteraws.neptune.VolumeBytesUsedClusterByRoleaws.neptune.VolumeBytesUsed.byClusterByRoleaws.neptune.VolumeBytesUsedInstanceaws.neptune.VolumeBytesUsed.byInstanceaws.neptune.VolumeReadIOPsClusteraws.neptune.VolumeReadIOPs.byClusteraws.neptune.VolumeReadIOPsClusterByRoleaws.neptune.VolumeReadIOPs.byClusterByRoleaws.neptune.VolumeReadIOPsInstanceaws.neptune.VolumeReadIOPs.byInstanceaws.neptune.VolumeWriteIOPsClusteraws.neptune.VolumeWriteIOPs.byClusteraws.neptune.VolumeWriteIOPsClusterByRoleaws.neptune.VolumeWriteIOPs.byClusterByRoleaws.neptune.VolumeWriteIOPsInstanceaws.neptune.VolumeWriteIOPs.byInstanceaws.rds.VolumeBytesUsedDbClusteraws.rds.VolumeBytesUsed.byDbClusteraws.rds.VolumeReadIOPsDbClusteraws.rds.VolumeReadIOPs.byDbClusteraws.rds.VolumeWriteIOPsDbClusteraws.rds.VolumeWriteIOPs.byDbClusteraws.redshift.CPUUtilizationClusteraws.redshift.CPUUtilization.byClusteraws.redshift.CPUUtilizationNodeaws.redshift.CPUUtilization.byNodeaws.redshift.DatabaseConnectionsClusteraws.redshift.DatabaseConnections.byClusteraws.redshift.DatabaseConnectionsNodeaws.redshift.DatabaseConnections.byNodeaws.redshift.HealthStatusClusteraws.redshift.HealthStatus.byClusteraws.redshift.HealthStatusNodeaws.redshift.HealthStatus.byNodeaws.redshift.MaintenanceModeClusteraws.redshift.MaintenanceMode.byClusteraws.redshift.MaintenanceModeNodeaws.redshift.MaintenanceMode.byNodeaws.redshift.NetworkReceiveThroughputClusteraws.redshift.NetworkReceiveThroughput.byClusteraws.redshift.NetworkReceiveThroughputNodeaws.redshift.NetworkReceiveThroughput.byNodeaws.redshift.NetworkTransmitThroughputClusteraws.redshift.NetworkTransmitThroughput.byClusteraws.redshift.NetworkTransmitThroughputNodeaws.redshift.NetworkTransmitThroughput.byNodeaws.redshift.PercentageDiskSpaceUsedClusteraws.redshift.PercentageDiskSpaceUsed.byClusteraws.redshift.PercentageDiskSpaceUsedNodeaws.redshift.PercentageDiskSpaceUsed.byNodeaws.redshift.ReadIOPSClusteraws.redshift.ReadIOPS.byClusteraws.redshift.ReadIOPSNodeaws.redshift.ReadIOPS.byNodeaws.redshift.ReadLatencyClusteraws.redshift.ReadLatency.byClusteraws.redshift.ReadLatencyNodeaws.redshift.ReadLatency.byNodeaws.redshift.ReadThroughputClusteraws.redshift.ReadThroughput.byClusteraws.redshift.ReadThroughputNodeaws.redshift.ReadThroughput.byNodeaws.redshift.WriteIOPSClusteraws.redshift.WriteIOPS.byClusteraws.redshift.WriteIOPSNodeaws.redshift.WriteIOPS.byNodeaws.redshift.WriteLatencyClusteraws.redshift.WriteLatency.byClusteraws.redshift.WriteLatencyNodeaws.redshift.WriteLatency.byNodeaws.redshift.WriteThroughputClusteraws.redshift.WriteThroughput.byClusteraws.redshift.WriteThroughputNodeaws.redshift.WriteThroughput.byNodeaws.states.ConsumedCapacityApiUsageaws.states.ConsumedCapacity.byApiUsageaws.states.ConsumedCapacityServiceaws.states.ConsumedCapacity.byServiceaws.states.ProvisionedBucketSizeApiUsageaws.states.ProvisionedBucketSize.byApiUsageaws.states.ProvisionedBucketSizeServiceaws.states.ProvisionedBucketSize.byServiceaws.states.ProvisionedRefillRateApiUsageaws.states.ProvisionedRefillRate.byApiUsageaws.states.ProvisionedRefillRateServiceaws.states.ProvisionedRefillRate.byServiceaws.states.ThrottledEventsApiUsageaws.states.ThrottledEvents.byApiUsageaws.states.ThrottledEventsServiceaws.states.ThrottledEvents.byService
New Relic多くのAWS ネームスペースに対して エンティティ を生成します。
エンティティ エクスプローラーでこれらのエンティティを参照します。
それらのエンティティ用に自動的に作成されたエンティティダッシュボードにアクセスします。
AWSタグで装飾された名前空間からメトリックとエンティティを取得します。AWSタグを収集するには、UIのセットアッププロセスの一部である
tag:GetResources権限をNewRelicに付与している必要があります。AWSタグは、メトリックにtag.AWSTagNameとして表示されます。たとえば、リソースにTeamAWSタグを設定した場合、tag.Teamと表示されます。エンティティ エクスプローラーに含まれるすべての機能を活用します。
重要
New Relic Lookout は、 AWSメトリクス ストリーム統合と互換性がありません。
アラート条件を作成する
メトリクス ストリームからメトリクス上で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にストリーミングメトリックを追加すると、Amazon Firehose でデータをバッファリングする必要があるため、最大 1 分の追加遅延が発生する可能性があります。
信号設定を構成するには、 Condition Settingsに移動してAdvanced Signal Settingsをクリックします。 次の値を入力します。
- Aggregation window: 1分に設定することをお勧めします。 アラートがフラッピングしたり、アラートがトリガーされないなどの問題が発生している場合は、2 分に増やすことを検討してください。
- Offset evaluation by: サービスによっては、CloudWatch が一定の遅延を伴ってメトリクスを送信する場合があります。 値は Windows で設定されます。 1 分間の集計ウィンドウでオフセットを 8 に設定すると、ほとんどのメトリックが正しく評価されます。 AWS と Firehose によって発生する遅延が少ない場合は、より低いオフセットを使用できる可能性があります。
- Fill data gaps with: この空白のままにするか、AWS からのデータにギャップがあり、誤検知または誤検知が発生する場合は、最後の既知の値を使用します。
タグコレクション
New Relic は、AWS CloudWatch メトリクス ストリームからのメトリクスから拡張ディメンションを提供します。リソース タグとカスタム タグは、ほとんどのサービスから自動的に取得され、追加のディメンションでメトリックを装飾するために使用されます。メトリクスとイベントを使用して、各 AWS メトリクスで使用できるタグを確認します。
次のクエリは、タグを収集し、メトリクスのディメンションとしてクエリを実行する例を示しています。
SELECT average(`aws.rds.CPUUtilization`) FROM Metric FACET `tags.mycustomtag` SINCE 30 MINUTES AGO TIMESERIESすべてのメトリクスがディメンションとしてカスタム タグを持っているわけではありません。 エンティティ エクスプローラーにリストされているエンティティにリンクされているメトリクスのみに、カスタム タグが関連付けられています。 Amazon CloudWatch Metric Streamsインテグレーションには、ストリーム メッセージの一部としてタグが含まれません。したがって、 New Relic側で追加の処理が必要になります。
メタデータの収集
カスタムタグと同様に、New Relic は関連する AWS サービスからメタデータ情報をプルして、AWS サービス API から収集された強化されたメタデータで AWS CloudWatch メトリクスを装飾します。このメタデータは、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]
カスタムメトリックとパーセンタイル [#custom-metrics-percentiles]
CloudWatch Metric Streamsカスタムメトリックやパーセンタイルなど、ストリーム内で設定された新しいメトリクスを自動的に取り込みます。
カスタムメトリック [#custom-metrics]
パーセンタイル [#percentiles]
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 は、アカウントに取り込まれているデータを追跡するための一連のツールを提供します。 すべての詳細を表示するには、設定メニューのManage your dataに移動します。 AWSメトリクス ストリーム統合から取り込まれたメトリクスは、 Metricバケット内にあるとみなされます。
重要
AWS Metric Streams を介して送信されたメトリクスは、データが取り込まれる New Relic アカウントの Metric API 制限にカウントされます。
より詳細なデータの表示が必要な場合は、 Metricのbytecountestimate()関数を使用して、取り込まれるデータを推定します。 次のサンプルクエリは、AWS の取り込みを理解するのに役立ちます。
次の書き込みは、過去 30 日間にAWSメトリクス ストリーム インテグレーション経由で処理されたすべてのメトリクスから取り込まれたデータを表します (バイト単位)。
FROM Metric SELECT bytecountestimate()/10e8 as 'GB Estimate' WHERE collector.name='cloudwatch-metric-streams' SINCE 30 day agoAWSサービス/ネームスペースによって取り込まれたデータを表示するには:
FROM Metric SELECT bytecountestimate()/10e8 as 'GB Estimate' WHERE collector.name='cloudwatch-metric-streams' FACET aws.NamespaceAWSサービス/ネームスペースによって処理された生のメトリックスアップデートの数を確認するには:
FROM Metric SELECT dataPointCount() WHERE collector.name='cloudwatch-metric-streams' FACET aws.Namespaceインジェストされるデータをコントロールするために、次のような対応をお勧めします。
- New Relicで監視したいAWSアカウントとリージョンでのみメトリックストリームが有効になっていることを確認します。
- Use the inclusion and exclusion filters CloudWatch Metric Streamsで、 New Relicによって監視されているサービスまたはネームスペースを選択します。
- ドロップデータルールを使用して、カスタムフィルターに基づくメトリックを破棄することを検討してください。(たとえば、名前空間とタグ、タグ値、またはその他の有効なNRQL基準ごとにメトリックを削除します。)
APIポーリングメトリクス
各ポーリング統合で利用可能なメトリクスとその名前のリファレンスについては、個別の統合に関するドキュメントを参照してください。
次の非包括的なリストは、AWS ポーリング統合によって収集されたメトリクスとその次元メトリクスの変換を示しています。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AWS Billing |
|
|
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AWS DocumentDB |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AWS MQ |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|