-
Notifications
You must be signed in to change notification settings - Fork 41.1k
Improvements to Actuator Metrics #2949
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
Comments
As chance would have it, Statsd and OpenTSDB support were merged yesterday. There's also some new aggregation stuff, along with the ability to export to JMX from where you can graph things using JConsole or JVisualVM. Check out the updated docs for more info. |
We also already support Servo (in the sense that Servo metrics are HdrHistogram looks interesting. If we ever have our own histogram support |
A couple of questions on the subject: (1) What are your plans to allow for the export of those (2) I'm also interested in your views on where/how you see the aggregation of metric values on a time interval to produce rates, averages, min, max or other derived metrics. Where do you see such aggregation in your design? Should it be the responsibility of the |
As of yesterday you can add a bean of type
I think "aggregation" is overloaded and possibly not very use in this context (if you say "aggregation" I think of combining metrics from multiple physical sources into a logical repository). Maybe "derived" metrics is more appropriate? Some derived metrics can be accessed from global aggregators (e.g. graphite, openTSDB), so that might suffice for some use cases. Rich gauges are an idea from Spring XD, and I think they find them pretty useful, but don't use our implementation. I would be interested to hear from anyone who wants to use them. They had feature parity with normal metrics in Boot 1.2 but probably do not yet in 1.3. If you desperately need something, rather than Servo, I would recommend that you use Dropwizard for local derived metrics. We can certainly look into HdrHistogram as Josh suggested if this is a popular feature and people want native support. |
Cool. I'll git it a try and keep you informed (on this issue or do you want me to send you feedback in a separate issue?)
I could use the This seems to be a good solution. However the Another option might be to hook the An intermediate solution is to somehow buffer the metrics for a short period of time (say 60s) and export a summary when the time interval is over. This is the approach followed by Netflix's Servo library (as far as I understood). Back to my incoming HTTP requests example, I would then record values for 60s, and once the period is over export multiple metrics:
DropWizard could be used instead of Servo indeed. But it doesn't offer any mechanism to reset the metric after the 60s period interval... What is your opinion on this use case? |
Your incoming HTTP requests example is exactly a As far as mainlining to graphite goes, AFAIK there would be virtually no overhead (compared to an HTTP request), but doesn't graphite only store data periodically? So you don't get the rich guage behaviour out of the box. I think you do with OpenTSDB, but I might be wrong. However, buffering and exporting regularly seems like the right solution for everyone anyway. I just don't understand the need for a reset yet. If you are already using graphite and are happy with it, and want to use rich gauges, I'd like to get you to try it out and make changes, or give us feedback where necessary.
Not quite true. An |
any change of other options from DropWizard like timers and meters? |
I guess, if someone wants to implement them. We still support Dropwizard metrics if not. |
Here is one more use case for "derived" metrics. I have a service which accepts some binary data from external world. I want to measure a consumed bandwidth of that service over time. So I imagine of recording the size of every data bit accepted, alongside with its timestamp. Sending this to, e.g. graphite, and then plotting sums over given time periods, like 1 minute. It seems that Spring Boot currently does not support such usage? |
What is there about that which isn't supported? Graphite does the time bucketing; all you have to do is send the raw data. |
As was mentioned before, |
AFAIK, Spring
|
@iNikem that's more like a counter than a gauge then. Maybe if the existing export mechanism doesn't work for that use case we could find a way to export all the deltas instead of the sums. |
Reading the source, it seems that not using So main take away from my use-case: the documentation can be updated to mention a way to increment counters by arbitrary values :) |
This has been superseded by the planned move to Micrometer-based metrics (#9970) |
A few use cases have come up recently. Wanted to start a discussion, if nothing else:
@dsyer @spencergibb @philwebb
Could we ...
Also, what's the recommended way to aggregate all these stats / metrics? Is our advice to use a tool like Graphite / OpenTSDB / Statsd and then analyse / visualize things from there? Is it worth improving docs for that?
The text was updated successfully, but these errors were encountered: