Несколько путей в модуле http - metricbeats
Я использую http-модуль metricbeats для мониторинга 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"
Это отлично работает, и я могу получить данные кибана. Я вижу ошибки, когда я настраиваю его следующим образом для вызова нескольких путей.
- 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: пример конфигурации
2 ответа
Мне пришлось запросить несколько URL-адресов моего REST API, и я мог добиться этого, имея несколько модулей "http" с различными URL-адресами хоста, как показано ниже:
- 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
Это заставило меня достичь нескольких путей для одного и того же модуля
Несколько путей не поддерживаются jric metricset модуля http.
То, что вы нашли в примере конфигурации, относится к метрике сервера http-модуля. Этот метрический набор не запрашивает URL-адреса. Вместо этого он открывает http-сервер на указанном порту и может получать входные данные по нескольким путям, которые используются для разделения данных в разных пространствах имен.