news 2026/9/15 11:18:27

使用 AWS CLI 查询 CloudWatch Metric Stream 配置:get-metric-stream 命令实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 AWS CLI 查询 CloudWatch Metric Stream 配置:get-metric-stream 命令实战

使用 AWS CLI 查询 CloudWatch Metric Stream 配置:get-metric-stream 命令实战

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

aws cloudwatch get-metric-stream是 AWS CLI 中用于获取单个指标流(Metric Stream)完整配置信息的核心命令,适用于审计、排障和自动化脚本中读取指标流的当前状态。本指南以仓库中的官方示例 get-metric-stream.rst 为骨架,结合 service-2.json 中定义的 API 模型,逐字段解读命令的输入参数与输出结构,并串联put-metric-streamlist-metric-streamsstart/stop-metric-streamsdelete-metric-stream等配套命令,帮助你完整掌握 CloudWatch Metric Stream 生命周期管理。

什么是 CloudWatch Metric Stream

CloudWatch Metric Stream 是一种持续、近乎实时地将 CloudWatch 指标数据传输到目标端点的机制。它会把指标数据推送到 Amazon Kinesis Data Firehose 投递流,再由 Firehose 将数据写入 S3、OpenSearch 等目的地,供下游监控与分析系统消费。与通过GetMetricData轮询拉取不同,指标流采用"推"模式,指标一旦产生即可被流式转发。

每个指标流在创建时都需要绑定:

  • FirehoseArn:接收指标数据的 Kinesis Data Firehose 投递流 ARN;
  • RoleArn:CloudWatch 用于向 Firehose 写入数据所扮演的 IAM 角色 ARN;
  • OutputFormat:输出格式,支持jsonopentelemetry0.7opentelemetry1.0
  • 可选的 IncludeFilters / ExcludeFilters:按命名空间和指标名精确控制哪些指标被流转发。

在 AWS CLI 仓库中,指标流相关的全部命令示例集中在 awscli/examples/cloudwatch/ 目录,get-metric-stream正是其中负责"读配置"的一环。

get-metric-stream 命令用法

基本语法与参数

按官方示例 get-metric-stream.rst,查询指标流信息的命令如下:

aws cloudwatch get-metric-stream \ --name QuickFull-GuaFbs

该命令只有一个必需参数

参数必填说明
--name要查询的指标流名称,字符串长度为 1 至 255 个字符

在底层 API 模型中,GetMetricStreamInput结构(见 service-2.json)将Name标记为唯一required成员,形状为MetricStreamName(最大长度 255、最小长度 1)。也就是说,CLI 侧除--name外没有任何可选参数,这是一个轻量、幂等的只读查询操作。

完整输出示例

执行上述命令后,返回的 JSON 输出如下(取自仓库官方示例):

{ "Arn": "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/QuickFull-GuaFbs", "Name": "QuickFull-GuaFbs", "FirehoseArn": "arn:aws:firehose:us-east-1:123456789012:deliverystream/MetricStreams-QuickFull-GuaFbs-WnySbECG", "RoleArn": "arn:aws:iam::123456789012:role/service-role/MetricStreams-FirehosePutRecords-JN10W9B3", "State": "running", "CreationDate": "2024-10-11T18:48:59.187000+00:00", "LastUpdateDate": "2024-10-11T18:48:59.187000+00:00", "OutputFormat": "json", "IncludeLinkedAccountsMetrics": false }

输出字段逐一解读

GetMetricStreamOutput结构在 service-2.json 中定义了完整字段,结合示例输出可做如下解读:

字段类型含义
Arn字符串指标流的 Amazon 资源名称(ARN),形如arn:aws:cloudwatch:<region>:<account>:metric-stream/<name>
Name字符串指标流名称,即查询时传入的--name
FirehoseArn字符串接收该指标流数据的 Kinesis Data Firehose 投递流 ARN
RoleArn字符串CloudWatch 向 Firehose 写入数据所使用的 IAM 角色 ARN
State字符串指标流状态,可能值为running(运行中)与stopped(已停止)
CreationDate时间戳指标流的创建时间
LastUpdateDate时间戳指标流配置最近一次更新的时间
OutputFormat字符串输出格式,有效值为jsonopentelemetry0.7opentelemetry1.0
IncludeLinkedAccountsMetrics布尔若为true且该指标流位于监控账户(monitoring account),则流中包含监控账户所关联源账户的指标
IncludeFilters数组存在时表示这些命名空间/指标被流式传输(白名单语义)
ExcludeFilters数组存在时表示仅这些命名空间/指标不被流式传输,其余账户内指标全部转发(黑名单语义)
StatisticsConfigurations数组描述哪些指标额外携带附加统计量(additional statistics)的配置

其中OutputFormat的枚举值在 service-2.json 的MetricStreamOutputFormat形状中定义,共三个合法取值:jsonopentelemetry0.7opentelemetry1.0(后两者对应 OpenTelemetry 协议的不同版本,便于直接对接 OTLP 生态的采集器与分析平台)。

输出中未展示字段的触发条件

官方示例输出之所以没有IncludeFiltersExcludeFiltersStatisticsConfigurations字段,是因为该示例指标流创建时未使用过滤器和附加统计配置(见 put-metric-stream.rst 中仅设置--name--firehose-arn--role-arn--output-format json--no-include-linked-accounts-metrics)。如果指标流配置了这些项,get-metric-stream会如实返回它们。

以过滤器为例,MetricStreamFilter结构(见 service-2.json)包含两个成员:

  • Namespace:指标命名空间,仅可含 ASCII 可打印字符(32 至 126),且至少包含一个非空白字符;
  • MetricNames:要包含或排除的具体指标名列表;省略时表示整个命名空间全部包含/排除;每个指标名同样只允许 ASCII 可打印字符且含至少一个非空白字符。

同时模型明确指出:一个指标流的过滤器总计最多允许 1000 个名称(命名空间名与指标名之和),例如可以是 10 个命名空间过滤器各带 99 个指标,或 20 个命名空间过滤器各带 49 个指标。这一配额在通过get-metric-stream核对配置规模时值得注意。

结合输出字段判断指标流健康状态

get-metric-stream最典型的运维用途就是确认指标流是否在正常运行

  1. 检查Staterunning表示指标流正在流转数据;stopped表示已被停止(可通过start-metric-streams恢复)。
  2. 核对FirehoseArnRoleArn:确认投递流和 IAM 角色是否仍指向预期资源;若 Firehose 或角色被误删、权限被修改,即使Staterunning,数据投递也可能失败。
  3. 比对CreationDateLastUpdateDate:两者不一致说明配置曾发生过变更,可用于追溯"何时被改过"。
  4. 确认OutputFormat:下游消费端(如解析 json 或 OpenTelemetry 格式的工具)必须与流的输出格式匹配。

与 Metric Stream 生命周期命令的配合使用

get-metric-stream是查询单条配置的入口,实际工作中通常与仓库中其他示例命令配合完成完整生命周期管理:

阶段命令仓库示例要点
创建put-metric-streamput-metric-stream.rst指定--name--firehose-arn--role-arn--output-format,返回新流的Arn
列表list-metric-streamslist-metric-streams.rst列出账户内全部指标流的概要条目(Arn、Name、State、OutputFormat 等)
查询单条get-metric-streamget-metric-stream.rst返回指定指标流的完整配置细节,本篇文章主题
启动start-metric-streamsstart-metric-streams.rst通过--names(可传多个)启动已停止的指标流,无输出
停止stop-metric-streamsstop-metric-streams.rst通过--names停止指标流,无输出
删除delete-metric-streamdelete-metric-stream.rst通过--name删除指定指标流,无输出

一个典型的自动化巡检脚本流程是:先用list-metric-streams拿到全部指标流名称,再对每条调用get-metric-stream检查State是否全部为running;若发现stopped的流且确认应恢复,则用start-metric-streams重新拉起。这样既覆盖了全量,又保留了单条配置的完整细节。

