Please ignore what people would call the "parser" implementation.
Having something working was my first priority. Alongside the desire to write an actual tokenizer/parser for the dsl, the realization that very few will want to learn a new dsl also grew. And those that will take the time to understand it and its warts, most people will have forgotten about it by the time they have a problem and start console to debug.
The DSL is very contained and doesn't have fancy features which would require a custom parser, yet it already verbose and has warts. My plan is to replace the query creation with an interactive menu system, allowing navigation with arrow keys, keyboard shortcuts and visual hints, allowing intuitive use, even for unskilled users.
Nevertheless, it's working and imo a milestone, showcasing the power of tracing we're starting to unleash!
Examples
You can group_by by field values: event.group_by.field.yak
Example query: event.group_by.span.id
You can also select a parent span by event.group_by.span.parent_by_name("parentspanname").id.
Filtering via span fields is also supported: event.group_by.span.field.<fieldname>
Forgive me father, for I have sinned.
Please ignore what people would call the "parser" implementation. Having something working was my first priority. Alongside the desire to write an actual tokenizer/parser for the dsl, the realization that very few will want to learn a new dsl also grew. And those that will take the time to understand it and its warts, most people will have forgotten about it by the time they have a problem and start
console
to debug.The DSL is very contained and doesn't have fancy features which would require a custom parser, yet it already verbose and has warts. My plan is to replace the query creation with an interactive menu system, allowing navigation with arrow keys, keyboard shortcuts and visual hints, allowing intuitive use, even for unskilled users.
Nevertheless, it's working and imo a milestone, showcasing the power of tracing we're starting to unleash!
Examples
You can
group_by
by field values:event.group_by.field.yak
Example query:
event.group_by.span.id
You can also select a parent span by
event.group_by.span.parent_by_name("parentspanname").id
. Filtering via span fields is also supported:event.group_by.span.field.<fieldname>
Closes #31