diff --git a/apps/loopover-ui/content/docs/self-hosting-configuration.mdx b/apps/loopover-ui/content/docs/self-hosting-configuration.mdx index 7e3f0fa40..775fa479b 100644 --- a/apps/loopover-ui/content/docs/self-hosting-configuration.mdx +++ b/apps/loopover-ui/content/docs/self-hosting-configuration.mdx @@ -216,7 +216,7 @@ Tune `MAINTENANCE_ADMISSION_MAX_LIVE_PENDING` (default `5`), `MAINTENANCE_ADMISS ## Tracing and telemetry env -`OTEL_EXPORTER_OTLP_ENDPOINT` overrides the OpenTelemetry collector target only if you're routing to an external collector instead of the bundled one (default `http://otel-collector:4318` under the `observability` profile). `OTEL_SERVICE_NAME` (default `gittensory-selfhost`) is the service name traces and metrics are tagged with — set a distinct value per instance if you run more than one and want to tell them apart in Grafana/Tempo. `OTEL_TRACES_SAMPLER` (default `parentbased_traceidratio`) picks the sampling strategy for app job/provider traces; pair it with `OTEL_TRACES_SAMPLER_ARG` (for example `0.05` to sample 5% of root traces). +`OTEL_EXPORTER_OTLP_ENDPOINT` overrides the OpenTelemetry collector target only if you're routing to an external collector instead of the bundled one (default `http://otel-collector:4318` under the `observability` profile). `OTEL_SERVICE_NAME` (default `loopover-selfhost`) is the service name traces and metrics are tagged with — set a distinct value per instance if you run more than one and want to tell them apart in Grafana/Tempo. `OTEL_TRACES_SAMPLER` (default `parentbased_traceidratio`) picks the sampling strategy for app job/provider traces; pair it with `OTEL_TRACES_SAMPLER_ARG` (for example `0.05` to sample 5% of root traces). ## Generated env reference diff --git a/apps/loopover-ui/content/docs/self-hosting-operations.mdx b/apps/loopover-ui/content/docs/self-hosting-operations.mdx index 86a2e3c1c..cc7db31cc 100644 --- a/apps/loopover-ui/content/docs/self-hosting-operations.mdx +++ b/apps/loopover-ui/content/docs/self-hosting-operations.mdx @@ -606,8 +606,8 @@ captures use a `kind` or review `operation` tag instead. /> Cron monitor slugs follow -`gittensory-selfhost-{environment}-{loop}` (for example -`gittensory-selfhost-production-scheduled-loop`). Pair monitor alerts with queue +`loopover-selfhost-{environment}-{loop}` (for example +`loopover-selfhost-production-scheduled-loop`). Pair monitor alerts with queue depth, dead-job counts, and the matching structured log event. ## Sentry alert classes and runbook diff --git a/test/unit/self-host-ops-rename-residue.test.ts b/test/unit/self-host-ops-rename-residue.test.ts index 7e99711c6..afae5da92 100644 --- a/test/unit/self-host-ops-rename-residue.test.ts +++ b/test/unit/self-host-ops-rename-residue.test.ts @@ -10,6 +10,10 @@ const SELF_HOSTING_OPS_DOC = join( process.cwd(), "apps/loopover-ui/content/docs/self-hosting-operations.mdx", ); +const SELF_HOSTING_CONFIGURATION_DOC = join( + process.cwd(), + "apps/loopover-ui/content/docs/self-hosting-configuration.mdx", +); const TERRAFORM_MAIN = join(process.cwd(), "packages/loopover-miner/terraform/main.tf"); const CAPABILITY_AUDIT_DOC = join(process.cwd(), "src/review/repo-agnostic-capability-audit.md"); @@ -20,6 +24,25 @@ describe("self-host ops docs rename residue (#5937)", () => { expect(doc).toContain("loopover-docker-prune"); }); + it("documents the real loopover-selfhost-{environment}-{loop} cron monitor slug, not the pre-rename prefix", () => { + // resolveSentryMonitorSlug (src/selfhost/sentry.ts) has emitted "loopover-selfhost-..." slugs since the + // Sentry monitor-naming rebrand; this doc paragraph was left describing the pre-rename "gittensory-selfhost-..." + // pattern. Unlike the SENTRY_RELEASE default (scripts/deploy-selfhost-prebuilt.sh, deliberately still + // "gittensory-selfhost@..." per test/unit/selfhost-sentry-release.test.ts), the monitor slug has no such + // pinned exception -- it's a plain doc/code mismatch. + const doc = readFileSync(SELF_HOSTING_OPS_DOC, "utf8"); + expect(doc).not.toContain("gittensory-selfhost-{environment}-{loop}"); + expect(doc).toContain("loopover-selfhost-{environment}-{loop}"); + }); + + it("documents the real loopover-selfhost OTEL_SERVICE_NAME default, not the pre-rename value", () => { + // src/selfhost/otel.ts falls back to "loopover-selfhost" when OTEL_SERVICE_NAME is unset; this doc line + // still described the pre-rename default. + const doc = readFileSync(SELF_HOSTING_CONFIGURATION_DOC, "utf8"); + expect(doc).not.toContain("`OTEL_SERVICE_NAME` (default `gittensory-selfhost`)"); + expect(doc).toContain("`OTEL_SERVICE_NAME` (default `loopover-selfhost`)"); + }); + it("points the terraform module's header comment at the real env filename, not .gittensory-miner.env", () => { const tf = readFileSync(TERRAFORM_MAIN, "utf8"); expect(tf).not.toContain(".gittensory-miner.env");