Несколько путей в модуле 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-сервер на указанном порту и может получать входные данные по нескольким путям, которые используются для разделения данных в разных пространствах имен.

Другие вопросы по тегам