You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jason Rosenberg (JIRA)" <ji...@apache.org> on 2015/01/27 18:30:35 UTC
[jira] [Comment Edited] (KAFKA-1902) fix MetricName so that Yammer
reporter can work correctly
[ https://issues.apache.org/jira/browse/KAFKA-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14293840#comment-14293840 ]
Jason Rosenberg edited comment on KAFKA-1902 at 1/27/15 5:30 PM:
-----------------------------------------------------------------
In the yammer metric reporter (which is based on the Graphite metric naming scheme: https://graphite.readthedocs.org/en/latest/render_api.html#graphing-metrics), it's assumed that the metric name is comprised of components separated by dots, e.g. part1.part2.part3.part4. These components make up branches in the navigation tree typically presented in a ui, etc.
No spaces are allowed (the yammer metric reporter replaces spaces with dashes '-'). But other characters are allowed, including '='.
The yammer metric name is a concatenation of the group, type, name, scope (with '.'s inserted between each). But if any of these also have a '.' internal to them, then that will also result in a separate component, so if we have:
{code}
group: "kafka.server"
type: "BrokerTopicMetrics"
name: "BytesInPerSec"
scope: topic=my.topic.with.dots,partition=2
{code}
This will result in the metric path (broken down by navigation components):
{code}
kafka
server
BrokerTopicMetrics
BytesInPerSec
topic=my
topic
with
dots,partitions=
2
{code}
Thus, I don't think the inclusion of '=' and ',' really maps well here, if the kafka topic has dots in it. Instead, I think it would be better to just have the scope be something like:
{code}
scope: topicname.partition
{code}
(e.g. scope: my.topic.with.dots.2 in the example above).
The bottom line is that jmx tag syntax doesn't necessarily map directly to a metric navigation path.
was (Author: jbrosenberg@gmail.com):
In the yammer metric reporter (which is based on the Graphite metric naming scheme: https://graphite.readthedocs.org/en/latest/render_api.html#graphing-metrics), it's assumed that the metric name is comprised of components separated by dots, e.g. part1.part2.part3.part4. These components make up branches in the navigation tree typically presented in a ui, etc.
No spaces are allowed (the yammer metric reporter replaces spaces with dashes '-'). But other characters are allowed, including '='.
The yammer metric name is a concatenation of the group, type, name, scope (with '.'s inserted between each). But if any of these also have a '.' internal to them, then that will also result in a separate component, so if we have:
group: "kafka.server"
type: "BrokerTopicMetrics"
name: "BytesInPerSec"
scope: topic=my.topic.with.dots,partition=2
This will result in the metric path (broken down by navigation components):
kafka
server
BrokerTopicMetrics
BytesInPerSec
topic=my
topic
with
dots,partitions=
2
Thus, I don't think the inclusion of '=' and ',' really maps well here, if the kafka topic has dots in it. Instead, I think it would be better to just have the scope be something like:
scope: topicname.partition (e.g. scope: my.topic.with.dots.2 in the example above).
> fix MetricName so that Yammer reporter can work correctly
> ---------------------------------------------------------
>
> Key: KAFKA-1902
> URL: https://issues.apache.org/jira/browse/KAFKA-1902
> Project: Kafka
> Issue Type: Bug
> Components: core
> Reporter: Jun Rao
> Assignee: Jun Rao
> Priority: Blocker
> Fix For: 0.8.2
>
> Attachments: kafka-1902.patch
>
>
> Currently, we create MetricName in the following format.
> group: "kafka.server"
> type: "BrokerTopicMetrics"
> name: "BytesInPerSec"
> scope: null
> mBeanName: "kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=test"
> However, Yammer metric reporter seems to only use the first four fields group, type, name and scope during reporting.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)