Auto-configuration reference ΒΆ
When you enable spec.frontend.generatedConfig in your nais.yaml, the platform generates configuration values your frontend can use at runtime. This removes the need to hardcode collector URLs or app metadata.
spec:
frontend:
generatedConfig:
mountPath: /usr/share/nginx/html/js/nais.jsGenerated JavaScript file ΒΆ
The platform creates a JavaScript file at the specified mountPath with this structure:
export default {
telemetryCollectorURL: 'https://telemetry.external.prod.test-nais.cloud.nais.io/collect',
app: {
name: 'my-app', // from metadata.name in nais.yaml
version: '2024-03-15-abc1234', // extracted from your container image tag
},
};| Field | Source |
|---|---|
telemetryCollectorURL | Set per cluster by the platform operator |
app.name | metadata.name from your nais.yaml |
app.version | Tag from your container image |
The collector URL is set automatically based on which cluster your app runs in β you don't need separate config for dev and prod.
Environment variable ΒΆ
The platform also sets this environment variable in your pod:
| Variable | Description |
|---|---|
NAIS_FRONTEND_TELEMETRY_COLLECTOR_URL | The telemetry collector URL for your cluster |
This is useful for server-rendered applications (Next.js, Remix) where the server can read the env var and pass it to client-side code. See the Next.js guide for an example.
`NEXT_PUBLIC_` env vars are build-time only
Don't re-export this as a NEXT_PUBLIC_* variable. Next.js inlines NEXT_PUBLIC_* values at next build time, so they won't reflect the runtime pod environment.
When to use auto-configuration ΒΆ
Static frontends (nginx, CDN): Use the generated nais.js file. Import it at runtime and use nais.telemetryCollectorURL and nais.app. See the setup guide.
Server-rendered apps (Next.js, Remix): Read NAIS_FRONTEND_TELEMETRY_COLLECTOR_URL on the server and pass it to your client-side Faro initialization. See the Next.js guide.
Simple alternative: Use https://telemetry.external.prod.test-nais.cloud.nais.io/collect directly in your production code. The URL is stable and all production clusters use the same endpoint.