Improvements to trace router
amalloy opened this issue · 2 comments
Some features it would be great to have for the trace router and parser:
- A default period to specify while parsing, rather than being hard-coded to 1000ms in the aggregators. This way we can just say "the period for everything is 30s", and parse everything in that context.
- Right now, a probe descriptor can only transform a single probe, because it starts with a probe name and then applies a series of transformations. Zach has suggested that additional probes can be specified by including
:probe:name
elsewhere in the descriptor.
Additionally, a bug to be fixed: there's a problem in the parser somewhere which is causing "abc.group-by(x).y.sum().where(_ > 10)" to throw an exception when used as a probe descriptor. This seems like a reasonable query, so the parser should be able to support it.
I can't reproduce the parser error, maybe it's a url-encoding -> query-string issue? We can follow up on that next week.
There is, however, an issue where filtering the output within a group-by can delay a message being sent for an arbitrarily long period, since message n
relies on receiving the first facet for n+1
. The correct fix for this is probably making it so that a where
operator after a periodic operator within a group-by emits some sort of false signal that resets the aggregation mechanism but isn't emitted. That's a pretty gnarly special case, though, so I need to think if there's a cleaner way to approach this.
the configurable period has been in for a while, and I have a semi-reasonable workaround for the filtered group-by problem, so I'm calling this one closed