当前位置: 首页 > news >正文

【Ambari监控】监控数据接口查询方法

附录:完整内容和源代码下载请参照

https://doc.janettr.com/

在这里插入图片描述

一、接口介绍

/ws/v1/timeline/metrics 是 Ambari-Metrics Collector 中最常用的接口,用于查询监控指标的时序数据
通过该接口,用户可以灵活地按 指标名、应用 ID、主机名、时间窗口 等条件,获取所需的指标序列。

接口特点:

  • 支持 多值查询metricNameshostname 可一次传多个值;
  • 所有参数均为可选(源码注释明确说明),但如果不传 metricNames,查询结果通常无意义;
  • 提供 TopN、BottomN、聚合函数 等高级用法;
  • 返回 JSON 结构,易于和 Grafana、前端看板集成。

二、参数说明

参数是否必填示例值说明
metricNames必须cpu_user指标名,支持多个,逗号分隔
appIdHOST / ams-hbase指标所属的应用或子系统
instanceIdinstance-1实例 ID(可区分不同进程/角色)
hostnamedev1 / dev1,dev2主机过滤条件
startTime必须1757640582000查询起始时间(epoch 毫秒)
endTime必须1757662182000查询结束时间(epoch 毫秒)
precisionminutes时间粒度:seconds / minutes / hours
limit10单序列返回点数上限
groupedtrue是否分组返回,缺省为 true
topN5Top-N 个数
topNFunctionmaxTop-N 函数:max/min/avg/sum
isBottomNtrue是否取 Bottom-N
seriesAggregateFunctionavg跨序列聚合函数:avg/sum/min/max

使用建议

  • 时间戳必须是毫秒,误传为秒将可能导致无数据,且两个参数都必须输入;
  • 大窗口查询建议指定 precision,减少结果点数;
  • TopN 与 BottomN 参数互斥,注意区分使用;
  • 实际调用时,推荐至少传入:metricNames + startTime + endTime

三、最小请求示例

下面我们通过一个最小可运行的 demo 来演示 /metrics 接口的使用。

3.1 输入参数

我们选择查询主机的 CPU 用户态使用率

  • metricNames=cpu_user
  • appId=HOST
  • startTime=1757640600000
  • endTime=1757640900000
  • limit=5

3.2 执行请求

通过 cURL 命令行发起请求:


curl "http://dev1:6188/ws/v1/timeline/metrics?\
metricNames=cpu_user \
&appId=HOST \
&startTime=1757640600000 \
&endTime=1757640900000 \
&limit=5"

3.3 返回结果

接口返回的 JSON 数据如下(节选):

{"metrics": [{"metricname": "cpu_user","appid": "HOST","hostname": "dev1","timestamp": 0,"starttime": 1757640600000,"metrics": {"1757640600000": 0.15,"1757640630000": 0.18,"1757640660000": 0.21,"1757640690000": 0.25,"1757640720000": 0.27},"metadata": {}}]
}

3.4 结果解析

  • metricname:返回的指标名,与请求参数一致;
  • appid:指标所属的应用 ID;
  • metrics:核心数据,时间戳 → 值 的映射;
  • starttime:序列起点时间;
  • metadata:扩展信息(若 Collector 配置了单位/来源则写入)。

四、配合 APIFOX 可视化调试

通过 APIFOX
导入 openapi.json 文件,即可方便调试。

操作流程:

  1. 打开 /ws/v1/timeline/metrics
  2. 填写 metricNamesappId、时间窗口;
  3. 点击运行,得到 JSON;
  4. 前端渲染生成曲线图。

调试截图

image-20250912160351577

如图所示:

  • 输入参数为 metricNames、appId、时间范围
  • 返回结果按时间戳对应数值;
  • 渲染后即可得到时序曲线。

文章转载自:

http://cJtpKyW7.jhzct.cn
http://EIHVrCor.jhzct.cn
http://NaWqOXOb.jhzct.cn
http://OZv6SI7Z.jhzct.cn
http://Nwnru43q.jhzct.cn
http://wZoXOkUF.jhzct.cn
http://b3zht3qT.jhzct.cn
http://n79hxwPn.jhzct.cn
http://M3ovw0a3.jhzct.cn
http://MSiRb6qo.jhzct.cn
http://njZ1N8Gx.jhzct.cn
http://NmmaHJBQ.jhzct.cn
http://uBg7ScXN.jhzct.cn
http://GV8CPJre.jhzct.cn
http://36s3iHbv.jhzct.cn
http://PieZPKmk.jhzct.cn
http://sZbLf0A8.jhzct.cn
http://Bq8SAnDs.jhzct.cn
http://ChoAP6dZ.jhzct.cn
http://7iIGKEqE.jhzct.cn
http://OqyXqEmE.jhzct.cn
http://cjjJJ167.jhzct.cn
http://P2yq7RT3.jhzct.cn
http://YU5q4GdX.jhzct.cn
http://ZoPQMnkK.jhzct.cn
http://oTGtJcKI.jhzct.cn
http://CvLq6pIv.jhzct.cn
http://O2bGAR97.jhzct.cn
http://LYDMI5s9.jhzct.cn
http://Ag12vXyv.jhzct.cn
http://www.dtcms.com/a/382961.html

相关文章:

  • shell 脚本:正则表达式
  • 可调精密稳压器的原理
  • Altium Designer(AD)PCB打孔
  • React 状态管理
  • [Spring Cloud][5] 注册中心详解,CAP 理论,什么是 Eureka
  • 返利app的跨域问题解决方案:CORS与反向代理在前后端分离架构中的应用
  • C++算法题—图的邻接矩阵输入形式(I\O)
  • 主动性算法-如何让机器拥有嗅觉?
  • Knockout.js Google Closure Compiler 工具模块详解
  • 从关键词匹配到语义理解:6大Embedding技术如何重塑企业搜索
  • 【面试实录01】
  • Docker 容器化部署核心实战——镜像仓库管理与容器多参数运行详解
  • Jenkins的安装与简单使用
  • Step-by-Step:用C语言构建一个带精准错误提示的括号匹配器
  • 【LeetCode - 每日1题】元音拼写检查器
  • KingbaseES读写分离集群架构解析
  • 教育领域大模型生成题目安全研究报告
  • .Net程序员就业现状以及学习路线图(七)
  • uniapp如何使用本身的字体图标
  • Uniapp崩溃监控体系构建:内存泄漏三维定位法(堆栈/资源/线程)
  • window显示驱动开发—显示适配器的子设备
  • 单变量单步时序预测 | TCN-BiGRU时间卷积神经网络结合双向门控循环单元
  • 项目实战——“微商城”前后台【005】之前台项目首页编写
  • 如何利用redis使用一个滑动窗口限流
  • Go与Python/PHP的比较
  • JVM 运行时数据区详解:程序计数器、虚拟机栈、堆内存、方法区与直接内存
  • MongoDB $type 操作符
  • 【靶场练习】--DVWA第一关Brute Force(暴力破解)全难度分析
  • ConcatenationShortcut
  • 设计模式(C++)详解—原型模式(3)