Hi Lance, I tried Kafka Offset Monitor a while back, but it didn't play especially nice with a lot of topics / partitions (we currently have around 1400 topics and 4000 partitions in total). Might be possible to make it work a bit better, but not sure it would be the best way to do alerting.
Thanks for the tip though :). Best regards, Mathias On Mon, 16 Mar 2015 at 21:02 Lance Laursen <llaur...@rubiconproject.com> wrote: > Hey Mathias, > > Kafka Offset Monitor will give you a general idea of where your consumer > group(s) are at: > > http://quantifind.com/KafkaOffsetMonitor/ > > However, I'm not sure how useful it will be with "a large number of topics" > / turning its output into a script that alerts upon a threshold. Could take > a look and see what they're doing though. > > On Mon, Mar 16, 2015 at 8:31 AM, Mathias Söderberg < > mathias.soederb...@gmail.com> wrote: > > > Good day, > > > > I'm looking into using SimpleConsumer#getOffsetsBefore and offsets > > committed in ZooKeeper for monitoring the lag of a consumer group. > > > > Our current use case is that we have a service that is continuously > > consuming messages of a large number of topics and persisting the > messages > > to S3 at somewhat regular intervals (depends on time and the total size > of > > consumed messages for each partition). Offsets are committed to ZooKeeper > > after the messages have been persisted to S3. > > The partitions are of varying load, so a simple threshold based on the > > number of messages we're lagging behind would be cumbersome to maintain > due > > to the number of topics, and most likely prone to unnecessary alerts. > > > > Currently our broker configuration specifies log.roll.hours=1 and > > log.segment.bytes=1GB, and my proposed solution is to have a separate > > service that would iterate through all topics/partitions and use > > #getOffsetsBefore with a timestamp that is one (1) or two (2) hours ago > and > > compare the first offset (which from my testing looks to be the offset > that > > is closest in time, i.e. from the log segment that is closest to the > > timestamp given) with the one that is saved to ZooKeeper. > > It feels like a pretty solid solution, given that we just want a rough > > estimate of how much we're lagging behind in time, so that we know > (again, > > roughly) how much time we have to fix whatever is broken before the log > > segments are deleted by Kafka. > > > > Is there anyone doing monitoring similar to this? Are there any obvious > > downsides of this approach that I'm not thinking about? Thoughts on > > alternatives? > > > > Best regards, > > Mathias > > >