[アップデート] Amazon CloudWatch Metric Streams が追加統計情報を新たにサポートしました

Amazon CloudWatch Metric Streamsを使った分析の幅が広がるぞ
2022.04.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon CloudWatch Metric Streamsに様々な統計情報を追加できるように

こんにちは、のんピ(@non____97)です。

Amazon CloudWatch Metric Streams が追加統計情報を新たにサポートされました。

Amazon CloudWatch Metric Streamsの基本的な説明は以下記事をご覧ください。

CloudWatch Metric Streamsについて言及しているサードパーティのモニタリングサービスのドキュメントを確認すると、「CloudWatch Metric Streamsはパーセンタイルはサポートしていない」と記載がありました。

  • Datadog

    API ポーリングを使用して Datadog がサポートする、ほとんどすべての CloudWatch のネームスペースおよびメトリクスは、Metric Streams でもサポートされます。ただし、一部例外があります。

    現在、以下の CloudWatch メトリクスはサポートされていません。

    1. パーセンタイル統計用のメトリクス(p90、p95、p99 など)。CloudWatch Metric Streams は、現在パーセンタイル統計のストリーミングをサポートしていません。
    2. 時間以上前のタイムスタンプがあるメトリクス。これには、S3 デイリーストレージや一部の請求メトリクスも含まれます。

    Kinesis Data Firehose を使用した AWS CloudWatch メトリクスストリーム

  • New Relic

    すべてのAWSサービスとカスタム名前空間からのすべてのCloudWatchメトリクスは、特定の統合の構築や更新を必要とせずに、New Relicで一度に 。

    例外として、パーセンタイルと、CloudWatchで2時間以上遅れて利用可能になる少数のメトリクスがあり、そのためストリームには含まれません。

    Amazon CloudWatch Metric Streamsの統合の紹介 | New Relic Documentation

今回のアップデートでパーセンタイルやトリム平均などが追加され、分析の幅が広がることになります。

やってみた

Amazon CloudWatch Metric Streamsの作成

それでは早速、Amazon CloudWatch Metric Streamsで任意のメトリクスに統計情報を追加して、S3バケットにメトリクスを送信してみます。

CloudWatchのコンソールを開いて、メトリクス配下のストリームからメトリクスストリームの作成をクリックします。

メトリクスストリームの作成

全てのCloudWatch Metricsをストリーミングすると見辛くなりそうな予感がしたので、選択された名前空間を選択し、AWS/Usageのみをストリーミングするようにします。

設定オプションはS3のクイックセットアップを選択しました。

S3バケットやS3バケット、Kinesis Data Firehoseに書き込むサービスロールを自動で作成してくれるので、サクッと動きを確認するときは非常に便利です。出力方式もデフォルトのJSONのままにしておきます。

S3のクイックセットアップ

続いて統計情報の選択です。

選択できる統計情報は以下の通りです。

  • p99
  • p95
  • p90
  • p80
  • p70
  • IQM
  • tm99
  • tc99
  • ts99
  • PR
  • TC
  • TM
  • TS
  • WM

選択できる統計情報

各統計情報のより具体的な解説については以下のドキュメントを参照してください。

拡張可能となっている統計情報については任意の値に変更可能です。

例えばPR(n:m)を選択すると、テキストエリアにPR(n:m)が入力されます。

PR(n:m)

1から100の間の値を持つデータポイントの割合を出力したい場合はPR(1:100)と入力し、Enterを押下するとPR(1:100)が追加された状態になります。

PR(1:100)の追加

今回は選択できる統計情報全て選択します。統計対象のメトリクスはCallCountとしました。

メトリクスと統計情報を選択

ちなみに、2022/4/19現在、拡張可能となっている統計情報はJSONのみをサポートしているらしく、出力フォーマットをOpenTelemetry 0.7にすると拡張可能の統計情報を選択することはできません。

出力にOpenTelemetry 0.7を選択した場合に選択できる統計情報

最後にCloudWatch Metric Streamsの名前を入力して、メトリクスストリームの作成をクリックします。

CloudWatch Metric Streamsの名前を入力とメトリクスストリームの作成

数秒待つと、CloudWatch Metric Streamsが作成完了しました。

CloudWatch Metric Streamsの作成完了確認

作成されたリソースの確認

CloudWatch Metric Streamsの名前をクリックすると各種設定やモニタリングダッシュボードが表示されます。追加の統計情報もここで確認できます。

