-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Add configurable Max TTL duration for statsd input plugin entries #8509
Conversation
was missing type in readme
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.
Nevermind, I got confused about the number of Gather calls. :D it's all good.
After upgrading from Telegraf 1.16.3 to 1.17.0, I've noticed that tags from statsd emissions are being mangled with unrelated metrics. I'm not pointing to this PR as the root cause for the regression, but this is also the only thing that's changed with the statsd plugin since the last release. If I have some more time I'll compile a more thorough bug report with a reproducible example. |
Interesting. Thank you for reporting that, let me know when/if you get more info! |
We've also seen the same mangled tags from statsd metrics after upgrading to 1.17.0 |
My golang is very rusty, but I think this is the cause of the issue: The As the parser was recently multithreaded, this means there may be multiple goroutines calling the following line in telegraf/plugins/inputs/statsd/statsd.go Lines 648 to 649 in 76c2201
telegraf/plugins/inputs/statsd/statsd.go Lines 691 to 696 in 76c2201
then creates a telegraf/plugins/inputs/statsd/statsd.go Lines 707 to 710 in 76c2201
and sets the default tags on that shared telegraf/plugins/inputs/statsd/statsd.go Line 713 in 76c2201
this means multiple goroutines will be concurrently modifying |
…fluxdata#8509) * Adding max TTL duration for all metric caches in the statsd input plugin * Update README.md was missing type in readme
The new config value will establish how long any metric can sit in the gauges/counters/timings/sets without being updated / received. When the Max TTL elapses, the metric will stop being reported until it was received again.
closes #8348