常见错误与排障思路

GetMetricStream操作在 service-2.json 中声明了五类可能的错误响应,据此可快速定位问题:

  • ResourceNotFoundException:指定的指标流名称不存在(可能已被delete-metric-stream删除,或名称拼写有误、所在区域不对)。核对--name与实际资源,并可用list-metric-streams确认现有流的准确名称。
  • InvalidParameterValueException--name参数取值非法(例如超过 255 字符或为空)。回顾上文约束:名称长度 1 至 255。
  • MissingRequiredParameterException:遗漏了必填的Name参数。
  • InvalidParameterCombinationException:参数组合不合法。由于get-metric-stream仅有单一参数,此错误通常在底层调用异常时出现。
  • InternalServiceFault:服务端内部错误,属临时性故障,可稍后重试。

权限方面,调用该命令需要具备相应的cloudwatch:GetMetricStream权限;若 IAM 策略缺失,会收到权限拒绝错误,此时应检查执行者身份(用户/角色)的策略配置。

从源码模型看 CLI 与 API 的对应关系

作为 AWS CLI 的官方数据模型,GetMetricStream操作在 service-2.json 中定义为一个POST到根路径的查询协议操作,输入形状为GetMetricStreamInput、输出形状为GetMetricStreamOutput。CLI 层aws cloudwatch get-metric-stream命令完全由该模型驱动生成:--name直接映射到GetMetricStreamInput.Name,返回的 JSON 字段则对应GetMetricStreamOutput中的各成员。这意味着:

  • 文档中出现的每个字段名都可以在该模型的GetMetricStreamOutput定义处找到精确的类型与描述(如State的可能值为running/stopped);
  • 当你需要以编程方式(如 Python boto3)实现等价查询时,只需调用cloudwatch.get_metric_stream(Name="...")即可获得与 CLI 输出结构一致的结果;
  • 该模型文件是仓库中"单一事实来源",任何字段语义的疑问都应以此为准。

小结

aws cloudwatch get-metric-stream是查看单个 CloudWatch 指标流配置最直接的工具:一条命令、一个--name参数,即可拿到流的 ARN、Firehose 目标、IAM 角色、运行状态、输出格式、过滤器与附加统计等全部配置。配合put-metric-streamlist-metric-streamsstart/stop-metric-streamsdelete-metric-stream,即可完整覆盖指标流"创建—查询—启停—删除"的整个生命周期。在 service-2.json 中核对字段定义,可以确保你对每个返回值的语义与约束都理解准确。

【免费下载链接】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 11:18:23

Python TypeScript 类型系统 实战:安装、配置与生产部署验收

Python TypeScript 类型系统 实战&#xff1a;安装、配置与生产部署验收工具地址&#xff1a;https://www.speedce.com 社区论坛&#xff1a;https://bbs.speedce.com 联系&#xff1a;speedceadsgmail.com写在前面 围绕「TypeScript 类型系统」&#xff0c;本文提供可落地的技…

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

抖音无水印下载上手:300 条作品主页一次跑完

抖音无水印下载上手&#xff1a;300 条作品主页一次跑完 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…

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

深入理解 TinaCMS v4 的插件清单:从 definePlugin 到字段注册表

深入理解 TinaCMS v4 的插件清单&#xff1a;从 definePlugin 到字段注册表 【免费下载链接】tinacms TinaCMS is the leading open-source headless CMS that supports Markdown and Visual Editing. Your content is stored in your own GitHub repo &#x1f999; ❤️ 项…

作者头像 李华
网站建设 2026/9/15 11:14:14

手机上怎么做网站:3个实操坑与选型指南

手机上怎么做网站:3个实操坑与选型指南 改个需求建站公司拖一周,这种憋屈谁没经历过?很多老板以为在手机上搞个网站很简单,打开后台改改字就行,结果发现根本改不动,或者改完手机打开全是乱码。这时候才意识到,当初 怎么选 建站方案,直接决定了后期是省心还是受罪。…

作者头像 李华