我正在使用metricbeats的http模块来监控jmx。我正在使用http模块而不是jolokia模块,因为此时它缺少通配符支持。文档中的示例配置如下。
- module: http
metricsets: ["json"]
period: 10s
hosts: ["localhost:80"]
namespace: "json_namespace"
path: "/jolokia/"
body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "count"}'
method: "POST"
这很好用,我可以获取数据到kibana。当我按如下方式配置它以调用多个路径时,我看到错误。
- module: http
metricsets: ["json"]
enabled: true
period: 10s
hosts: ["localhost:80"]
namespace: "metrics"
method: POST
paths:
- path: "/jolokia/"
body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "bytes-consumed-rate"}'
- path: "/jolokia/"
body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "commit-latency-avg"}'
这似乎不是正确的配置,我发现http事件已经失败。
2018/02/26 19:53:18.315740 metrics.go:39: INFO Non-zero metrics in the last 30s: beat.info.uptime.ms=30000 beat.memstats.gc_next=4767600 beat.memstats.memory_alloc=4016168 beat.memstats.memory_total=47474256 libbeat.config.module.running=3 libbeat.output.read.bytes=4186 libbeat.output.write.bytes=16907 libbeat.pipeline.clients=7 libbeat.pipeline.events.active=0 libbeat.pipeline.events.published=18 libbeat.pipeline.events.total=18 libbeat.pipeline.queue.acked=18 metricbeat.http.json.events=3 metricbeat.http.json.failures=3
有关如何设置http模块的文档:Example configuration
答案 0 :(得分:2)
我不得不查询我的REST API的多个URL,我可以通过让以下不同主机URL的多个“http”模块来实现这一点:
- module: http
metricsets: ["json"]
period: 3600s
hosts: ["http://localhost/Projects/method1/"]
namespace: "testmethods"
method: "GET"
enabled: true
- module: http
metricsets: ["json"]
period: 3600s
hosts: ["http://localhost/Projects/method2/"]
namespace: "testmethods"
method: "GET"
enabled: true
这使我实现了同一模块的多条路径
答案 1 :(得分:1)
http模块的 json 指标集不支持多个路径。
您在配置示例中找到的是http模块的服务器指标集。此度量标准不会查询URL。相反,它在指定端口上打开一个http服务器,并且可以在多个路径上接收输入,这些路径用于将数据分成不同的命名空间。