Comments (8)
For clarification, is this only an issue with kairosdb, or is carbon subject to it too?
from metrictank.
assuming this is about on-disk buffering.
would it be an acceptable solution to just not ack the messages on the source side when the dest is down? the source (rabbitmq) is assumed to be a highly reliable persistent store of data. so why not just leverage that? why does raintank-metric have to do its own, independent buffering?
from metrictank.
alternatively, could we just replace it with heka? it has in-mem and on-disk buffering built-in, but not sure if it's a great fit per se.
alternatively we could also give a good look an nsq.io which is a distributed, at-least-once-delivery, high performant queuing system with good in-mem and on-disk buffering. I heard it has some nice operational controls like draining out nodes, it might have some useful throtthling too. It sucks adding more dependencies but we knew from the beginning that rabbitmq is not a safe way to scale out across multiple machines.
from metrictank.
Re: on-disk buffering, we were looking at doing that since we had already removed them from rabbitmq at that point. I had made an in-mem buffer first, but that's still vulnerable to losing data when getting shut down, and I wasn't sure if trying to put it back into rabbitmq was the right thing to do either.
Should we just put it back into rabbitmq if the destination is unavailable?
from metrictank.
Aren't we able to just not acknowledge the messages to rabbit until we safely delivered them? It shouldn't even be a matter of first removing them from rabbit and re-adding them if we can just not ack them.
the only thing i'm not sure about is we have 2 destinations AFAIK: ES and kairos. what to do when 1 of them is down..
from metrictank.
We don't send the messages right away, though; we queue them up as they come in and then send them in batches.
from metrictank.
ok, do you know if that prevents us from delaying the ack? it would be nice if we could just ack the msg to rabbit when we sucessfully processed/sent the message, even if that was a minute after we got it from rabbit
from metrictank.
there is no point in delaying acknowledge of messages when using exclusive non-durable queues. If the raintank-metric process dies, the queue will be deleted (non-durable) allowing the exchange to correctly distribute new metrics between available raintank-workers.
i would vote for closing this in favor of issue #11
from metrictank.
Related Issues (20)
- High priority / backlog on metric flush HOT 5
- MT-Whisper-Importer-Writer can get stuck on invalid requests HOT 1
- request: tag-native divide and asPercent functions HOT 9
- Panic and crash in chunk cache
- Graphite API responds with 413 when response is too large not request HOT 5
- Add more logging with traceID HOT 2
- Ability to "revive" archived series HOT 15
- Support "archive" in tags/delByQuery HOT 2
- Stored 'lastupdate' being approximate can cause inconsistent missing data HOT 6
- deletes don't affect stale metrics. They may resurface if max-stale gets increased HOT 2
- Move to go modules for dependency management HOT 5
- Authentication in mt-gateway or document other way to proceed without tsdb-gw HOT 4
- Panic in mt-whisper-importer-reader HOT 1
- Conf parsing changes fail to parse regex HOT 2
- Multiple shards on same hardware node HOT 2
- metrictank memory issues HOT 6
- UnpartitionedMemoryIdx.Get does not check writeQueue
- MetricData messages in mdm topic poorly defined. make versioning explicit?
- Is the project stalled? HOT 2
- Control partition size using Cassandra as backend HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metrictank.