CloudWatch Metric Streamsの設定確認

出力先のKinesis Data Firehostの設定を確認します。

IAMロール以外はデフォルトの設定となっています。もし、ロギングや暗号化、バッファーサイズなどの設定変更を行いたい場合は別途設定が必要です。

出力先のKinesis Data Firehostの設定確認1

出力先のKinesis Data Firehostの設定確認2

出力先のKinesis Data Firehostの設定確認3

S3のクイックセットアップで作成されたS3バケット、Kinesis Data Firehoseに書き込むサービスロールのIAMポリシーと信頼関係は以下のようになっていました。

  • S3バケットに書き込むサービスロール
    • IAMポリシー

      S3バケットに書き込むサービスロールのIAMポリシー

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:AbortMultipartUpload",
                      "s3:GetBucketLocation",
                      "s3:GetObject",
                      "s3:ListBucket",
                      "s3:ListBucketMultipartUploads",
                      "s3:PutObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::metricstreams-quickpartial-iuz6ec-zkwnwulr",
                      "arn:aws:s3:::metricstreams-quickpartial-iuz6ec-zkwnwulr/*"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "logs:PutLogEvents"
                  ],
                  "Resource": [
                      "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/aws/kinesisfirehose/MetricStreams-QuickPartial-iuZ6Ec-Vschm8So:log-stream:S3Delivery"
                  ]
              }
          ]
      }
    • 信頼関係

      S3バケットに書き込むサービスロールの信頼関係

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "firehose.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
  • Kinesis Data Firehoseに書き込むサービスロール
    • IAMポリシー

      Kinesis Data Firehoseに書き込むサービスロールのIAMポリシー

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "firehose:PutRecord",
                      "firehose:PutRecordBatch"
                  ],
                  "Resource": [
                      "arn:aws:firehose:us-east-1:<AWSアカウントID>:deliverystream/MetricStreams-QuickPartial-iuZ6Ec-Vschm8So"
                  ]
              }
          ]
      }
    • 信頼関係

      Kinesis Data Firehoseに書き込むサービスロールの信頼関係

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "streams.metrics.cloudwatch.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "sts:ExternalId": "<AWSアカウントID>"
                      }
                  }
              }
          ]
      }

統計情報の確認

適当にコンソールをポチポチして、CloudWatch Metric Streamsにデータが流れていくのを待ちます。

しばらくして、作成したCloudWatch Metric Streamsのモニタリングダッシュボードを確認すると、メトリクスの更新メトリクスの更新の合計エラーにグラフが描画されていることを確認できました。

CloudWatch Metric Streamsのモニタリングダッシュボード

出力先のS3バケットを確認すると、YYYY/MM/DD/HH配下にオブジェクトが作成されていることを確認できました。

出力先のS3バケットの確認

オブジェクトをダウンロードして確認すると、以下のようにJSONオブジェクトが複数行出力されていました。

