AWSと統合すると、New Relicプラットフォームでアラート条件を設定したり、データをクエリしたりできるようになります。このドキュメントでは、アラートを作成してデータをクエリできるように、AWS次元メトリクスを保存する方法について説明します。
まだ行っていない場合は、 AWS CloudWatch Metric Streamsインテグレーションをインストールまたは移行して、 AWSサービスのメトリクスを取り込むことをお勧めします。APIポーリングを使用してAWSデータを収集している場合は、 APIポーリングのメトリクスセクションで、インテグレーションごとに収集されるメトリクスを確認できます。
クエリ、メトリクスストレージ、マッピング
個々のクラウドインテグレーションからのメトリクスをAWS CloudWatch Metric Streamsからの新しい候補にマッピングしました。どちらのメトリクス命名規則を使用しても、アラート、ダッシュボード、クエリは引き続き機能します。次の点に留意してください。
- メトリクスストリームからのすべてのメトリクスには、
aws.MetricStreamArnおよびcollector.name = 'cloudwatch-metric-streams'属性があります。 - AWS CloudWatchからのメトリクスは、タイプ
summaryの次元メトリクスとして保存されます。
New Relic が AWSメトリクスを次元メトリクスとして保存する方法の詳細については、以下を参照してください。
- 次元メトリクスの命名規則はNew RelicバックエンドのAWSネームスペースを更新する方法を説明しています。
- 複数の次元の組み合わせによるメトリクスでは、クエリ集計を使用して複数の次元を持つメトリクスを解析する方法について説明します
+ 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
多くのAWSネームスペースに対してNew Relicエンティティを生成します。
エンティティエクスプローラーでこれらのエンティティを参照してください。
エンティティ用に自動的に作成されるエンティティダッシュボードにアクセスします。
AWSタグでデコレーションされたネームスペースからメトリクスとエンティティを取得します。AWS タグを収集するには、UI のセットアッププロセスの一部である
tag:GetResources権限をNew Relicに付与する必要があります。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は、Amazon CloudWatch Metric Streamsからのメトリクスの拡張次元を提供します。リソースとカスタムタグはほとんどのサービスから自動的に取得され、追加の次元でメトリクスをデコレーションするために使用されます。メトリクスとイベントを使用して、各AWSメトリクスでどのタグが利用できるかを確認します。
次のクエリは、タグが収集され、メトリクスの次元として書き込まれる例を示しています。
SELECT average(`aws.rds.CPUUtilization`) FROM Metric FACET `tags.mycustomtag` SINCE 30 MINUTES AGO TIMESERIESすべてのメトリクスが次元としてカスタム タグを持っているわけではありません。 エンティティエクスプローラーにリストされているエンティティにリンクされているメトリクスのみに、カスタムタグが関連付けられています。AWS CloudWatch Metric Streamsは、ストリームメッセージの一部としてタグが含まれません。したがって、 New Relic側で追加の処理が必要になります。
メタデータ収集
カスタムタグと同様に、 New Relicも関連するAWSサービスからメタデータ情報を取得して、 AWS CloudWatchメトリクスをAWSサービスAPIから収集した充実したメタデータでデコレーションします。このメタデータは、AWS CloudWatchによって提供されるメトリクスの追加次元としてNew Relicでアクセスできます。
重要
このオプションの機能は、 CloudWatch Metric Streamsインテグレーションを補完するものです。このオプション機能を有効にしないと、サービスの検出と監視が不完全になります。
このソリューションはAWS Configに依存しており、AWS アカウントに追加コストが発生する可能性があります。AWS Configは、記録されるサービスとリソースを決定するための詳細な制御を提供します。New Relicは、AWSアカウント内の利用可能なリソースからのみメタデータを取り込みます。
次のサービスとネームスペースがサポートされています。
- ALB/NLB
- API Gateway(API v1 を除く)
- DynamoDB
- EBS
- EC2
- ECS
- ELB
- Lambda
- RDS
- S3
infrastructureエージェントメトリクスとEC2メタデータデコレーション
EC2 APIポーリングインテグレーションと同様に、infrastructureエージェントがホストにインストールされ、EC2 ネームスペースがAWS CloudWatch Metric Streamsインテグレーションを通じてアクティブになっている場合、すべてのinfrastructureエージェントイベントとメトリクスが追加のメタデータでデコレーションされます。
次の属性はインフラストラクチャサンプルをデコレーションします。これらの一部はすべての環境に適用できない場合があります。awsAvailabilityZone 、 ec2InstanceId 、 ec2PublicDnsName 、 ec2State 、 ec2EbsOptimized 、 ec2PublicIpAddress 、 ec2PrivateIpAddress 、 ec2VpcId 、 ec2AmiId 、 ec2PrivateDnsName 、 ec2KeyName 、 ec2SubnetId 、 ec2InstanceType 、 ec2Hypervisor 、 ec2Architecture 、 ec2RootDeviceType 、 ec2RootDeviceName 、 ec2VirtualizationType 、 ec2PlacementGroupName 、 ec2PlacementGroupTenancy 。
カスタムメトリックとパーセンタイル
CloudWatch Metric Streamsインテグレーションは、カスタムメトリックやパーセンタイルなど、ストリーム内で設定された新しいメトリクスを自動的に取り込みます。
カスタムメトリクス
CloudWatchカスタムメトリックを取り込むには、カスタムネームスペースがCloudWatch Metric Streams設定に表示される必要があります。包含ルールまたは除外ルールによってフィルタリングされていないことを確認してください。
パーセンタイル
AWS CloudWatchを使用すると、パーセンタイルなどの追加の統計を定義できます。
CloudWatchストリームで利用可能なメトリクスにパーセンタイルを追加するには、次の手順に従います。
AWSで、
StatisticConfiguration設定の必要なパーセンタイルを使用して、CloudWatchストリーム設定を(API 、 CLI 、またはAWS Console経由で)更新します。たとえば、p90、p95、p99パーセンタイルをELB latency metric (aws.elb.Latency)に追加できます。数分後、新しい統計がストリームで利用可能になり、New Relicによって取り込まれるはずです。パーセンタイルは、次の命名規則を使用して作成できます。
From Metric select max(aws.elb.Latency.p99) where collector.name = 'cloudwatch-metric-streams' timeseries
AWSパーセンタイル以外にストリーム内の他の統計もサポートしていますが、それらはOpen Telemetryエクスポート形式では利用できず(JSON のみ)、現在のところNew Relicではサポートされていません。
料金、制限、および高度な設定の詳細については、 AWSドキュメントをご覧ください。
データの管理
New Relic UIには、アカウントに取り込まれるデータを追跡するための一連のツールが用意されています。すべての詳細を表示するには、設定メニューのManage your dataに移動してください。AWSメトリクスストリームインテグレーションから取り込まれたメトリクスは、 Metricバケット内にあるとみなされます。
重要
AWSメトリクスストリーム経由で送信されたメトリクスは、データが取り込まれるNew Relicアカウントのメトリクス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 |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|