2

我成功部署了 helm chart prometheus operatorkube-prometheuskafka(尝试了图像 danielqsj/kafka_exporterv1.0.1v1.2.0)。

大部分使用默认值安装,启用 rbac。

我可以在普罗米修斯的 Kafka 目标列表中看到 3up个节点,但是当进入 Grafana 时,我可以看到任何带有kafka 概述的 kafka 指标

我错过了什么或者我可以检查什么来解决这个问题?

我可以看到指标以 , 开头java_kafka_但没有指标,而且jvm_只有少数jmx_指标。

在此处输入图像描述

我发现有人报告了类似的问题(https://groups.google.com/forum/#!searchin/prometheus-users/jvm_%7Csort:date/prometheus-users/OtYM7qGMbvA/dZ4vIfWLAgAJ),所以我部署了旧版本的 jmx出口商从 0.6 到 0.9,仍然没有jvm_指标。

有什么我错过的吗?

环境:

kuberentes:AWS EKS(kubernetes 版本为 1.10.x)

公共 grafana 仪表板:kafka 概述

4

2 回答 2

1

jmx-exporter刚刚意识到自述文件中提到的所有者:

这个导出器是intended to be run as a Java Agent,暴露一个 HTTP 服务器并提供本地 JVM 的指标。它还可以作为独立的 HTTP 服务器运行并抓取远程 JMX 目标,but this has various disadvantages例如更难配置和无法公开进程指标(例如,内存和 CPU 使用率)。因此强烈建议将导出器作为 Java 代理运行。

直到我看到这条评论才真正理解这是什么意思:

https://github.com/prometheus/jmx_exporter/issues/111#issuecomment-341983150

@brian-brazil 您能否在自述文件中添加一些提示,即 jvm_* 指标仅在使用 Java 代理时公开?在仅使用 HTTP 服务器版本之后,我花了一两个小时进行故障排除和搜索旧问题来解决这个问题。谢谢!

所以必须运行 jmx-exporterjava agent才能获得jvm_指标。jmx_prometheus_httpserver不支持,但它是 kafka helm chart 中的默认设置。

https://github.com/kubernetes/charts/blob/master/incubator/kafka/templates/statefulset.yaml#L82

command:
- sh
- -exc
- |
  trap "exit 0" TERM; \
  while :; do \
  java \
  -XX:+UnlockExperimentalVMOptions \
  -XX:+UseCGroupMemoryLimitForHeap \
  -XX:MaxRAMFraction=1 \
  -XshowSettings:vm \
  -jar \
  jmx_prometheus_httpserver.jar \              # <<< here
  {{ .Values.prometheus.jmx.port | quote }} \
  /etc/jmx-kafka/jmx-kafka-prometheus.yml & \
  wait $! || sleep 3; \
  done
于 2018-07-17T23:45:56.000 回答
0

您必须打开 jmx 和 exporter 才能提供 kafka helm 图表--set prometheus.jmx.enabled=true,prometheus.kafka.enabled=true。这些值是false默认的。

于 2018-07-17T16:30:54.627 回答