Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Custom Routes: use existing server's mux container instead of gorilla.Mux#115605

Merged
charandas merged 20 commits intomainfrom
charandas/registered-web-services
Jan 7, 2026
Merged

Custom Routes: use existing server's mux container instead of gorilla.Mux#115605
charandas merged 20 commits intomainfrom
charandas/registered-web-services

Conversation

@charandas
Copy link
Contributor

@charandas charandas commented Dec 19, 2025

What is this feature?

The gorilla.Mux implementation of custom routes was/has been a bandaid in the way I implemented custom routes in the beginning. It was used because the code in K8s apiserver was perhaps not well understood.

A side-effect of using the Mux in front of the delegate chain of the core server (and by chance, aggregator's as well) surfaced recently. For remote APIs with custom routes, their local API had to be disabled using --runtime-config in the core entrypoint server. Simply aggregating the remote server wasn't enough - that's because gorilla.Mux took a look and determined if a route was useful even before the aggregator's chain took a look at it.

This changeset fixes the issue by learning from prior art in grafana-app-sdk. It doesn't exactly do what grafana-app-sdk does as it does a lot more.

As a bonus, the PR does away with one such API (features.grafana.app being required with a runtime-config of false when aggregated) because that is no longer necessary with this changeset.

Why do we need this feature?

This allows us to disentangle aggregator's chain from core server. Also, this means we won't be repeating authorization for remote APIs at the entrypoint, following the best practice in K8s aggregation layer docs.

Who is this feature for?

Grafana App Platform

Which issue(s) does this PR fix?:

Fixes https://github.com/grafana/grafana-org/issues/775

Special notes for your reviewer:

Please check that:

  • It works as expected from a user's perspective.
  • If this is a pre-GA feature, it is behind a feature toggle.
  • The docs are updated, and if this is a notable improvement, it's added to our What's New doc.

@charandas charandas changed the title Charandas/registered web services Custom Routes: use RegisteredWebServices in Server's Mux Container instead of Gorilla.Mux Dec 19, 2025
@charandas charandas changed the title Custom Routes: use RegisteredWebServices in Server's Mux Container instead of Gorilla.Mux Custom Routes: use existing server's mux container instead of gorilla.Mux Dec 19, 2025
@charandas charandas self-assigned this Dec 19, 2025
@charandas charandas added no-backport Skip backport of PR no-changelog Skip including change in changelog/release notes labels Dec 19, 2025
@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: main
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and main enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

Error building instance: Contact #proj-ephemeral-hg-instances if it is not a compile error. Logs

Error message

handling pull request comment event: running grafana-build deb: executing command: stdout= stderr=go: downloading go1.25.5 (linux/amd64)
go: downloading github.com/urfave/cli/v2 v2.27.7
go: downloading dagger.io/dagger v0.18.8
go: downloading golang.org/x/sync v0.19.0
go: downloading github.com/Masterminds/semver v1.5.0
go: downloading go.opentelemetry.io/otel/trace v1.39.0
go: downloading github.com/vektah/gqlparser/v2 v2.5.27
go: downloading github.com/Khan/genqlient v0.8.1
go: downloading go.opentelemetry.io/otel v1.39.0
go: downloading github.com/99designs/gqlgen v0.17.73
go: downloading github.com/adrg/xdg v0.5.3
go: downloading github.com/mitchellh/go-homedir v1.1.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0
go: downloading go.opentelemetry.io/otel/log v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0
go: downloading go.opentelemetry.io/otel/metric v1.39.0
go: downloading go.opentelemetry.io/otel/sdk v1.39.0
go: downloading github.com/urfave/cli v1.22.17
go: downloading go.opentelemetry.io/otel/sdk/log v0.12.2
go: downloading go.opentelemetry.io/otel/sdk/metric v1.39.0
go: downloading go.opentelemetry.io/proto/otlp v1.9.0
go: downloading google.golang.org/grpc v1.77.0
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.7
go: downloading github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1
go: downloading github.com/sosodev/duration v1.3.1
go: downloading github.com/go-logr/logr v1.4.3
go: downloading golang.org/x/sys v0.39.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2
go: downloading github.com/cpuguy83/go-md2man v1.0.10
go: downloading google.golang.org/protobuf v1.36.11
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading go.opentelemetry.io/auto/sdk v1.2.1
go: downloading google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79
go: downloading github.com/cespare/xxhash/v2 v2.3.0
go: downloading github.com/cenkalti/backoff/v5 v5.0.3
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/grpc-ecosystem/grpc-gateway v1.16.0
go: downloading github.com/russross/blackfriday/v2 v2.1.0
go: downloading github.com/russross/blackfriday v1.6.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2
go: downloading golang.org/x/net v0.48.0
go: downloading golang.org/x/text v0.32.0
2025/12/19 01:27:24 if git -C src checkout charandas/registered-web-services; then echo "checked out charandas/registered-web-services"; else exit 3; fi
time=2025-12-19T01:32:32.644Z level=INFO msg="Initializing tar.gz artifact with options" name=grafana-pro "build ID"=12345 version=12.4.0 distro=linux/amd64 static=true enterprise=true
2025/12/19 01:32:32 if git -C src checkout charandas/registered-web-services; then echo "checked out charandas/registered-web-services"; else exit 3; fi
2025/12/19 01:32:32 if git -C src checkout main; then echo "checked out main"; else exit 3; fi
time=2025-12-19T01:32:39.548Z level=INFO msg="Initializing backend artifact with options" static=true version=12.4.0 name=grafana-pro distro=linux/amd64 "cgo enabled"=true
2025/12/19 01:32:39 if git -C src checkout main; then echo "checked out main"; else exit 3; fi
time=2025-12-19T01:32:45.698Z level=INFO msg="initializing Pro Docker artifact" Org=hosted-grafana registry=us.gcr.io repo=hosted-grafana-pro tag=12.4.0-ephemeral-oss-115605-82555-1
time=2025-12-19T01:32:45.698Z level=INFO msg="Adding artifact to dag..." filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz artifact=docker-pro:pro:linux/amd64
time=2025-12-19T01:32:45.698Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler count=1
time=2025-12-19T01:32:45.698Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler count=1
time=2025-12-19T01:32:45.698Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler count=3
time=2025-12-19T01:32:45.698Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler count=0
time=2025-12-19T01:32:45.698Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
2025/12/19 01:32:45 Building with command 'if [ -d pkg/cmd/grafana ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana; fi'
2025/12/19 01:32:45 Building with command 'if [ -d pkg/cmd/grafana-server ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-server -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-server; fi'
2025/12/19 01:32:45 Building with command 'if [ -d pkg/cmd/grafana-cli ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-cli -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-cli; fi'
2025/12/19 01:32:45 Building with command 'if [ -d pkg/cmd/grafana-example-apiserver ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-example-apiserver -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-example-apiserver; fi'
time=2025-12-19T01:32:45.698Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2025-12-19T01:32:45.698Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler count=0
time=2025-12-19T01:32:45.698Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2025-12-19T01:33:58.127Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2025-12-19T01:33:58.127Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2025-12-19T01:33:58.127Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2025-12-19T01:33:58.127Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2025-12-19T01:33:58.127Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler count=0
time=2025-12-19T01:33:58.127Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2025-12-19T01:33:58.135Z level=INFO msg="Done adding artifact" filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz artifact=docker-pro:pro:linux/amd64
time=2025-12-19T01:33:58.135Z level=INFO msg="Exporting artifacts..."
time=2025-12-19T01:33:58.135Z level=INFO msg="Started exporting artifact..." artifact=docker-pro:pro:linux/amd64 action=export
time=2025-12-19T01:33:58.135Z level=INFO msg="Acquiring semaphore" artifact=docker-pro:pro:linux/amd64 action=export
time=2025-12-19T01:33:58.135Z level=INFO msg="Acquired semaphore" artifact=docker-pro:pro:linux/amd64 action=export
time=2025-12-19T01:33:58.135Z level=INFO msg="Exporting artifact" artifact=docker-pro:pro:linux/amd64 action=export
error exporting artifact 'grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz': input: container.from.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withMountedCache.withEnvVariable.withDirectory.withDirectory.withDirectory.withDirectory.withFile.withDirectory.withDirectory.withDirectory.withDirectory.withFile.withFile.withWorkdir.withFile.withEnvVariable.withMountedCache.withExec.withFile.withFile.withFile.withExec.withExec.withExec.withExec.directory process "/bin/sh -c if [ -d pkg/cmd/grafana ]; then go build -buildvcs=false -ldflags="-w -s -X \"main.version=12.4.0\" -X \"main.commit=$(cat ./.buildinfo.commit)\" -X \"main.buildBranch=$(cat ./.buildinfo.branch)\" -X \"main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)\" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana; fi" did not complete successfully: exit code: 1

exit status 1
exit status 1

@charandas charandas force-pushed the charandas/registered-web-services branch from 5bf5f62 to eea7ec9 Compare January 2, 2026 21:22
@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas charandas marked this pull request as ready for review January 3, 2026 01:49
@charandas charandas requested review from a team as code owners January 3, 2026 01:49
@charandas charandas requested review from ferruvich and spinillos and removed request for a team January 3, 2026 01:49
@github-actions github-actions bot added this to the 12.4.x milestone Jan 3, 2026
@charandas charandas requested a review from ryantxu January 3, 2026 01:54
@charandas charandas force-pushed the charandas/registered-web-services branch from 830ee38 to a088cd0 Compare January 5, 2026 15:37
@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

charandas and others added 5 commits January 6, 2026 08:54
Removed the org role authorizer from the authorizer chain for core server since aggregator's newer behavior for remote APIs as of this PR is to skip authz for remote APIs. It will happen in the upstream.
@charandas charandas force-pushed the charandas/registered-web-services branch from 9cbe7d3 to 2fe4166 Compare January 6, 2026 16:54
@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

Error building instance: Contact #proj-ephemeral-hg-instances if it is not a compile error. Logs

Error message

handling pull request comment event: calling gcom to upsert instance: updating instance: unexpected response status: status=429 responseBody={
"code": "TooManyRequests",
"message": "Hosted Grafana Error: Rate Limit Exceeded",
"requestId": "69d25cf7-85ff-41ed-9518-1a23123ddf87"
}

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

Error building instance: Contact #proj-ephemeral-hg-instances if it is not a compile error. Logs

Error message

handling pull request comment event: running grafana-build deb: executing command: stdout= stderr=go: downloading go1.25.5 (linux/amd64)
go: downloading github.com/urfave/cli/v2 v2.27.7
go: downloading dagger.io/dagger v0.18.8
go: downloading golang.org/x/sync v0.19.0
go: downloading github.com/Masterminds/semver v1.5.0
go: downloading go.opentelemetry.io/otel/trace v1.39.0
go: downloading github.com/99designs/gqlgen v0.17.73
go: downloading github.com/mitchellh/go-homedir v1.1.0
go: downloading go.opentelemetry.io/otel v1.39.0
go: downloading github.com/vektah/gqlparser/v2 v2.5.27
go: downloading github.com/adrg/xdg v0.5.3
go: downloading github.com/Khan/genqlient v0.8.1
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0
go: downloading go.opentelemetry.io/otel/log v0.12.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0
go: downloading go.opentelemetry.io/otel/metric v1.39.0
go: downloading go.opentelemetry.io/otel/sdk v1.39.0
go: downloading github.com/urfave/cli v1.22.17
go: downloading go.opentelemetry.io/otel/sdk/log v0.12.2
go: downloading go.opentelemetry.io/otel/sdk/metric v1.39.0
go: downloading go.opentelemetry.io/proto/otlp v1.9.0
go: downloading google.golang.org/grpc v1.77.0
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.7
go: downloading github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1
go: downloading github.com/sosodev/duration v1.3.1
go: downloading github.com/go-logr/logr v1.4.3
go: downloading golang.org/x/sys v0.39.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2
go: downloading github.com/cpuguy83/go-md2man v1.0.10
go: downloading google.golang.org/protobuf v1.36.11
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79
go: downloading go.opentelemetry.io/auto/sdk v1.2.1
go: downloading github.com/cespare/xxhash/v2 v2.3.0
go: downloading github.com/cenkalti/backoff/v5 v5.0.3
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/grpc-ecosystem/grpc-gateway v1.16.0
go: downloading github.com/russross/blackfriday/v2 v2.1.0
go: downloading github.com/russross/blackfriday v1.6.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2
go: downloading golang.org/x/net v0.48.0
go: downloading golang.org/x/text v0.32.0
2026/01/07 19:21:32 if git -C src checkout charandas/registered-web-services; then echo "checked out charandas/registered-web-services"; else exit 3; fi
time=2026-01-07T19:26:58.705Z level=INFO msg="Initializing tar.gz artifact with options" name=grafana-pro "build ID"=12345 version=12.4.0 distro=linux/amd64 static=true enterprise=true
2026/01/07 19:26:58 if git -C src checkout charandas/registered-web-services; then echo "checked out charandas/registered-web-services"; else exit 3; fi
2026/01/07 19:26:58 if git -C src checkout charandas/registered-web-services; then echo "checked out charandas/registered-web-services"; else exit 3; fi
time=2026-01-07T19:27:06.352Z level=INFO msg="Initializing backend artifact with options" static=true version=12.4.0 name=grafana-pro distro=linux/amd64 "cgo enabled"=true
2026/01/07 19:27:06 if git -C src checkout main; then echo "checked out main"; else exit 3; fi
time=2026-01-07T19:27:13.079Z level=INFO msg="initializing Pro Docker artifact" Org=hosted-grafana registry=us.gcr.io repo=hosted-grafana-pro tag=12.4.0-ephemeral-oss-115605-83482-2
time=2026-01-07T19:27:13.079Z level=INFO msg="Adding artifact to dag..." filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz artifact=docker-pro:pro:linux/amd64
time=2026-01-07T19:27:13.079Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler count=1
time=2026-01-07T19:27:13.079Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler count=1
time=2026-01-07T19:27:13.079Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler count=3
time=2026-01-07T19:27:13.079Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler count=0
time=2026-01-07T19:27:13.079Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2026-01-07T19:27:13.079Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
2026/01/07 19:27:13 Building with command 'if [ -d pkg/cmd/grafana ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana; fi'
2026/01/07 19:27:13 Building with command 'if [ -d pkg/cmd/grafana-server ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-server -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-server; fi'
2026/01/07 19:27:13 Building with command 'if [ -d pkg/cmd/grafana-cli ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-cli -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-cli; fi'
2026/01/07 19:27:13 Building with command 'if [ -d pkg/cmd/grafana-example-apiserver ]; then go build -buildvcs=false -ldflags="-w -s -X "main.version=12.4.0" -X "main.commit=$(cat ./.buildinfo.commit)" -X "main.buildBranch=$(cat ./.buildinfo.branch)" -X "main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana-example-apiserver -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana-example-apiserver; fi'
time=2026-01-07T19:27:13.080Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=bin/grafana-pro/linux/amd64 service=ArtifactHandler
time=2026-01-07T19:27:13.080Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2026-01-07T19:27:13.080Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler count=0
time=2026-01-07T19:27:13.080Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2026-01-07T19:28:25.859Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2026-01-07T19:28:25.859Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2026-01-07T19:28:25.859Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=12.4.0/grafana-enterprise/public service=ArtifactHandler
time=2026-01-07T19:28:25.859Z level=INFO msg="getting dependencies..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2026-01-07T19:28:25.859Z level=INFO msg="got dependencies" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler count=0
time=2026-01-07T19:28:25.859Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="building directory..." artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="done building directory" artifact=docker-pro:pro:linux/amd64 filename=bin/bundled-plugins service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.deb service=ArtifactHandler
time=2026-01-07T19:28:25.867Z level=INFO msg="getting builder..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.868Z level=INFO msg="got builder" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.868Z level=INFO msg="building file..." artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.868Z level=INFO msg="done building file" artifact=docker-pro:pro:linux/amd64 filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz service=ArtifactHandler
time=2026-01-07T19:28:25.868Z level=INFO msg="Done adding artifact" filename=grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz artifact=docker-pro:pro:linux/amd64
time=2026-01-07T19:28:25.868Z level=INFO msg="Exporting artifacts..."
time=2026-01-07T19:28:25.868Z level=INFO msg="Started exporting artifact..." artifact=docker-pro:pro:linux/amd64 action=export
time=2026-01-07T19:28:25.868Z level=INFO msg="Acquiring semaphore" artifact=docker-pro:pro:linux/amd64 action=export
time=2026-01-07T19:28:25.868Z level=INFO msg="Acquired semaphore" artifact=docker-pro:pro:linux/amd64 action=export
time=2026-01-07T19:28:25.868Z level=INFO msg="Exporting artifact" artifact=docker-pro:pro:linux/amd64 action=export
error exporting artifact 'grafana-pro_12.4.0_12345_linux_amd64.docker-pro.tar.gz': input: container.from.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withExec.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withEnvVariable.withMountedCache.withEnvVariable.withDirectory.withDirectory.withDirectory.withDirectory.withFile.withDirectory.withDirectory.withDirectory.withDirectory.withFile.withFile.withWorkdir.withFile.withEnvVariable.withMountedCache.withExec.withFile.withFile.withFile.withExec.withExec.withExec.withExec.directory process "/bin/sh -c if [ -d pkg/cmd/grafana ]; then go build -buildvcs=false -ldflags="-w -s -X \"main.version=12.4.0\" -X \"main.commit=$(cat ./.buildinfo.commit)\" -X \"main.buildBranch=$(cat ./.buildinfo.branch)\" -X \"main.enterpriseCommit=$(cat ./.buildinfo.enterprise-commit)\" -linkmode=external -extldflags=-static " -o=bin/grafana-pro/linux/amd64/grafana -trimpath -tags=osusergo,timetzdata,pro ./pkg/cmd/grafana; fi" did not complete successfully: exit code: 1

exit status 1
exit status 1

@charandas
Copy link
Contributor Author

/deploy-to-hg --enterprise-ref charandas/registered-web-services

@ephemeral-instances-bot
Copy link

  • Preparing your instance. A comment containing your instance's url will be added to this PR when the instance is ready.
    - Grafana branch: charandas/registered-web-services
    - Grafana Enterprise branch: charandas/registered-web-services
  • Your instance will be ready in ~10 minutes. Follow the workflow progress
  • Slack channel: #proj-ephemeral-hg-instances
  • Building instance with charandas/registered-web-services oss branch and charandas/registered-web-services enterprise branch. How to choose a branch

@ephemeral-instances-bot
Copy link

@charandas charandas merged commit b96a1ae into main Jan 7, 2026
127 checks passed
@charandas charandas deleted the charandas/registered-web-services branch January 7, 2026 20:46
@grafana-delivery-bot
Copy link
Contributor

grafana-delivery-bot bot commented Jan 7, 2026

🚀 Your submission is now being built and packaged.

Arinashin3 pushed a commit to Arinashin3/grafana that referenced this pull request Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/backend no-backport Skip backport of PR no-changelog Skip including change in changelog/release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants