news 2026/9/15 16:55:03

使用 AWS CLI `put-metric-stream` 创建 CloudWatch 指标流:完整参数解析与实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 AWS CLI `put-metric-stream` 创建 CloudWatch 指标流:完整参数解析与实战指南

使用 AWS CLIput-metric-stream创建 CloudWatch 指标流:完整参数解析与实战指南

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

导读

本文以 aws-cli 仓库中 put-metric-stream 官方示例 为骨架,系统讲解如何通过aws cloudwatch put-metric-stream命令创建 CloudWatch 指标流(Metric Stream),将账户内的 CloudWatch 指标实时投递到 Amazon Kinesis Data Firehose,再进一步转发至 Amazon S3 或第三方监控/可观测性平台。读完本文,你将掌握该命令的全部参数含义、IAM 与 Firehose 前置条件、输出格式(JSON 与 OpenTelemetry)的选择逻辑,以及如何用get-metric-streamdelete-metric-stream等配套命令完成指标流的全生命周期管理。

一、命令概览与官方示例

put-metric-stream对应的底层 API 为PutMetricStream,其官方文档描述为"创建或更新一个指标流,自动将 CloudWatch 指标流式传输到 AWS 目标(包括 Amazon S3)以及众多第三方解决方案"(见 service-2.json 中的 API 定义)。

仓库自带的官方示例文件 put-metric-stream.rst 给出了一个最简可用的创建命令:

aws cloudwatch put-metric-stream \ --name QuickFull-GuaFbs \ --firehose-arn arn:aws:firehose:us-east-1:123456789012:deliverystream/MetricStreams-QuickFull-GuaFbs-WnySbECG \ --role-arn arn:aws:iam::123456789012:role/service-role/MetricStreams-FirehosePutRecords-JN10W9B3 \ --output-format json \ --no-include-linked-accounts-metrics

执行成功后返回:

{ "Arn": "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/QuickFull-GuaFbs" }

该示例虽短,但恰好覆盖了创建指标流的四个必填参数NameFirehoseArnRoleArnOutputFormat)。从 service-2.json 的PutMetricStreamInput定义 可以看出,required列表恰好是这四个参数,其余均为可选。

二、参数详解(基于 API 模型源码)

以下内容均可在 PutMetricStreamInput 结构体 中找到权威依据。

2.1 必填参数

参数CLI 写法约束与说明
指标流名称--name新建时命名;更新时指定已有流名称。账户与区域内不得与其他指标流重名。合法字符为A-Za-z0-9-_,长度 1~255(MetricStreamName类型,见 service-2.json)
Firehose 投递流 ARN--firehose-arn指向已存在的 Amazon Kinesis Data Firehose 投递流,且必须与指标流处于同一账户
IAM 角色 ARN--role-arn指标流用于访问 Firehose 资源的 IAM 角色,必须已存在且与指标流同账户;角色需包含firehose:PutRecordfirehose:PutRecordBatch两个权限
输出格式--output-format合法值见下节MetricStreamOutputFormat枚举

2.2 输出格式枚举

根据 MetricStreamOutputFormat 定义,--output-format支持三个取值:

  • json:CloudWatch 原生 JSON 格式,指标流默认携带MAXMINSUMSAMPLECOUNT四种统计量;
  • opentelemetry1.0:OpenTelemetry 协议 1.0 版本;
  • opentelemetry0.7:OpenTelemetry 协议 0.7 版本。

选型提示:若下游是原生 Prometheus、Grafana 或其他支持 OTLP 的可观测性系统,建议使用 OpenTelemetry 格式;若下游是自定义 JSON 解析管道,则使用json即可。

2.3 可选参数

  • --include-filters:白名单过滤,仅发送指定 metric namespace 下的指标。IncludeFiltersExcludeFilters不能同时出现。
  • --exclude-filters:黑名单过滤,发送除指定 namespace 之外的所有指标。同样不能与IncludeFilters混用。
  • --include-linked-accounts-metrics:在监控账户(monitoring account)中创建指标流时,设为true可把源账户的指标一并纳入流中。示例中使用--no-include-linked-accounts-metrics显式关闭(CLI 对布尔参数提供--include-*/--no-include-*双写法)。
  • --tags:为指标流附加标签,最多 50 个键值对;仅新建时生效,更新已有流时会被忽略(改标签请用tag-resource/untag-resource)。
  • --statistics-configurations:默认只发送四种基础统计量;通过该参数可为指定指标追加额外统计量,数组最多 100 项。

三、过滤器与统计量配置的底层约束

3.1 过滤器结构(MetricStreamFilter)

从 MetricStreamFilter 定义 可知每个过滤器包含两个成员:

  • Namespace:指标命名空间,仅含 ASCII 可打印字符(32~126),且必须包含至少一个非空白字符;
  • MetricNames:可选,指定命名空间下需要包含/排除的具体指标名列表;省略时表示该命名空间下所有指标全部命中。

配额要点:指标流全部过滤器的"命名空间名 + 指标名"总和上限为1000 个名称(例如 10 个 namespace 过滤器各带 99 个指标名,或 20 个 namespace 各带 49 个指标名)。

3.2 追加统计量(StatisticsConfigurations)

根据 MetricStreamStatisticsConfiguration 定义:

  • 每个配置项由IncludeMetrics(指标名 + 命名空间对,最多 100 对,匹配所有维度)与AdditionalStatistics(最多 20 个统计量)组成;
  • OutputFormatjson时,可追加任意 CloudWatch 支持的统计量(如tm98wm90PR(:300)等);
  • OutputFormatopentelemetry0.7/opentelemetry1.0时,只能追加百分位统计量(如p90p99p99.9)。

一个带过滤器和追加统计量的完整示例:

aws cloudwatch put-metric-stream \ --name my-metric-stream \ --firehose-arn arn:aws:firehose:us-east-1:123456789012:deliverystream/my-firehose \ --role-arn arn:aws:iam::123456789012:role/service-role/MetricStreams-FirehosePutRecords-JN10W9B3 \ --output-format opentelemetry1.0 \ --include-filters Namespace=AWS/EC2,MetricNames=CPUUtilization \ --statistics-configurations 'IncludeMetrics=[{Namespace=AWS/EC2,MetricName=CPUUtilization}],AdditionalStatistics=[p90,p99]' \ --tags '{"Environment":"production"}'

四、前置条件与权限

PutMetricStream的 API 文档(见 service-2.json)明确列出两条硬性前置:

  1. 调用者必须登录到具有iam:PassRole权限的账户;
  2. 同时具备CloudWatchFullAccess策略或cloudwatch:PutMetricStream单项权限。

此外,指标流运行所需的 IAM 角色必须内联以下两个 Firehose 权限(官方示例中的角色 ARN 形如MetricStreams-FirehosePutRecords-*):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["firehose:PutRecord", "firehose:PutRecordBatch"], "Resource": "*" } ] }

五、生命周期管理配套命令

指标流创建后,可用同目录下的其他官方示例完成全流程管理:

  • 查看详情:get-metric-stream 示例 —— 返回ArnNameFirehoseArnRoleArnState(如running)、CreationDateLastUpdateDateOutputFormatIncludeLinkedAccountsMetrics等字段,便于核对创建结果;
  • 列出所有流aws cloudwatch list-metric-streams
  • 删除指标流:delete-metric-stream 示例 ——aws cloudwatch delete-metric-stream --name <stream-name>,命令无输出,删除后数据不再投递;
  • 启停指标流aws cloudwatch start-metric-streams/stop-metric-streams(对应 API 在 service-2.json 中定义);
  • 标签管理tag-resource/untag-resource/list-tags-for-resource

上述全部命令由 CLI 服务命令注册表统一暴露,命令入口可追溯至 awscli/botocore/data/cloudwatch/2010-08-01/service-2.json 中对应的 API 定义,以及仓库中同目录下的 其余 cloudwatch 示例文件(含delete-metric-stream.rstget-metric-stream.rstlist-metric-streams.rst等),可在本地仓库中继续研读。

六、注意事项与最佳实践

  1. 命名与区域隔离:指标流名称在同一账户同一区域内唯一,跨区域可重名;名称只允许字母、数字、-_
  2. Firehose 与角色同账户--firehose-arn--role-arn指向的资源必须与指标流同账户,跨账户投递需借助监控账户与源账户的--include-linked-accounts-metrics机制。
  3. 更新语义put-metric-stream同时承担"创建"与"更新"两种语义——对已存在名称再次调用即为更新;更新时Tags参数被忽略。
  4. 过滤优先于成本:默认流送全部命名空间的全部指标,指标量大会直接推高 Firehose 投递费用与下游存储成本;建议先用--include-filters收窄到关键命名空间(如AWS/EC2AWS/Lambda),再按需放宽。
  5. 验证输出格式:使用 OpenTelemetry 格式时,确保下游消费者支持 OTLP;使用json格式时,默认四统计量之外的需求通过--statistics-configurations显式声明。

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 16:54:06

领域语料MLM继续预训练:从数据清洗到RoBERTa实战指南

如果你突然接到一个任务&#xff0c;要用公司内部积累了多年的工单语料训练一个NLP模型来做智能客服、舆情分析或者知识检索&#xff0c;你大概率会遇到一个尴尬的局面&#xff1a;开源的中文RoBERTa预训练模型在通用语料上表现不错&#xff0c;但一旦面对满屏的行业黑话、产品…

作者头像 李华
网站建设 2026/9/15 16:52:21

Unity DOTS万人同屏实战:ECS与Job System优化萌宠战场

做类萌宠宠之战这种游戏&#xff0c;最让我上头的画面不是什么高清大世界&#xff0c;而是战斗刚开的那个瞬间&#xff1a;上万只宠物从四面八方涌向同一个目标&#xff0c;屏幕上密密麻麻全是单位&#xff0c;压迫感直接拉满。但这份压迫感首先压垮的是程序员自己。我第一版原…

作者头像 李华
网站建设 2026/9/15 16:50:49

搞定备案不踩坑,专注微商推广的网站源码下载避坑指南

搞定备案不踩坑,专注微商推广的网站源码下载避坑指南 备案流程一头雾水?别急,我懂你。很多做微商的朋友,手里拿着精心挑选的【专注微商推广的网站】源码,准备大干一场,结果卡在ICP备案这一步,直接懵圈。…

作者头像 李华
网站建设 2026/9/15 16:48:39

Archify社区指南:如何提交你的架构图到Showcase画廊

Archify社区指南&#xff1a;如何提交你的架构图到Showcase画廊 【免费下载链接】archify Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export. 项目地址: htt…

作者头像 李华