{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackInstanceOperations","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"DeliveryStreams","Service":"Firehose","Type":"Resource"},"timestamp":1650330720000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeMetricFilters","Service":"Logs","Type":"API"},"timestamp":1650330720000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackSets","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330720000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ClassicLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeEventAggregates","Service":"AWS Health APIs And Notifications","Type":"API"},"timestamp":1650330720000,"value":{"max":1.0,"min":1.0,"sum":3.0,"count":3.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":2.9699999999999998,"ts99":2.9699999999999998,"PR(1:100)":100.0,"TC(10%:90%)":2.4000000000000004,"TM(10%:90%)":1.0,"TS(10%:90%)":2.4000000000000004,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetGroupsPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackInstanceOperations","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListPolicyGenerations","Service":"Access Analyzer","Type":"API"},"timestamp":1650330720000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetGroupsPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ApplicationLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerTargetGroupPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackSets","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330780000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListAccessPoints","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerAvailabilityZonePerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeEventAggregates","Service":"AWS Health APIs And Notifications","Type":"API"},"timestamp":1650330780000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerClassicLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackInstanceOperations","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketPolicyStatus","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketOwnershipControls","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":3.0,"count":3.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":2.9699999999999998,"ts99":2.9699999999999998,"PR(1:100)":100.0,"TC(10%:90%)":2.4000000000000004,"TM(10%:90%)":1.0,"TS(10%:90%)":2.4000000000000004,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"RegisteredInstancesPerClassicLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"NetworkLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListPolicyGenerations","Service":"Access Analyzer","Type":"API"},"timestamp":1650330780000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"OnDemand","Service":"Fargate","Type":"Resource"},"timestamp":1650330720000,"value":{"max":2.0,"min":2.0,"sum":2.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketCors","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketVersioning","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetAccountPublicAccessBlock","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":4.0,"count":4.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":3.96,"ts99":3.96,"PR(1:100)":100.0,"TC(10%:90%)":3.2,"TM(10%:90%)":1.0,"TS(10%:90%)":3.2,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketWebsite","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"Spot","Service":"Fargate","Type":"Resource"},"timestamp":1650330720000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketPolicy","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketPublicAccessBlock","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":4.0,"count":4.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":3.96,"ts99":3.96,"PR(1:100)":100.0,"TC(10%:90%)":3.2,"TM(10%:90%)":1.0,"TS(10%:90%)":3.2,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListBuckets","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"GetBucketAcl","Service":"S3","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackSets","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ClassicLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeEventAggregates","Service":"AWS Health APIs And Notifications","Type":"API"},"timestamp":1650330900000,"value":{"max":1.0,"min":1.0,"sum":4.0,"count":4.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":3.96,"ts99":3.96,"PR(1:100)":100.0,"TC(10%:90%)":3.2,"TM(10%:90%)":1.0,"TS(10%:90%)":3.2,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeEventAggregates","Service":"AWS Health APIs And Notifications","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":4.0,"count":4.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":3.96,"ts99":3.96,"PR(1:100)":100.0,"TC(10%:90%)":3.2,"TM(10%:90%)":1.0,"TS(10%:90%)":3.2,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"RoutingRulesPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackInstanceOperations","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"NetworkLoadBalancersENIsPerVPC","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"DeliveryStreams","Service":"Firehose","Type":"Resource"},"timestamp":1650330900000,"value":{"max":2.0,"min":2.0,"sum":2.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListPolicyGenerations","Service":"Access Analyzer","Type":"API"},"timestamp":1650330840000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"OnDemand","Service":"Fargate","Type":"Resource"},"timestamp":1650330780000,"value":{"max":2.0,"min":2.0,"sum":2.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetGroupsPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ApplicationLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":2.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"Spot","Service":"Fargate","Type":"Resource"},"timestamp":1650330840000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"Spot","Service":"Fargate","Type":"Resource"},"timestamp":1650330780000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeMetricFilters","Service":"Logs","Type":"API"},"timestamp":1650330900000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetsPerTargetGroupPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackSets","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330900000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerClassicLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerClassicLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetGroupsPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackInstanceOperations","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"NetworkLoadBalancersPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330900000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"ListPolicyGenerations","Service":"Access Analyzer","Type":"API"},"timestamp":1650330900000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"OnDemand","Service":"Fargate","Type":"Resource"},"timestamp":1650330840000,"value":{"max":2.0,"min":2.0,"sum":2.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"TargetGroupsPerRegion","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"CertificatesPerApplicationLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeInstances","Service":"EC2","Type":"API"},"timestamp":1650330960000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":0.99,"ts99":0.99,"PR(1:100)":100.0,"TC(10%:90%)":0.8,"TM(10%:90%)":1.0,"TS(10%:90%)":0.8,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"ListenersPerNetworkLoadBalancer","Service":"Elastic Load Balancing","Type":"Resource"},"timestamp":1650330960000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"CallCount","dimensions":{"Class":"None","Resource":"DescribeMetricFilters","Service":"Logs","Type":"API"},"timestamp":1650330960000,"value":{"max":1.0,"min":1.0,"sum":2.0,"count":2.0,"p99":1.0,"p95":1.0,"p90":1.0,"p80":1.0,"p70":1.0,"IQM":1.0,"tm99":1.0,"tc99":1.98,"ts99":1.98,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.0,"TS(10%:90%)":1.6,"WM(10%:90%)":1.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/Usage","metric_name":"ResourceCount","dimensions":{"Class":"None","Resource":"StackSets","Service":"CloudFormation","Type":"Resource"},"timestamp":1650330960000,"value":{"max":1.0,"min":1.0,"sum":1.0,"count":1.0},"unit":"None"}

フォーマットすると名前空間がAWS/Usageでメトリクス名がCallCountのもののみ、p99やp95など追加した統計情報が出力されていることが確認できます。

