-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Seth/cassandra metrics update #50
Conversation
Great ! Thanks @sethrosenblum for working on this. |
} | ||
alias = convertMetricName(alias); | ||
return alias; | ||
} | ||
|
||
private String getCassandraAlias() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason why we don't want the same approach for JMXComplexAttribute
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cassandra doesn't produce any complex attributes.
Do you think you can add some tests ? For instance we could check that we have the expected metric name, tags from a given bean (and ensure backward compatibility in the meantime). |
I had been hesitent to add a mock cassandra bean, as our other tests had all used a fake java bean. I'll see if I can make something to exercise the code path. |
Hey @sethrosenblum , As we are changing Cassandra metric names, we are likely to introduce some backward imcompatibilities/discontinuities -same metric reporting under a different name- for some users. Are we ok with that ? |
If a user continues to use their existing cassandra.yaml with the new jmxfetch, their metric names should stay the same, and they shouldn't see any difference. When we release a new cassandra.yaml to take advantage of the new cassandra namespace, then users will see a name change as the metric data being presented is quite different. |
Custom metrics defined in |
It's definitely breaking backward compatibility when users have these 'new-style' metrics set as custom and no aliases (I counted at least 9 users). We can bump JMXFetch version to |
Remove unused accessor for bean name.
b43d7c2
to
7088f31
Compare
@@ -60,8 +60,6 @@ public void sendMetrics(LinkedList<HashMap<String, Object>> metrics, String inst | |||
// We need to edit metrics for legacy reasons (rename metrics, etc) | |||
HashMap<String, Object> metric = new HashMap<String, Object>(m); | |||
|
|||
postProcess(metric); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this method be removed ?
Let's postpone theses changes to the 5.5.0 agent release: it'll give us more time to handle the transition. Also, it may worth a shot double checking the (non?)existence of |
JMX attribute types over my Cassandra (version: 2.0.13) instance:
None of them is part of |
Closing in favor of #79 |
This allows jmxfetch to properly map the new metrics structure from Cassandra to something more usable. This is intended to fix #6.
Cassandra Metrics Reference
This change does several things:
cassandra.$metric
orcassandra.$metric.$attribute
name:$name
tag because of redundancyscope:$scope
to$type:$scope
so users can continue to use 'columnfamily:mytable`, for instanceI also did some refactoring around moving post processing back into the processing of a metric and reusing domain. I can break that into a separate Pull Request if that's preferable.