This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-08-11
Channels
- # admin-announcements (1)
- # aws (2)
- # beginners (32)
- # boot (147)
- # capetown (1)
- # cider (11)
- # cljs-dev (45)
- # cljsrn (57)
- # clojure (187)
- # clojure-russia (5)
- # clojure-spec (97)
- # clojure-uk (33)
- # clojurescript (33)
- # cloverage (17)
- # clr (4)
- # conf-proposals (93)
- # core-async (6)
- # cursive (9)
- # data-science (1)
- # datomic (24)
- # defnpodcast (1)
- # devcards (3)
- # emacs (3)
- # hoplon (95)
- # jobs (1)
- # off-topic (7)
- # om (97)
- # onyx (32)
- # overtone (1)
- # parinfer (4)
- # pedestal (1)
- # proton (1)
- # protorepl (13)
- # re-frame (4)
- # reagent (10)
- # specter (14)
- # untangled (40)
Is it possible to set a window on an output task?
My goal is to keep track of how many segments have fully propagated from the input to the output, then fire a trigger if that reaches a certain number of segments.
Yes, that is possible
You can also set onyx/fns on input and outputs
This might be a dumb question or hard to answer; We set up metrics/monitoring with the grafana/riemann/influx stack and setup queries pretty much the same as in the onyx-benchmark project. The question is I have no idea what we are really looking at like what is good/bad?
The two I monitor most are complete latency (the time it takes for a segments to travel through the entire DAG and have all its child segments acked), and retry count
If the complete latency is about what I expect, and the retry count is zero, then things look good
If not, then you need to start drilling in to things
Oh, the other thing to look out for is the pending count.
This will only be measured on your input tasks. Basically it’ll give you an idea of how many segments from the input task are in flight at any time
Right, in the case of kafka, it’ll probably get refilled pretty quickly anyway, so it may just sit around 10000 (default pending-size), and that is OK
It’s hard to advise what numbers to look out for, because many of them will depend a lot on your problem
The only unequivocally bad one is message retries
If your retry count is 0 then it becomes more of a question of whether the complete latency / throughput is good enough for your needs. If it isn’t then you should start drilling down into what you can optimise
I really hope to be able to bring you guys on at some point for some kind of consultation
I usually just look at max (basically 100th percentile), because it’s calculated over X time period (10s I think?). It depends on what kind of numbers you’re trying to hit though.
RE: consultation, I think performance tuning / going to production is a good time to get us to help a bit. Let us know if you’re ever close to pulling the trigger 🙂
You’re welcome 🙂
@lucasbradstreet: If I set a window on an output task and hook a trigger up to it (say, with a :segment
trigger type), is that trigger guaranteed to sync after the segment has completed its operation in the output task?
A different question: Do I not need to worry about using :onyx/uniqueness-key
if I know that I'll have unique records coming in through the input? I want to protect against the window counting a record twice that was inputted once (due to network failure), but I'm not sure if I need the uniqueness key to guarantee that.