标签: jmx-exporter

Prometheus jmx 导出器属性和项目的模式匹配

我正在尝试使用 jmx_exporter java 代理(https://github.com/prometheus/jmx_exporter)进行模式匹配和命名 prometheus 指标。

关于在处理CompositeType.

例如,我已经达到了以这种方式进行模式化的地步:

rules:
  - pattern: "java.lang<type=Memory><>HeapMemoryUsage"
    name: jmx_jvm_memory_HeapMemoryUsed
Run Code Online (Sandbox Code Playgroud)

但是如果你在 VisualVM 中查看HeapMemoryUsed属性。您还可以在以下内容Attribute Description中看到:openType

javax.management.openmbean.CompositeType(
    name=java.lang.management.MemoryUsage,
    items=(
            (itemName=committed,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),
            (itemName=init,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),
            (itemName=max,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),
            (itemName=used,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long))
        )
    )
Run Code Online (Sandbox Code Playgroud)

我希望能够根据这些项目来命名指标。例如,我想要一个指标,例如:

  • jmx_jvm_memory_HeapMemoryUsed_used
  • jmx_jvm_memory_HeapMemoryUsed_max

ETC...

谢谢!

jmx mbeans mbeanexporter prometheus jmx-exporter

6
推荐指数
1
解决办法
6626
查看次数

Spark on Yarn - 普罗米修斯发现

我正在尝试将 Spark 与 Prometheus 集成。我们有 Spark 2 和 Spark 3。对于 Spark 2,我知道我可以运行jmx_exporter。Spark 3 有一个新的内置 PrometheusServlet,非常棒。我们使用 YARN 在本地运行 Spark,而不是 k8s。

我的问题是如何动态发现普罗米修斯抓取目标。据我了解,没有静态的单一中央 Spark 服务器可以指向,而是每个应用程序都被打包到一个纱线容器中并具有自己的指标。除非有办法聚合这些指标(例如在 Spark 历史服务器中)或者为每个作业都有一个静态的可预测地址?

当我提交一个火花流长时间运行的应用程序时,我希望它的指标能够立即显示在 Prometheus 中。我知道新的 PrometheusServlet 可以使用注释自动发现 k8s,我想为纱线实现类似的功能。

到目前为止我发现了什么:

  • 我可以让 prometheus scrape Pushgateway,并在运行 Spark-Submit 时让我的应用程序向那里发送指标。我找到了一个可以做到这一点的定制水槽。然而pushgateway引入了它自己的问题,所以我们希望避免它。
  • 使用 Prometheus文件服务发现机制在其中添加目标。但是,如何自动执行此操作,而无需每次提交新作业时手动编辑 json 文件?我发现 prometheus 没有用于添加目标的 API,并且当我运行 Spark-submit 时编写一个可以远程更改 json 文件的作业感觉有点 hacky。

欢迎任何关于优雅解决方案的建议,谢谢!

hadoop-yarn apache-spark prometheus jmx-exporter prometheus-pushgateway

6
推荐指数
0
解决办法
886
查看次数

kafka 和 JMX 导出器

我无法使用 JMX 导出器公开 kafka 指标。您可以查看我的步骤并在需要的地方纠正我吗?\n我正在按照此处的步骤使用 JMX 导出器启用 kafka。

\n\n

以下是我遵循的分步说明

\n\n
#get kafka\nwget kafka_2.11-2.0.0\n\n# Download Prometheus JMX exporter:\nsudo wget -P /opt/kafka/prometheus/ https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.0/jmx_prometheus_javaagent-0.3.0.jar\nsudo wget -P /opt/kafka/prometheus/ https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-0-8-2.yml\n\n#Edit Prometheus JMX exporter config file; and append following lines \necho  \xe2\x80\x9c- pattern : kafka.producer<type=producer-metrics, client-id=(.+)><>(.+):\\w* name: kafka_producer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\necho  \xe2\x80\x9c\xe2\x80\x94 pattern : kafka.consumer<type=consumer-metrics, client-id=(.+)><>(.+):\\w* name: kafka_consumer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\necho  \xe2\x80\x9c\xe2\x80\x94 pattern : kafka.consumer<type=consumer-fetch-manager-metrics, client-id=(.+)><>(.+):\\w* name: kafka_consumer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\n\n\n#start zookeeper in terminal 0\n/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties\n\n\n#start kafka broker in terminal 1\nKAFKA_HEAP_OPTS=\xe2\x80\x99\xe2\x80\x9d-Xmx1000M -Xms1000M\xe2\x80\x9d\xe2\x80\x99 \nKAFKA_OPTS=\xe2\x80\x9d-javaagent:/opt/kafka/prometheus/jmx_prometheus_javaagent-0.3.0.jar=7071:/opt/kafka/prometheus/kafka-0\xe2\x80\x938\xe2\x80\x932.yml\xe2\x80\x9d \nJMX_PORT=7071\n/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties  \n\n\n#start …
Run Code Online (Sandbox Code Playgroud)

bash apache-kafka prometheus jmx-exporter

3
推荐指数
1
解决办法
1万
查看次数

Prometheus 如何抓取 Kafka 主题?

我是一名网络专家,正在尝试构建我的第一个 Kafka --> Prometheus --> Grafana 管道。我的 Kafka 经纪人有一个由外部制作人填充的主题。那太棒了。但是我不知道如何配置我的 Prometheus 服务器以从该主题中作为消费者抓取数据。

我还应该说我的 Kafka 节点在我的主机 Ubuntu 机器上运行(不在 Docker 容器中)。当我运行 Kafka 时,我也在运行一个 JMX 导出器的实例。以下是我在 Ubuntu 命令行上启动 Kafka 的方法:

KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/me/kafka_2.11-2.1.1/jmx_prometheus_javaagent-0.6.jar=7071:/home/Me/kafka_2.11-2.1.1/kafka-0-8-2.yml" \
  ./bin/kafka-server-start.sh config/server.properties &
Run Code Online (Sandbox Code Playgroud)

好的。我的 Prometheus(也是一个主机进程,不是 Docker 容器版本)可以成功地从我的 Kafka 中提取很多指标。所以我只需要弄清楚如何让 Prometheus 读取我的主题中的消息。我想知道这些消息是否已经可见?我的主题称为“vflow.sflow”,当我查看 Kafka (TCP 7071) 上可用的“可抓取”指标时,我确实看到了这些指标:

From http://localhost:7071/metrics:

kafka_cluster_partition_replicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_cluster_partition_insyncreplicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_log_logendoffset{partition="0",topic="vflow.sflow",} 1.5357405E7
kafka_cluster_partition_laststableoffsetlag{partition="0",topic="vflow.sflow",} 0.0
kafka_log_numlogsegments{partition="0",topic="vflow.sflow",} 11.0
kafka_cluster_partition_underminisr{partition="0",topic="vflow.sflow",} 0.0
kafka_cluster_partition_underreplicated{partition="0",topic="vflow.sflow",} 0.0
kafka_log_size{partition="0",topic="vflow.sflow",} 1.147821017E10
kafka_log_logstartoffset{partition="0",topic="vflow.sflow",} 0.0
Run Code Online (Sandbox Code Playgroud)

“分区 0”、“日志大小”、“日志结束偏移”……所有这些看起来都很有希望……我猜?

但请记住,我对 Kafka/JMX/Prometheus 生态系统完全陌生。问题:上述指标是否描述了我的“vflow.sflow”主题?我可以使用它们来配置 Prometheus 以实际读取主题中的消息吗?

如果是这样,有人可以为此推荐一个好的教程吗?我一直在玩我的 Prometheus YAML 配置文件,但我设法做的就是在我这样做时使 Prometheus …

apache-kafka kafka-consumer-api prometheus jmx-exporter

2
推荐指数
1
解决办法
4254
查看次数

有没有办法配置要使用 jmx_exporter/prometheus 捕获的 kafka-connect jmx 指标?

我正在我们的 Kafka 生态系统中为 Kafka 连接设置监控。我已经为 kafka 代理启用了 JMX 导出器并且工作正常。现在我正在尝试为 kafka 连接启用 JMX 导出器。但是,从哪里开始有点不清楚。

我只能修改connect-distributed.sh以启用更改。任何指针都会是一个很好的补充。

kafka-run-class.sh已修改为能够jmx_exporter在上发出 jmx 指标http://<host>:9304/metrics

我想到卡夫卡连发出的指标http://<host>:19000/metrics一旦jmx_exporter被启用。

apache-kafka prometheus apache-kafka-connect jmx-exporter

1
推荐指数
1
解决办法
3067
查看次数

将 JMX Exporter 与 Wildfly 15 一起使用时出现 NoClassDefFoundError

我们将 Wildfly 15 与 JMX Exporter 结合使用。当启动 WildFly 服务器时,我遇到以下异常,并且我已经没有想法了。该包存在于modules/system/layers/base/org/wildfly/common/main/wildfly-common-1.4.0.Final.jar.

=========================================================================
  JBoss Bootstrap Environment
  JBOSS_HOME: /opt/jboss/wildfly-15.0.1.Final
  JAVA: /opt/java/jdk1.8.0_201/bin/java
  JAVA_OPTS:  -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.1.5.Final.jar -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.1.6.Final.jar -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/slf4j/impl/main/slf4j-jboss-logmanager-1.0.3.GA.jar -javaagent:/opt/jboss/wildfly-15.0.1.Final/prometheus/jmx-prometheus.jar=9404:/opt/jboss/wildfly-15.0.1.Final/prometheus/config.yaml -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager -server -Xmx3G -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n 
=========================================================================
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
Listening for transport dt_socket at address: 8787
java.lang.NoClassDefFoundError: org/wildfly/common/net/HostName
    at org.jboss.logmanager.ExtLogRecord.<init>(ExtLogRecord.java:87)
    at org.jboss.logmanager.Logger.log(Logger.java:796)
    at org.jboss.logging.JBossLogManagerLogger.doLogf(JBossLogManagerLogger.java:53)
    at org.jboss.logging.Logger.logf(Logger.java:2398)
    at org.jboss.msc.service.ServiceLogger_$logger.greeting(ServiceLogger_$logger.java:40)
    at org.jboss.msc.service.ServiceContainerImpl.<clinit>(ServiceContainerImpl.java:91)
    at org.jboss.msc.service.ServiceContainer$Factory.create(ServiceContainer.java:250)
    at org.jboss.as.server.BootstrapImpl$ShutdownHook.register(BootstrapImpl.java:231)
    at org.jboss.as.server.BootstrapImpl$ShutdownHook.access$100(BootstrapImpl.java:221)
    at org.jboss.as.server.BootstrapImpl.<init>(BootstrapImpl.java:72)
    at org.jboss.as.server.Bootstrap$Factory.newInstance(Bootstrap.java:278)
    at org.jboss.as.server.Main.main(Main.java:106)
    at org.jboss.modules.Module.run(Module.java:352)
    at org.jboss.modules.Module.run(Module.java:320)
    at org.jboss.modules.Main.main(Main.java:593)
Run Code Online (Sandbox Code Playgroud)

jboss wildfly jmx-exporter wildfly-15

1
推荐指数
1
解决办法
3119
查看次数