Hello,
I am collecting Kafka Connect metrics successfully with Jolokia2 input plugin, however there is a very important data returned by the API which is the status of the component.
The status is a non numerical value: ‘unassigned’, ‘running’, ‘paused’, ‘failed’, or ‘destroyed’
Jolokia seems to ignore this data since it is not returning a numerical value:
curl http://localhost:28779/jolokia/read/kafka.connect:type=connector-task-metrics,connector=*,task=* | jq
{
"request": {
"mbean": "kafka.connect:connector=*,task=*,type=connector-task-metrics",
"type": "read"
},
"value": {
"kafka.connect:connector=kafka-skink-task-telegraf,task=1,type=connector-task-metrics": {
"offset-commit-avg-time-ms": 0,
"running-ratio": 1,
"pause-ratio": 0,
"offset-commit-failure-percentage": 0,
"offset-commit-success-percentage": 0,
"offset-commit-max-time-ms": null,
"batch-size-avg": 0,
"status": "running",
"batch-size-max": 0
}
},
"timestamp": 1540115333,
"status": 200
}
The metrics returned by jolokia2 input:
kafka_connect.connector-task.offset-commit-failure-percentage;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 0 1540113960
kafka_connect.connector-task.offset-commit-success-percentage;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 1 1540113960
kafka_connect.connector-task.pause-ratio;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 0 1540113960
kafka_connect.connector-task.batch-size-max;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 209 1540113960
kafka_connect.connector-task.offset-commit-avg-time-ms;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 0 1540113960
kafka_connect.connector-task.batch-size-avg;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 68.66666666666667 1540113960
kafka_connect.connector-task.running-ratio;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 1 1540113960
kafka_connect.connector-task.offset-commit-max-time-ms;connector=kafka-skink-task-telegraf;host=telegraf-kafka-connect;jolokia_agent_url=http:--kafka-connect-3:38779-jolokia;task=2 0 1540113960
My telegraf.conf jolokia2 input:
[[inputs.jolokia2_agent.metric]]
name = "connector-task"
mbean = "kafka.connect:type=connector-task-metrics,connector=*,task=*"
tag_keys = ["connector", "task"]
Is there any way of transforming this data into a numerical value (using a processor plugin ?) that will allow the metric to be ingested ?
FYI output format is graphite with tags support.
Many thanks for your help !
Regards,
Guilhem