{
  "metric_stream_name": "QuickPartial-iuZ6Ec",
  "account_id": "<AWSアカウントID>",
  "region": "us-east-1",
  "namespace": "AWS/Usage",
  "metric_name": "CallCount",
  "dimensions": {
    "Class": "None",
    "Resource": "DescribeMetricFilters",
    "Service": "Logs",
    "Type": "API"
  },
  "timestamp": 1650330960000,
  "value": {
    "max": 1.0,
    "min": 1.0,
    "sum": 2.0,
    "count": 2.0,
    "p99": 1.0,
    "p95": 1.0,
    "p90": 1.0,
    "p80": 1.0,
    "p70": 1.0,
    "IQM": 1.0,
    "tm99": 1.0,
    "tc99": 1.98,
    "ts99": 1.98,
    "PR(1:100)": 100.0,
    "TC(10%:90%)": 1.6,
    "TM(10%:90%)": 1.0,
    "TS(10%:90%)": 1.6,
    "WM(10%:90%)": 1.0
  },
  "unit": "None"
}
{
  "metric_stream_name": "QuickPartial-iuZ6Ec",
  "account_id": "<AWSアカウントID>",
  "region": "us-east-1",
  "namespace": "AWS/Usage",
  "metric_name": "ResourceCount",
  "dimensions": {
    "Class": "None",
    "Resource": "StackSets",
    "Service": "CloudFormation",
    "Type": "Resource"
  },
  "timestamp": 1650330960000,
  "value": {
    "max": 1.0,
    "min": 1.0,
    "sum": 1.0,
    "count": 1.0
  },
  "unit": "None"
}

対象となるメトリクスは後から変更することも可能です。

試しに名前空間をAWS/EC2、メトリクス名をCPUUtilizationEBSReadBytesを変更してみます。

対象の名前空間の変更

しばらくして出力先のS3バケットのオブジェクトを確認すると以下のようになっていました。

{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"CPUUtilization","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":44.314450944119464,"min":7.916534724421259,"sum":52.230985668540725,"count":2.0,"p99":44.24872484217967,"p95":43.986793822995615,"p90":43.66155936957349,"p80":43.01828694632084,"p70":42.38449195393631,"IQM":25.01076798154321,"tm99":25.188062683831532,"tc99":1.98,"ts99":49.872364113986436,"PR(1:100)":100.0,"TC(10%:90%)":1.6,"TM(10%:90%)":25.23171295208864,"TS(10%:90%)":40.370740723341825,"WM(10%:90%)":25.471191906503638},"unit":"Percent"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSWriteBytes","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":2.48485376E8,"min":2270720.0,"sum":2.50756096E8,"count":2.0},"unit":"Bytes"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSReadOps","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":339.0,"min":0.0,"sum":339.0,"count":2.0},"unit":"Count"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSWriteOps","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":1271.0,"min":107.0,"sum":1378.0,"count":2.0},"unit":"Count"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"NetworkOut","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":304173.0,"min":260891.0,"sum":565064.0,"count":2.0},"unit":"Bytes"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSByteBalance%","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":99.0,"min":99.0,"sum":198.0,"count":2.0},"unit":"Percent"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSIOBalance%","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":99.0,"min":99.0,"sum":198.0,"count":2.0},"unit":"Percent"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"EBSReadBytes","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":2.5112576E7,"min":0.0,"sum":2.5112576E7,"count":2.0,"p99":2.507560372509185E7,"p95":2.4928258153167E7,"p90":2.474529313722882E7,"p80":2.4383381953623008E7,"p70":2.4026763885927953E7,"IQM":1.1887483965086192E7,"tm99":1.1979263869831756E7,"tc99":1.98,"ts99":2.3718942462266877E7,"PR(1:100)":0.0,"TC(10%:90%)":1.6,"TM(10%:90%)":1.2021244772068955E7,"TS(10%:90%)":1.923399163531033E7,"WM(10%:90%)":1.2128253417655164E7},"unit":"Bytes"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"NetworkPacketsOut","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":4350.0,"min":710.0,"sum":5060.0,"count":2.0},"unit":"Count"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"NetworkPacketsIn","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":43811.0,"min":620.0,"sum":44431.0,"count":2.0},"unit":"Count"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"MetadataNoToken","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":0.0,"min":0.0,"sum":0.0,"count":3.0},"unit":"None"}
{"metric_stream_name":"QuickPartial-iuZ6Ec","account_id":"<AWSアカウントID>","region":"us-east-1","namespace":"AWS/EC2","metric_name":"NetworkIn","dimensions":{"InstanceId":"i-05faeef3f7981740b"},"timestamp":1650345000000,"value":{"max":6.2498512E7,"min":151312.0,"sum":6.2649824E7,"count":2.0},"unit":"Bytes"}

