在DCOS上使用Statsd的Kafka指标

时间:2018-01-27 11:08:46

标签: apache-kafka dcos statsd

我使用框架在一个DC / OS集群中安装了Kafka。

我想获得一些监控它的指标,我看到有这样的配置:

"TASKCFG_ALL_KAFKA_METRICS_REPORTERS": "com.airbnb.kafka.kafka08.StatsdMetricsReporter",

我在代码中查看了一下,在server.properties.mustache中看到了一些配置参数:

external.kafka.statsd.port={{STATSD_UDP_PORT}}
external.kafka.statsd.host={{STATSD_UDP_HOST}}
external.kafka.statsd.reporter.enabled=true

然后我查看了其中一个代理正在运行的节点,并且配置具有以下值:

external.kafka.statsd.port=57925
external.kafka.statsd.host=198.51.100.1
external.kafka.statsd.reporter.enabled=true
external.kafka.statsd.tag.enabled=true

在此节点中,在该端口上,有一个进程在其名称中使用mesos-agent进行侦听。

如何查看Kafka经纪人报告的指标?

2 个答案:

答案 0 :(得分:0)

目前无法使用dcos kafka配置文件或环境变量(DCOS使用Kafka-Mesos Framework)打开JMX端口并监控群集生成的kafka指标 如下所述:Enable JMX on Kafka Brokers。 (更改dcos v1.12请求)

然而,DC / OS提供了一个REST-API,用于接收群集,主机,容器和应用程序特定指标: 例如v 1.9(我目前正在使用的那个) https://docs.mesosphere.com/1.9/metrics/metrics-api/#/

示例

如果您知道agent_id(运行代理的dcos节点) 例如你的agent_id是“ed14928-04d1-4f7e-b544-0a3e9d58645b-S9” 然后:

  1. https:/// system / v1 / agent / 2ed14928-04d1-4f7e-b544-0a3e9d58645b-S9 / metrics / v0 / containers - >查看在该代理上运行的容器并找到负责您的kafka-broker的容器。例如“a8b0d630-c55a-4e1c-a456-69e9a3ad1c16”
  2. https:/// system / v1 / agent / 2ed14928-04d1-4f7e-b544-0a3e9d58645b-S9 / metrics / v0 / containers / a8b0d630-c55a-4e1c-a456-69e9a3ad1c16 / app - >查看kafka-metrics

    { “名称”: “kafka.server.BrokerTopicMetrics.BytesOutPerSec.1MinuteRate”, “值”:0, “单元”: “”, “时间戳”: “2018-01-29T15:33:10Z”,”标签 “:{” 主题 “:” XXXX “}},{” 名称 “:” kafka.log.Log.NumLogSegments “ ”值“:2, ”单元“: ”“, ”时间戳“:” 2018-01 -29T15:32:39Z “ ”标签“:{ ”分区“: ”1“, ”主题“: ”XXXXX“}},{ ”名称“: ”kafka.network.RequestMetrics.ThrottleTimeMs.p98“,” 值“:0,” 单元 “:” “ ”时间戳“:” ... ....

  3. 如果你不知道agent_id,你必须遍历所有奴隶(代理人) HTTPS:/// mesos /主/从站  例如{slaves ....“id”:“2ed14928-04d1-4f7e-b544-0a3e9d58645b-S13”...}并且适合合适的人。 或者,如果您拥有经纪人节点的IP地址,则可以使用 dcos cli (您必须先登录!)

    $ dcos node
    

    找出代理商ID。

答案 1 :(得分:0)

Dcos提供了cli来获取节点和应用程序(任务)的指标。 此cli使用valentin在上面指定的dcos指标API。

$ dcos task metrics details <task-id> [--json]
metrics details
    Print a table of all metrics for the task specified by <task-id>

$ dcos task metrics summary <task-id> [--json]   
metrics summary
    Print a table of key metrics for the task specified by <task-id>

<task-id>
    A full task ID, a partial task ID, or a regular expression.
--json
    Print JSON-formatted list of tasks.

$ dcos node metrics details <mesos-id> [--json]
metrics details
    Print a table of all metrics for the agent node specified by <mesos-id>.

$ dcos node metrics summary <mesos-id> [--json]
metrics summary
    Print CPU, memory and disk metrics for the agent node specified by
    <mesos-id>.

--mesos-id=<mesos-id>
    The agent ID of a node.
--json
    Print JSON-formatted list of nodes.