Tell us a bit about yourself before your first pull request. A couple of sentences is plenty.
Who are you?
Sanjeev Verma (@milansanjeev), working at Expedia Group on eg-observe — a paved-road Helm chart that wraps upstream HyperDX for EG's internal observability platform (ClickHouse-backed traces/logs, plus an Okta SSO bridge).
What would you like to work on?
Found and root-caused a bug in the PromQL proxy: proxyToPrometheus() in packages/api/src/routers/api/prometheus.ts builds the upstream URL with new URL(path, upstreamHost), where path is always absolute (e.g. /api/v1/query_range). JS's URL() constructor replaces the base's path entirely when the first argument is absolute, so any path prefix configured on the Connection's host (e.g. VictoriaMetrics cluster mode's mandatory /select/<accountID>/prometheus) gets silently dropped — breaking PromQL against any Prometheus-compatible backend that requires a non-root path prefix.
Tracked in #3046. I'd like to submit a fix (join the base's existing pathname with path instead of letting URL() discard it). A PR is up at #3047 — would appreciate a vouch so it can enter review.
Anything we can help with?
A /vouch @milansanjeev so #3047 can be reviewed, and any extra test conventions I should follow for packages/api's Prometheus proxy tests.
Tell us a bit about yourself before your first pull request. A couple of sentences is plenty.
Who are you?
Sanjeev Verma (@milansanjeev), working at Expedia Group on eg-observe — a paved-road Helm chart that wraps upstream HyperDX for EG's internal observability platform (ClickHouse-backed traces/logs, plus an Okta SSO bridge).
What would you like to work on?
Found and root-caused a bug in the PromQL proxy:
proxyToPrometheus()inpackages/api/src/routers/api/prometheus.tsbuilds the upstream URL withnew URL(path, upstreamHost), wherepathis always absolute (e.g./api/v1/query_range). JS'sURL()constructor replaces the base's path entirely when the first argument is absolute, so any path prefix configured on the Connection's host (e.g. VictoriaMetrics cluster mode's mandatory/select/<accountID>/prometheus) gets silently dropped — breaking PromQL against any Prometheus-compatible backend that requires a non-root path prefix.Tracked in #3046. I'd like to submit a fix (join the base's existing pathname with
pathinstead of lettingURL()discard it). A PR is up at #3047 — would appreciate a vouch so it can enter review.Anything we can help with?
A
/vouch @milansanjeevso #3047 can be reviewed, and any extra test conventions I should follow forpackages/api's Prometheus proxy tests.