Skip to content

Conversation

@zoomoid
Copy link
Contributor

@zoomoid zoomoid commented Oct 29, 2025

This no longer works, grafana/tempo#3840 removed jaeger from tempo-query, changing with it the port that the server running in the container listens to:

  • fixes config file used for running tempo-query; pointed to the config file of the main container, which contains config that the tempo-query pod cannot and does not parse anyway
  • remove obsolete jaeger-related ports in favour of default port 7777 of tempo-query. Note that the container port isn't configurable right now. If you opt to set ADDRESS via queryFrontend.query.extraEnvs to something different, you cannot access the server anymore from outside the pod.
  • remove conditional clause in toggle for queryFrontend Ingress. This no longer works for accessing Jaeger UI. Instead, you can repurpose the ingress, e.g. for configuring Grafana data sources
  • change default of queryFrontend.service.port to HTTP port of query-frontend; the jaeger-related port previously used in here no longer works
  • Remove tempo-query/jaeger-metrics-related service monitor. tempo-query doesn't export any metrics, there's nothing to scrape there, so this can be dropped completely in favour of the already existing service monitor for query-frontend's HTTP port

most of these changes probably also need to be reflected in the non-distributed charts as well, but I'm awaiting feedback here first.

…o-query only if enabled

Currently the service monitor is added regardless of whether the old jaeger mode is enabled or not.
Similar to the ports on the deployment and service, we only include the servicemonitor if `queryFrontend.query.enabled=true`.
Additionally, the selector of the service monitor does not work anyway, because the service that includes the old ports has a different `app.kubernetes.io/component` label than the one created from the servicemonitor template

Signed-off-by: Alexander Bartolomey <github@alexanderbartolomey.de>
1. remove servicemonitor. tempo-query is now only a gRPC proxy for jaeger. There's not metrics, and no UI anymore
2. remove jaeger metrics and ui ports from service. They plainly dont exist anymore. the ports are also not what the server expects, there's a single server running on default 7777
3. use correct config file for tempo-query, the executable loads the wrong config file

Signed-off-by: Alexander Bartolomey <github@alexanderbartolomey.de>
The port was still pointing to a jaeger-related HTTP port, this is gone since grafana/tempo#3840 so don't use it anymore
HTTP ingress is no longer for connecting to jaeger UI, but can instead be used for e.g. grafana data sources access via ingress

Signed-off-by: Alexander Bartolomey <github@alexanderbartolomey.de>
@zoomoid zoomoid changed the title [tempo-distributed| drop jaeger-ui related ports and config completely [tempo-distributed] drop jaeger-ui related ports and config completely Oct 29, 2025
Signed-off-by: Alexander Bartolomey <github@alexanderbartolomey.de>
@@ -1,4 +1,4 @@
{{- if and .Values.queryFrontend.query.enabled .Values.queryFrontend.ingress.enabled -}}
{{- if .Values.queryFrontend.ingress.enabled -}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reason to change this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the tempo-query service evolved to be gRPC-only, and I see very little use in having an HTTP ingress for a gRPC service the way it currently is set up.

However, similar to the remark below, I might be work considering if the ingress needs to be kept in its entirety, I think the original idea went along the same lines of setting the queryFrontend.service.port to the HTTP metrics port, because that was the last remaining (somewhat sensible) HTTP endpoint to use for this entire service.

The extra predicate in the conditional can of course remain, but since the ingress is fully customizable with respect to host, path and so forth, technically you don't have to use it for the tempo-query service alone and could also use it to expose the 3200 metrics endpoint of query-frontend (whatever might be the reason to do this).

Also, if the ingress used to just be for tempo-query, why not put its configuration in the values under queryFrontend.query?

service:
# -- Port of the query-frontend service
port: 16686
port: 3200
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not be 7777?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it should, can you use this value in the templates instead to avoid magic numbers?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, so getting back to this, the service.port properties are nested under queryFrontend, which has the static 3200 port for (i guess) just metrics via HTTP. The property's description also refers to query-frontend, not tempo-query, so this whole field seems a bit misplaced. I don't know if it's actually needed for something, but if it should just rectify the broken old port to the new (gRPC) port of tempo-query, we can set it to 7777 in the values and use that value in the template, sure.

However I think the confusion I had here is really indicative of drift of the upstream tempo-query service and the helm chart's use of it.

For now, I'll set this to 7777 and carry that to the service template.

Signed-off-by: Alexander Bartolomey <github@alexanderbartolomey.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants