Jaeger: Migrate API calls to gRPC endpoint (#113297)

* Jaeger: Migrate Services and Operations to the gRPC Jaeger endpoint (#112384)

* add grpc feature toggle

* move types into types.go

* creates grpc client functions for services and operations

* Call grpc services function when feature flag is enabled for health check

* remove unnecessary double encoding

* check for successful status code before decoding response and return nil in case of successful response

* remove duplicate code

* use variable

* fix error type in testsz

* Jaeger: Migrate search and Trace Search calls to use gRPC endpoint (#112610)

* move all types into types package except for JagerClient

* move all helper functions into utils package

* change return type of search function to be frames and add grpc search functionality

* fix tests

* fix types and the way we check error response from grpc

* change trace name and duration unit conversion

* fix types and add tests

* support queryAttributes

* quick limit implementation in post processing

* add todo for attributes / tags

* make trace functionality ready to support grpc flow

* add functions to process search response for a specific trace and create the Trace frame

* tests for helper funtions

* remove grpc querying for now!

* change logic to be able to process and support multiple resource spans

* remove logic for gRPC from grpc_client.go

* add equivalent fields for logs and references

* add tests for grpcTraceResponse function

* fix types after merge with main

* fix status code checks and return nil for error on successful responses

* enable reading through config flag for trace search

* create sigle key value type since they are similar for OTLP and non OTLP based formats

* reference right type

* convert events and links into references and logs

* add status code, status message and kind to data frame

* fix tests to accomodate new format

* remove unused function and add more tests

* remove edit flag for jsonc golden test files

* add clarifying comment

* fix tests and linting

* fix golden files for testing

* fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add clarifying comment

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove unnecessary logging statement

* fix downstream errors

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* use downstreamerrorf where applicable and add missing downstream eror sources.

* tests

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Jocelyn Collado-Kuri
2025-10-31 11:19:16 -07:00
committed by GitHub
co-authored by Copilot ismail simsek
parent 64da716a2e
commit d0ea82633f
22 changed files with 3364 additions and 621 deletions
+6
View File
@@ -2115,6 +2115,12 @@ var (
Owner: grafanaFrontendPlatformSquad,
Expression: "true",
},
{
Name: "jaegerEnableGrpcEndpoint",
Description: "Enable querying trace data through Jaeger's gRPC endpoint (HTTP)",
Stage: FeatureStageExperimental,
Owner: grafanaOSSBigTent,
},
{
Name: "pluginStoreServiceLoading",
Description: "Load plugins on store service startup instead of wire provider, and call RegisterFixedRoles after all plugins are loaded",
+1
View File
@@ -272,6 +272,7 @@ cdnPluginsUrls,experimental,@grafana/plugins-platform-backend,false,false,false
pluginInstallAPISync,experimental,@grafana/plugins-platform-backend,false,false,false
newGauge,experimental,@grafana/dataviz-squad,false,false,true
preventPanelChromeOverflow,preview,@grafana/grafana-frontend-platform,false,false,true
jaegerEnableGrpcEndpoint,experimental,@grafana/oss-big-tent,false,false,false
pluginStoreServiceLoading,experimental,@grafana/plugins-platform-backend,false,false,false
onlyStoreActionSets,GA,@grafana/identity-access-team,false,false,false
panelTimeSettings,experimental,@grafana/dashboards-squad,false,false,false
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
272 pluginInstallAPISync experimental @grafana/plugins-platform-backend false false false
273 newGauge experimental @grafana/dataviz-squad false false true
274 preventPanelChromeOverflow preview @grafana/grafana-frontend-platform false false true
275 jaegerEnableGrpcEndpoint experimental @grafana/oss-big-tent false false false
276 pluginStoreServiceLoading experimental @grafana/plugins-platform-backend false false false
277 onlyStoreActionSets GA @grafana/identity-access-team false false false
278 panelTimeSettings experimental @grafana/dashboards-squad false false false
+4
View File
@@ -1098,6 +1098,10 @@ const (
// Restrict PanelChrome contents with overflow: hidden;
FlagPreventPanelChromeOverflow = "preventPanelChromeOverflow"
// FlagJaegerEnableGrpcEndpoint
// Enable querying trace data through Jaeger&#39;s gRPC endpoint (HTTP)
FlagJaegerEnableGrpcEndpoint = "jaegerEnableGrpcEndpoint"
// FlagPluginStoreServiceLoading
// Load plugins on store service startup instead of wire provider, and call RegisterFixedRoles after all plugins are loaded
FlagPluginStoreServiceLoading = "pluginStoreServiceLoading"
+12
View File
@@ -2062,6 +2062,18 @@
"hideFromDocs": true
}
},
{
"metadata": {
"name": "jaegerEnableGrpcEndpoint",
"resourceVersion": "1760451551713",
"creationTimestamp": "2025-10-14T14:19:11Z"
},
"spec": {
"description": "Enable querying trace data through Jaeger's gRPC endpoint (HTTP)",
"stage": "experimental",
"codeowner": "@grafana/oss-big-tent"
}
},
{
"metadata": {
"name": "jitterAlertRulesWithinGroups",