フォーマットすると名前空間がAWS/EC2でメトリクス名がCPUUtilizationEBSReadBytesのもののみ、p99やp95など追加した統計情報が出力されていることが確認できます。

{
  "metric_stream_name": "QuickPartial-iuZ6Ec",
  "account_id": "<AWSアカウントID>",
  "region": "us-east-1",
  "namespace": "AWS/EC2",
  "metric_name": "CPUUtilization",
  "dimensions": {
    "InstanceId": "i-05faeef3f7981740b"
  },
  "timestamp": 1650345000000,
  "value": {
    "max": 44.314450944119464,
    "min": 7.916534724421259,
    "sum": 52.230985668540725,
    "count": 2.0,
    "p99": 44.24872484217967,
    "p95": 43.986793822995615,
    "p90": 43.66155936957349,
    "p80": 43.01828694632084,
    "p70": 42.38449195393631,
    "IQM": 25.01076798154321,
    "tm99": 25.188062683831532,
    "tc99": 1.98,
    "ts99": 49.872364113986436,
    "PR(1:100)": 100.0,
    "TC(10%:90%)": 1.6,
    "TM(10%:90%)": 25.23171295208864,
    "TS(10%:90%)": 40.370740723341825,
    "WM(10%:90%)": 25.471191906503638
  },
  "unit": "Percent"
}
{
  "metric_stream_name": "QuickPartial-iuZ6Ec",
  "account_id": "<AWSアカウントID>",
  "region": "us-east-1",
  "namespace": "AWS/EC2",
  "metric_name": "EBSWriteBytes",
  "dimensions": {
    "InstanceId": "i-05faeef3f7981740b"
  },
  "timestamp": 1650345000000,
  "value": {
    "max": 2.48485376E8,
    "min": 2270720.0,
    "sum": 2.50756096E8,
    "count": 2.0
  },
  "unit": "Bytes"
}
(中略)
{
  "metric_stream_name": "QuickPartial-iuZ6Ec",
  "account_id": "<AWSアカウントID>",
  "region": "us-east-1",
  "namespace": "AWS/EC2",
  "metric_name": "EBSReadBytes",
  "dimensions": {
    "InstanceId": "i-05faeef3f7981740b"
  },
  "timestamp": 1650345000000,
  "value": {
    "max": 2.5112576E7,
    "min": 0.0,
    "sum": 2.5112576E7,
    "count": 2.0,
    "p99": 2.507560372509185E7,
    "p95": 2.4928258153167E7,
    "p90": 2.474529313722882E7,
    "p80": 2.4383381953623008E7,
    "p70": 2.4026763885927953E7,
    "IQM": 1.1887483965086192E7,
    "tm99": 1.1979263869831756E7,
    "tc99": 1.98,
    "ts99": 2.3718942462266877E7,
    "PR(1:100)": 0.0,
    "TC(10%:90%)": 1.6,
    "TM(10%:90%)": 1.2021244772068955E7,
    "TS(10%:90%)": 1.923399163531033E7,
    "WM(10%:90%)": 1.2128253417655164E7
  },
  "unit": "Bytes"
}

その後も放置していると、Kinesis Data Firehoseに設定している通り、1分間隔でオブジェクトが追加されていきます。

出力先のS3バケットのオブジェクト一覧

今回は選択した名前空間がAWS/Usageのみなので放置していても課金額は微々たるものですが、CloudWatchとKinesis Data Firehoseの料金がもったいないので停止しておきます。

停止する際はCloudWatch Metric Streamsを選択して停止ボタンをクリックします。そして、確認ウィンドウで停止をクリックするだけです。

CloudWatch Metric Streamsの停止

停止をクリックすると、ステータスがすぐに停止に変化しました。

CloudWatch Metric Streamsの停止状態確認

気軽に停止できるのはありがたいですね。

今まで気づけなかった傾向や異常を素早く発見できるかも

Amazon CloudWatch Metric Streams が追加統計情報を新たにサポートしたアップデートを紹介しました。

このアップデートにより、今まで気づけなかった傾向や異常を素早く発見できるかもしれませんね。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!