Skip to content

[r103] [TraceQL] Implement structural operators#2653

Closed
mapno wants to merge 16 commits intor103from
main
Closed

[r103] [TraceQL] Implement structural operators#2653
mapno wants to merge 16 commits intor103from
main

Conversation

@mapno
Copy link
Copy Markdown
Contributor

@mapno mapno commented Jul 14, 2023

Backport ac63a44 from #2625


What this PR does:
Implements descendant (>>), child (>), and sibling (~) structural operators in vParquet2. The TraceQL engine now passes new intrinsics to storage so it can load the minimum columns (each operator uses a different set of columns). The Span interface was updated with generic methods DescendantOf(span) that the engine calls, so it is agnostic to how this data is represented in the backend. I.e. we are not exposing the raw left/right/parent integers to the engine. There are pros and cons to this approach, it is more flexible and as we implement TraceQL on other formats (live traces?), I think it will be better. The drawback is it means a very naive algorithm in the engine to detect the relationships O(n * m). If the engine had the integers it could do fancy things like put them in a map or sorted slice. I think for most cases n and m will be small.

Note: My formatter is now gofumpt, so there is a little bit of noise from the fumpting.

Which issue(s) this PR fixes:
Fixes ?? <-- If we have an issue to track structural operators I couldn't find it.

Checklist

  • Tests updated
  • Documentation added
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

zhuoyuan-liu and others added 16 commits July 5, 2023 08:53
* Add statefulset for metrics generator

* Use proper volume method

* Keep the data emptyDir on the generator deployment

* Fix config references

* Fix config default error

* Move readme file

* Zero replicas for the deployment

* Update changelog

* Update config example

* Compile jsonnet

* Update test config for microservices

* Include metrics-generator statefulset compiled manifest

* Drop termination grace grace period to rely on defaults

* Compile jsonnet
* removed unused stats

Signed-off-by: Joe Elliott <number101010@gmail.com>

* removed unused handler

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
* Dynamic metrics group by multiple attributes

* changelog

* review feedback

* trim whitespace on groupBy values
Signed-off-by: Pavol Loffay <p.loffay@gmail.com>
* Poke CI

* Update lint

* Address revive warnings

* Fix last unused params
* testing

* undo logs

* add dry run status to override limits metrics

* fix label name
* Dynamic metrics group by multiple attributes

* changelog

* review feedback

* trim whitespace on groupBy values

* Working descendant operator

* Add child and sibling operators

* Split intrinsic into separate per operator to allow better column precision. Fix edge case, fix flakey tests

* lint

* changelog

* Add missing default scope entries

* Fix dual import of parquetquery

* Fail spanset structural if multiple spansets present, add tests, use buffer

* Document structural operators

* Review feedback, comments

* lint

* lint
Updating the page title in prep for mounting content in Cloud Traces.
#2647)

* Remove forced volume mounts for generator deployment which prevents downstream jsonnet from changing them via $.tempo_metrics_generator_container, make volume mounts idential between deployment and statefulset

* Sort gitignore and add more paths

* Fix command and regen output

* changelog
…2645)

* Delay logging config warnings until the logger has been initialized

* Update CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants