尧图精选

使用 aws-cli list-service-operations 查询 Application Signals 发现的服务操作与指标引用映射

🕒 发布时间:2026/9/14 7:01:05 📁 来源:尧图网络
使用 aws-cli list-service-operations 查询 Application Signals 发现的服务操作与指标引用映射【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文基于 aws-cli 仓库中awscli/examples/application-signals/list-service-operations.rst示例文档展开讲解 AWS CLI 中aws application-signals list-service-operations命令的完整用法如何指定时间窗口与关键属性来列出 Amazon CloudWatch Application Signals 已发现的服务操作如何解读返回的MetricReferences指标引用并结合仓库内的 API 模型与分页配置源码说明各参数的约束、默认值与分页机制。读完后你可以独立编写可复制运行的查询命令并理解其底层 API 行为。功能定位ListServiceOperations 做什么示例文档的核心目标原文档标题是返回被 Application Signals 发现的该服务操作列表。对应的 API 定义文档进一步说明Only the operations that were invoked during the specified time range are returned——即只有在你指定的时间范围内被实际调用过的操作才会被返回。从仓库中的 API 模型 service-2.json 可以确认该操作的底层行为HTTP 端点为POST /service-operations协议为rest-json签名版本 v4signingName为application-signals该操作标记为readonly: true是只读查询不改变任何资源状态可能抛出的异常为ValidationException参数不合法与ThrottlingException限流。操作Operation在 Application Signals 语境中指的是由某个服务执行、且被 Application Signals 发现的具体函数通常是上游依赖方调用的 API例如POST /api。该命令的价值在于把你监控的服务名翻译成一组可以在 CloudWatch 中直接消费的指标引用。完整示例 walkthrough示例文档给出的标准用法如下aws application-signals list-service-operations \ --start-time 1735017423 \ --end-time 1735103823 \ --key-attributes Environmentgeneric:default,Namepayforadoption,TypeService返回输出原文档完整示例未删减{ ServiceOperations: [{ Name: POST /api, MetricReferences: [{ Namespace: ApplicationSignals, MetricType: LATENCY, Dimensions: [{ Name: Environment, Value: generic:default }, { Name: Operation, Value: POST /api }, { Name: Service, Value: payforadoption }], MetricName: Latency }, { Namespace: ApplicationSignals, MetricType: FAULT, Dimensions: [{ Name: Environment, Value: generic:default }, { Name: Operation, Value: POST /api }, { Name: Service, Value: payforadoption }], MetricName: Fault }, { Namespace: ApplicationSignals, MetricType: ERROR, Dimensions: [{ Name: Environment, Value: generic:default }, { Name: Operation, Value: POST /api }, { Name: Service, Value: payforadoption }], MetricName: Error }] }], StartTime: 2024-12-24T05:00:0000:00, EndTime: 2024-12-25T06:00:0100:00 }参数说明与取值约束CLI 参数由 API 模型中的输入结构ListServiceOperationsInput自动生成结合 service-2.json 中的定义各参数含义与约束如下参数必填说明与约束--start-time是查询时间窗口起点。原始 HTTP 查询中以 epoch 秒表示如1735017423。请求的起始时间会被四舍五入到最近的一小时因此返回的StartTime可能与请求值不完全一致。--end-time是查询时间窗口终点同样会被四舍五入到最近的一小时。--key-attributes是字符串键值映射shorthand 形式KV,K2V2用于指定要查询哪个服务。必须包含Type、Name、Environment三个属性还可包含ResourceType仅当Type为Resource/AWS::Resource时使用和Identifier标识资源对象。映射大小限制为 1~4 个键值对。--max-results否单次返回的最大结果数。若省略默认值为 50取值范围为 1~100。--next-token否若上一次调用返回了该值将其传入以获取下一组服务操作。关于示例中三个键值的解读TypeService表示要查询的对象类型是服务Namepayforadoption服务名称Environmentgeneric:default对象所处的环境/宿主位置。注意示例中的时间参数17350174232024-12-24T05:37:03Z与17351038232024-12-25T06:37:03Z并非整点而输出的StartTime为2024-12-24T05:00:0000:00、EndTime为2024-12-25T06:00:0100:00——这正是模型文档中rounded to the nearest hour按小时取整行为的直观体现输出字段显示的是 Application Signals 实际采用的时间而非请求原值。输出结构逐字段解读ListServiceOperationsOutput结构包含四个字段ServiceOperations必填数组每个元素是一个ServiceOperation结构描述该服务的一个被发现的操作数组长度上限为 100StartTime/EndTime必填本次结果实际对应的时间窗口取整后的值CLI 以 ISO 8601 格式渲染NextToken可选存在该字段且非空时说明结果还有后续页。每个ServiceOperation包含两个必填字段Name被发现的操作名示例中为POST /api长度 1~255 字符MetricReferences该操作关联的一组 CloudWatch 指标引用。MetricReference是在 CloudWatch 中定位这条操作指标的完整坐标包含Namespace指标命名空间Application Signals 固定使用ApplicationSignals长度 1~255且不能以冒号结尾MetricType指标类型用于在 CloudWatch 控制台展示合适的统计量。示例中展示了LATENCY、FAULT、ERROR三类字符集限制为字母、数字、空格、短横线[A-Za-z0-9 -]MetricName指标名Latency、Fault、Error长度 1~255Dimensions维数组最多 30 个由Name/Value键值对构成。维度是指标唯一标识的组成部分——示例中每个操作的三条指标分别由Environment、Operation、Service三个维度区分。维度名必须为 ASCII 且不能以冒号开头维度值最长 1024 字符AccountId可选AWS 账户 ID模型中约束为 12 位数字[0-9]{12}。可以推断拿到MetricReferences后你就拥有了调用 CloudWatch 指标 API 所需的完整命名空间、指标名与维度组合从而把应用拓扑发现与指标查询两个环节衔接起来。分页机制与 API 模型源码佐证aws-cli 的分页配置定义在 paginators-1.json 中ListServiceOperations的条目为ListServiceOperations: { input_token: NextToken, output_token: NextToken, limit_key: MaxResults, result_key: ServiceOperations }这意味着你可以借助 CLI 内建的分页器自动遍历所有页而无需手动传递 tokenaws application-signals list-service-operations \ --start-time 1735017423 \ --end-time 1735103823 \ --key-attributes Environmentgeneric:default,Namepayforadoption,TypeService \ --pager此外paginators-1.sdk-extras.json 将ListServiceOperations的StartTime与EndTime声明为non_aggregate_keys。从该配置结构看这是分页聚合结果时的字段保留声明在使用--output text之类的聚合输出场景下时间窗口字段会原样透传而不是被各页重复堆叠。当结果超过单页上限默认 50、上限 100时输出中的NextToken即为继续翻页的凭据将其传给下一次调用的--next-token即可获取下一页。示例文档如何注入 aws-cli 帮助输出值得一提的是这份示例文档在 aws-cli 中的落地机制。addexamples.py 实现的add_examples函数会监听doc-examples.*.*文档事件注册点在 handlers.py 第 145 行附近event_handlers.register(doc-examples.*.*, add_examples)当你在终端执行aws application-signals list-service-operations help时CLI 会在examples/服务名/操作名.rst路径即本文件的 list-service-operations.rst查找对应的 ReST 片段并作为 Examples 章节渲染进帮助输出。也就是说本文讲解的命令示例正是你在aws help中能看到内容的来源同时文档还附带了一条使用前提提示执行示例前需先安装并配置好 AWS CLI凭据、区域等。实战注意事项与相关命令结合模型约束与文档示例实践中有几点值得注意时间窗口必须覆盖操作实际被调用的时段。API 文档明确只返回指定时间范围内被调用的操作若窗口内该服务没有任何调用ServiceOperations将返回空数组时间是 epoch 秒且按小时取整。请求值与返回值可能有出入做自动化对比时应以返回的StartTime/EndTime为准--key-attributes的三个核心键不可省略。Type、Name、Environment是查询的必填坐标缺失会触发ValidationException注意限流。ThrottlingException是模型声明的可抛出异常批量扫描多个服务时建议控制并发并配合指数退避组合使用同目录的其他示例构建完整拓扑视图先用 list-services.rst 列出服务、get-service.rst 查看单个服务详情再配合 list-service-dependencies.rst列出服务的下游依赖返回结构同样携带MetricReferences与list-service-dependents列出上游调用方——它们与list-service-operations共享相同的时间参数约定epoch 秒、按小时取整与NextToken分页模式。小结aws application-signals list-service-operations是 Application Signals 服务发现链路中的只读查询命令以--start-time/--end-timeepoch 秒、按小时取整框定时间窗口以--key-attributes必含Type、Name、Environment定位服务返回窗口内被调用过的操作列表每个操作附带NamespaceMetricNameDimensions完整的 CloudWatch 指标引用Latency / Fault / Error 三类默认每页 50 条、上限 100 条并可通过--next-token或--pager分页遍历。这些行为均可在仓库的 API 模型 service-2.json 与分页配置 paginators-1.json 中得到逐项印证。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →