← Back to team overview

graphite-dev team mailing list archive

Re: [Question #171842]: Pickle with multiple datapoints for one metric broken?

 

Question #171842 on Graphite changed:
https://answers.launchpad.net/graphite/+question/171842

Scott Smith posted a new comment:
Well, I do agree regarding unnecessary changes to the protocol. My
question was more around the fact that the expected / documented (via
answers here) format does not work.

The change is actually pretty simple, perform a conditional on
type(datapoint). It doesn't require a change in the client API.

Regarding the rest.. I'm not trying to sell the idea of changing this
(again, I was more interested in whether this was a legitimate bug or
not), but ..

I can actually think of a few situations in which a client may be
sending multiple datapoints for the same metric. Most are related to the
concept of the carbon client maintaining a buffer of metrics, rather
than sending them in real time:

- Statsd does this, but I believe most people just do this at the same
interval of their shortest retention period.

- The client could also flush after carbon has been down for a period of
time.

- For performance reasons, a client could have a flush interval greater
than the lowest retention interval but still fetch metrics at that low
interval. An example may be storing application metrics every 1 second,
but flushing every minute.

I personally feel like this could be quite valuable in terms of both
data availability and performance.

If you'd like to see my implementation, here's a diff:
http://bazaar.launchpad.net/~ohlol/graphite/bulk-
pickle/revision/578#carbon/lib/carbon/protocols.py

-- 
You received this question notification because you are a member of
graphite-dev, which is an answer contact for Graphite.