I'm using statsD to report counter data to graphite; sends a tick everytime I get a message. This works great, except in the situation when statsD has to restart for whatever reason. Then I get huge holes in my graphs, since statsD is now no longer sending '0' every 10 seconds for periods when I didn't get any messages.
I'm reporting for various different message types and queues, and sometimes I don't get a message for a particular queue for a long time.
Is there any existing way to 'fill-in' the missing data with a default value I specify (in my case this would be 0)?
I thought about sending a '0' count for a given metric so that statsD starts sending 0's for it, but I don't always know the set of metrics I'll be reporting in advance.
Check out the function transformNull that Graphite provides. e.g.
transformNull(stats.timers.deploys.all.duration.total.mean, 0)
This will map sections with null data to 0.
You can use the "keepLastValue(requestContext, seriesList)" function in graphite to deal with missing data. It "[c]ontinues the line with the last received value when gaps (‘None’ values) appear in your data, rather than breaking your line."
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With