Ambari-Metrics插件失效原因
# 背景
在 Ambari 2.7.x 中,Grafana 官方提供了 ambari-metrics-datasource
插件,可直接调用 AMS (Ambari-Metrics Service) 的
REST API 展示 CPU、内存、HDFS、YARN 等监控指标。
然而,随着 Grafana 8.x 与 Ambari 2.8+ / 3.0.0 的升级,该插件逐渐失效。
# 报错案例
在 Grafana 中启用数据源时,日志常出现如下报错:
[root@hadoop1 ambari-metrics-grafana]# tail -f grafana.out
logger=context userId=0 orgId=1 uname= t=2025-08-25T12:31:51.252289181+08:00
level=error
msg="Could not find plugin definition for data source"
datasource_type=ambari-metrics
logger=context userId=0 orgId=1 uname= t=2025-08-25T12:31:51.255251423+08:00
level=error
msg="Request error"
error="Context.HTML:write tcp 192.168.3.1:3000->192.168.3.1:60704: write: broken pipe"
stack="
/drone/src/pkg/web/context.go:102 (0x102305c)
/drone/src/pkg/api/index.go:171 (0x22be5f0)
/drone/src/pkg/api/response/web_hack.go:40 (0x119a035)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/web/macaron.go:135 (0x10241f4)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/web/macaron.go:141 (0x102429b)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/csp.go:22 (0x1889852)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/csrf/csrf.go:64 (0x1fdf825)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/recovery.go:171 (0x188d181)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/logger.go:42 (0x188ab3d)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/request_metrics.go:58 (0x188df89)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/middleware/request_tracing.go:88 (0x188f6da)
/usr/local/go/src/net/http/server.go:2109 (0x71c16e)
/drone/src/pkg/web/context.go:49 (0x1022b7d)
/drone/src/pkg/web/router.go:155 (0x102632d)
/drone/src/pkg/web/router.go:211 (0x1026f95)
/drone/src/pkg/web/macaron.go:167 (0x1024710)
/usr/local/go/src/net/http/server.go:2947 (0x71f56b)
/usr/local/go/src/net/http/server.go:1991 (0x71ac46)
/usr/local/go/src/runtime/asm_amd64.s:1594 (0x478300)
"
logger=context userId=1 orgId=1 uname=admin t=2025-08-25T12:32:01.030512708+08:00
level=info
msg="Request Completed"
method=GET
path=/api/plugins/ambari-metrics/settings
status=404
remote_addr=192.168.3.88
time_ms=0
duration=427.858µs
size=64
referer=http://192.168.3.1:3000/datasources/edit/VKBt6IXHk
handler=/api/plugins/:pluginId/settings
logger=context userId=1 orgId=1 uname=admin t=2025-08-25T12:32:46.982093167+08:00
level=error
msg="Could not find plugin definition for data source"
datasource_type=ambari-metrics
logger=context userId=1 orgId=1 uname=admin t=2025-08-25T12:32:46.985048756+08:00
level=info
msg="Request Completed"
method=GET
path=//api/plugins/ambari-metrics/settings
status=404
remote_addr=192.168.3.88
time_ms=6
duration=6.384562ms
size=47008
referer=
handler=notfound
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 插件失效原因分析
综合日志与源码比对,主要原因包括:
插件定义缺失 Grafana 8+ 要求插件通过
plugin.json
明确声明 Datasource 类型,而旧版ambari-metrics
插件没有更新。前端框架不兼容 Grafana 自 7.x 起全面转向 React 插件体系,Ambari 插件仍停留在 AngularJS,无法被识别。
API 路径差异 Ambari 2.8+ / 3.0.0 中,AMS REST API 路径与旧版插件预设的模板不一致,导致查询失败。
插件已下架 Grafana 官方插件库不再提供
ambari-metrics
,无法通过grafana-cli
安装。
# 本专题说明
目前从 官方仓库拉取的代码,打包编译并部署后,依然无法解决该类问题。 因此本专题将转向采用 Infinity 插件 来处理 Ambari-Metrics 的监控集成。
提示
如果你在实际环境中验证有不同结论,欢迎联系作者纠正本文。
- 01
- [/metrics/metadata] — 元数据查询和使用 GET09-12
- 02
- [/metrics/metadata] — 请求完整链路解读09-12
- 03
- [/metrics/metadata] — 缓存数据装载 Phoenix09-12