Commit Graph

36 Commits

Author SHA1 Message Date
Andre Pereira
89092a1e69
Tempo: Use feature toggle to control TraceQL streaming (#72288)
Rename traceql streaming feature toggle. Remove the manual toggle from Options component and use the feature toggle
2023-07-26 13:33:16 +00:00
Andre Pereira
72118e372c
Tempo: TraceQL streaming improvements (#71736)
* Remove unneeded log

* Add elapsed time to streaming progress table

* Use disableTraceQLStreaming toggle to determine default status of streaming
2023-07-18 12:45:35 +03:00
Andre Pereira
c1709c9301
Tempo: TraceQL query response streaming (#69212)
* Refactor Tempo datasource backend to support multiple queryData types.
Added traceId query type that is set when performing the request but doesn't map to a tab.

* WIP data is reaching the frontend

* WIP

* Use channels and goroutines

* Some fixes

* Simplify backend code.
Return traces, metrics, state and error in a dataframe.
Shared state type between FE and BE.
Use getStream() instead of getQueryData()

* Handle errors in frontend

* Update Tempo and use same URL for RPC and HTTP

* Cleanup backend code

* Merge main

* Create grpc client only with host and authenticate

* Create grpc client only with host and authenticate

* Cleanup

* Add streaming to TraceQL Search tab

* Fix merge conflicts

* Added tests for processStream

* make gen-cue

* make gen-cue

* goimports

* lint

* Cleanup go.mod

* Comments

* Addressing PR comments

* Fix streaming for tracel search tab

* Added streaming kill switch as the disableTraceQLStreaming feature toggle

* Small comment

* Fix conflicts

* Correctly capture and send all errors as a DF to client

* Fix infinite error loop

* Fix merge conflicts

* Fix test

* Update deprecated import

* Fix feature toggles gen

* Fix merge conflicts
2023-07-14 15:10:46 +01:00
Domas
aa6f16878f
TempoQueryEDitor: Respect onRunQuery updates (#69362)
make tempo query editor respect onRunQuery changes
2023-06-01 13:10:00 +03:00
Joey
caba156488
Tempo: Integrate scoped tags API (#68106)
* Support scoped tags API

* Tests

* Updates

* Updated components and language provider to certralize tag retrieval

* Update tests and add new tests for language provider

* Minor update

* Update test
2023-05-17 07:50:27 +01:00
Andre Pereira
990b3c07ab
Tempo: Add kind to TraceQL intrinsics (#65111)
* Add kind to TraceQL intrinsics

* Fix after merging main

* Fix intrinsics array reference after merge

* Dispatch error message when TraceQL autocomplete fails to retrieve tag values
2023-04-24 14:11:28 +01:00
Andre Pereira
bfb0dde4a8
Tempo: Search using TraceQL improvements (#64616)
* Added scope to filter

* Intrinsic fields don't have scope

* Consistent plus button placement next to the last tag. Changed All Scopes to "unscoped"

* Added validation to duration fields

* Disable options load when dropdown is opened

* Use focused list of operators when all values are of type string or int/float

* Fixed and added tests

* Fix another test

* Better way to prevent duplicate and redundant backend requests when a filter updates
2023-03-21 15:59:16 +00:00
Andre Pereira
fd37ff29b5
Tempo: New Search UI using TraceQL (#63808)
* WIP of creating new components to support the Search tab using TraceQL

* Search fields now require an ID. Added duration fields to new Search UI

* Distinguish static from dynamic fields. Added dynamic tags input

* Moved new search behind traceqlSearch feature flag. Added handling of different types of values to accurately wrap them in quotes when generating query.

* Hold search state in TempoQuery to leverage state in URL. Moved types to schema file

* Use a read only monaco editor to render a syntax highlighted generated query. Added tooltip to duration. Added query options section

* Support multiple values using the regex operator and multi input

* Delete dynamic filters

* Automatically select the regex op when multiple values are selected. Revert to previous operator when only one value is selected

* Added tests for SearchField component

* Added tests for the TraceQLSearch component

* Added tests for function that generates the query

* Fix merge conflicts

* Update test

* Replace Search tab when traceqlSearch feature flag is enabled. Limit operators for both name fields to =,!=,=~

* Disable clear button for values

* Changed delete and add buttons to AccessoryButton. Added descriptions to operators

* Remove duplicate test

* Added a prismjs grammar for traceql. Replaced read only query editor with syntax highlighted query. Removed spaces between tag operator and value when generating query.

* Fix support for custom values when isMulti is enabled in Select

* Use toOption function
2023-03-06 16:31:08 +00:00
Andre Pereira
60f2433a0f
Tempo: TraceQL syntax highlighting improvements (#62349)
* Better syntax highlighting for durations, floats and right-hand-side tags

* Remove hex rule in TraceQL syntax highlighting
2023-02-02 15:48:29 +00:00
Andre Pereira
b78af0b0f0
Tempo: Inject status and status.code for tags autocomplete (#62794)
* Tempo: Inject status for v2 and status.code for v1 in the tags list for autocomplete

* Small comment fix
2023-02-02 15:43:28 +00:00
Hamas Shafiq
1f55a54543
Tempo: Create separate functions for querying the v1/v2 API for tag values (#61998) 2023-01-25 17:12:59 +00:00
Hamas Shafiq
76e1946bd7
Tempo: [TraceQL] Do not override the status tag name (#62030) 2023-01-24 19:21:48 +00:00
Joe Elliott
3eb065339f
Tempo Datasource: Correct TraceQL docs link (#61931)
* correct link

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

* lint

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

Signed-off-by: Joe Elliott <number101010@gmail.com>
2023-01-23 16:59:55 +00:00
Hamas Shafiq
5eca966f45
Tempo: [TraceQL] Integrate the new tag values API (#61637)
* Tempo: [TraceQL] Integrate the new tag values API

* Use the exact string entered in the spanset

* Update a test & add a new test

* Empty commit
2023-01-23 15:39:56 +00:00
Andre Pereira
44afad2ce4
Tempo: TraceQL autocomplete feature tracking (#60876)
* Track usages of completion items in TraceQL query editor

* Change back traceID reportInteraction() name to avoid breaking dashboards

* Filter out TAG_VALUE labels from feature tracking to avoid exposing sensitive data
2023-01-03 10:43:11 +00:00
Andre Pereira
950f357175
Tempo: TraceQL editor bug fixes (#60414)
* Set width of common columns between trace and span rows

* Better syntax highlighting for non string constants

* Apply variables to traceql query

* Fix test
2023-01-02 14:23:50 +00:00
Andre Pereira
209b1848b8
Tempo: Merge Trace ID and TraceQL tabs (#60180)
* Remove TraceID tab when TraceQL is enabled. Use TraceQL editor to query for trace IDs by checking whether the content is an hex only string

* Highlight valid trace IDs in traceql editor

* Update trace and span links to use TraceQL tab when feature flag is enabled

* Remove traceqlEditor feature flag.

* Remove traceId query type from Tempo and replace it with traceQl
2022-12-13 08:27:45 -05:00
Hamas Shafiq
583aafbbd8
Tempo: Fix TraceQL autocomplete issues (#60058) (#60125) 2022-12-12 14:49:18 +00:00
Andrej Ocenas
c6840cfdec
Tempo: Fix traceQL suggestions for tag names with dots (#59736) 2022-12-05 17:05:22 +01:00
Andre Pereira
8dbde1b921
Tempo: TraceQL table and editor (#59313)
* Tempo: Add the ability to show/hide the Span column in the table when using TraceQL

* Add optional chaining

* Update tests

* Show subcols in a subtable

* Add more space for the subtable

* Remove unused import

* Better expander icon. Improved the subtable styling. Integrated with real data

* Fix expanding the wrong index when table already has an expanded row

* ⚠️ Hack ⚠️ - Fix table links

* Link to spans

* Tempo: [TraceQL] Don't wrap the autocomplete vals for the status tag in quotes

* TraceQL result table improvements and fixes

* Include span name in the subtable

* Loop through data only if it is not nullish

* Integrate traceql with sub-tables

* Added booleans as keywords. Make query editor multiline

* Make date format consistent between trace and span

* Reset expanded indexes when data or subdata change

* Dynamic attributes by trace

* Fix test. Cleanup and refactor

* Tiny refactor

Co-authored-by: Hamas Shafiq <hamas.shafiq@grafana.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2022-11-28 16:13:03 +00:00
Ashley Harrison
d33b4918cd
Chore: more any/type assertion improvements (#59229)
more any/type assertion improvements
2022-11-23 16:54:57 +00:00
Torkel Ödegaard
915ebcf832
Search: Refactor state and logic to be less fragmented and spread out (#57973)
* Started search state refactor

* Things are working

* Move more to statemanger

* minor tweaks

* Fixed name of hook

* revert yarn.lock changes

* Harderning StateManagerBase

* More tests and refinements

* Fixed unit test

* More polish

* fixing tests

* fixed test

* Fixed test
2022-11-03 08:29:39 +01:00
Zoltán Bedi
c0b778134e
Revert: Query editor components from grafana-ui (#57436)
* Revert: QueryEditor components from grafana-ui

* Use local version of experimental

* Use experimental for query editor components

* Fix type issues in MSSQL

* point to actual version of experimental package

* point to latest version of experimental

Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2022-10-24 17:12:36 +02:00
Hamas Shafiq
07ac388e8b
Tempo: Update the query whenever the value of the TraceQL editor changes (#57199) 2022-10-21 16:01:53 +01:00
Hamas Shafiq
84a5ced72a
Tempo: Integrate TraceQL API (#56867) 2022-10-20 10:44:59 -04:00
Hamas Shafiq
9db61f54ff
Tempo: Fix the inconsistency between the query limit values in the options component (#56566) 2022-10-11 16:08:53 +01:00
Hamas Shafiq
0ec253bfa0
Tempo: Add a placeholder to the TraceQL query editor (#55257) 2022-09-28 15:07:10 +01:00
Andre Pereira
c776131929
[Tempo] - Random API response and other improvements (#54905)
* Moved the SearchResponse type to types.ts.
Created a mockSearchResponse function to generate search responses.

* Generate spans in mocked response. Extend results table to accomodate spans

* Show the first spanset attributes in the table

* Added a shortcut to run the query in TraceQL editor. Added a label and link to docs above the editor

* Improved autocomplete list sorting. Improved value regex.

* Rename column to "Span"

* Tests are great!
2022-09-09 19:00:35 +01:00
Hamas Shafiq
7779ae315b
Chore: Use the DEFAULT_LIMIT variable for the default value of the TraceQL Limit field (#54723) 2022-09-06 10:02:37 +01:00
Hamas Shafiq
295c36e4ec
Tempo: Move interfaces & TempoQueryType from datasource.ts to types.ts (#54621) 2022-09-05 15:46:10 +01:00
Hamas Shafiq
413c7c7d99
Tempo: Cache autocomplete values for tags (#54622) 2022-09-05 15:44:44 +01:00
Hamas Shafiq
21dd60ba60
Tempo: Map the status tag to status.code for autocomplete (#54593) 2022-09-02 11:55:55 +01:00
Hamas Shafiq
e17c2f1cb5
Tempo: Add an options component under the TraceQL query field (#54435) 2022-09-01 22:49:27 +01:00
Andre Pereira
e3c72ef5b7
Tempo: Improve TraceQL editor autocomplete (#54461)
* Detect spansets and improve autocomplete

* Better situation detection. Autocomplete scopes

* Remove scopes from tag name to get autocomplete

* Stronger regexes. More autocomplete tests

* Split big regex in smaller regexes

* Fix autocomplete when writing a string value with spaces

* Added test for the space inside string value autocomplete case

* Syntax highlight fix when using >< operators
2022-08-31 17:31:54 +01:00
Giordano Ricci
b4334b26aa
Chore: add missing properties to mocks (#54290)
* Chore: add missing properties to mocks

* update snapshot
2022-08-26 12:17:04 +01:00
Andre Pereira
c8f2148f75
Tempo: Basic PoC of the upcoming TraceQL editor in Explore (#54028)
* First working version of the TraceQL editor with syntax highlighting and autocomplete

* Add feature flag around the new editor option

* Fix tests and cleanup

* Fix misspelling
2022-08-24 17:57:59 +01:00