Replies: 1 comment 2 replies
-
Thank you for this excellent write up. This is 100% on our mind as well. We are just beginning to spec out this exact functionality but on a reduced dataset and with a subset of TraceQL. These concessions were made to get this functionality into the hands of users as quickly as possible. We will try to provide more details as we solidify them and begin the work, but I'd also encourage you to join the monthly community calls where this will be a growing topic of conversation: https://docs.google.com/document/d/1yGsI6ywU-PxZBjmq3p3vAXr9g5yBXSDk4NU8LGo8qeY/edit The current functionality we are looking to deliver is something like:
Don't hold me to this! it's a work in progress. This is along the lines of what we're thinking about for "phase 1" of this functionality. Like I said this will be an active discussion in the next few community calls. Also feel free to give feedback here! |
Beta Was this translation helpful? Give feedback.
-
Context
LogQL has support for some PromQL aggregation operations such as doing
sum(rate({ app = "foo" }[1m])) * 2
(and many more kinds of operations https://grafana.com/docs/loki/latest/logql/). This, on top of the querying capabilities of LogQL, makes Loki very powerful.Since TraceQL is "inspired by PromQL and LogQL", it would be very interesting to have the same kind of feature available.
Current solutions
Currently, the only two ways to aggregate trace information into time series data within Grafana are:
See related issue Rename Duration / Start time labels to prevent collision between traces and spans grafana#63740
Usecases
Some example use cases that can't be done (easily) today:
Eg:
topk(10, sum by (instance) (rate({ status = error })))
Eg:
sum(rate({ duration > 1s }[5m]))
Eg (not sure about the syntax):
avg_over_time({ peer.service = "redis" } | json | unwrap duration [5m]) by (instance)
And even 95p (but it I guess would require Support creating histograms using logql loki#2953 to be resolved first)
Please let me know what you think of this. Maybe this is something is that already in the internal roadmap, I don't know, but I think it makes a lot of sense and would be an awesome feature for tempo.
Beta Was this translation helpful? Give feedback.
All reactions