Logging field standardisation - Customer-paced migration via admin panel setting
## Description
As part of the [logging field standardisation](https://gitlab.com/groups/gitlab-com/gl-infra/-/work_items/1432), ~"group::development tooling" is implementing a strategy to rename and standardize logging fields across GitLab services. The goal is to move forward quickly for GitLab.com to help internal engineers while minimizing overhead and difficulties for self-managed and dedicated customers.
## Background
Following the [decisions made on 2026-04-10](https://gitlab.com/gitlab-org/quality/quality-engineering/team-tasks/-/work_items/4349#note_3239668711), the team agreed on a phased approach:
- **Admin panel setting**: Introduce an admin panel setting that allows customers (internal and external) to control which version of logging field names is emitted — old only (default), dual-emit (old + new), or new only. This enables a paced migration for customers while letting GitLab.com move forward independently.
- **Initial focus on high-impact fields**: Rather than tackling all fields at once, focus first on logging fields with the highest usage and impact. Lower-impact fields will be handled through a breaking change exception request.
- **Service-level consumption**: The setting must be consumed at boot by service runtimes to avoid adding per-log checks that would degrade logging speed.
## Strategy and phases
1. **Identify and document high-impact logging fields** — Determine which logging fields to focus on initially, based on usage and impact.
2. **Create the admin panel setting** — Build the setting that controls the logging field naming version.
3. **Define the SSOT for included fields** — Establish a single source of truth in labkit-spec for which fields are controlled by the setting.
4. **Enable services to consume the setting** — Implement a mechanism for services to read the setting at boot and adjust logging accordingly, with benchmarks to ensure no performance regression.
5. **Document expected changes** — Collect and map current vs. new field names per service, and coordinate with affected teams (e.g., Security).
6. **Execute internal migration** — Migrate GitLab.com to the new field names using the admin panel setting.
7. **Create migration guide and roll out to customers** — Produce a clear migration guide with steps, support contact, and deadlines, then communicate to customers in collaboration with customer support.
## Key constraints
- The cost of dual-emitting grows quickly at thousands of requests per second — minimize the dual-emit window.
- Logging speed must not be impacted; setting consumption happens at boot, not per-log.
- Niche/low-impact fields go through a breaking change exception request, not the admin panel setting.
## Related
- Parent epic: [Standardize logging fields across all index patterns for GitLab.com](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1432)
- Decision log: [team-tasks#4349 (note)](https://gitlab.com/gitlab-org/quality/quality-engineering/team-tasks/-/work_items/4349#note_3239668711)
- Meeting recording: https://www.youtube.com/watch?v=HXCKAu0JGWg
### Status
<!-- STATUS NOTE START -->
## Status 2026-07-30
Less progress this week because of two days of PTO.
:clock1: **total hours spent this week by all contributors**: 8
:tada: **achievements**:
- Following the definition in https://gitlab.com/groups/gitlab-org/quality/-/work_items/397, I identified more services that needed the logging field validator as part of their pipeline to prevent more offenses from being introduced.
- [GitLab Agent](https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/merge_requests/3988)
- [Container Registry](https://gitlab.com/gitlab-org/container-registry/-/merge_requests/2914)
- Continue work on consuming the new logging settings to enable the internal migration to the new standard logging fields
- Starting with [GitLab Pages](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/1298)
- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/6995) soon up for review
:arrow_forward: **next**:
- Manage the logging field validator versions for GitLab Agent and Container Registry with Renovate to keep future deprecations up to date: https://gitlab.com/gitlab-org/labkit/-/work_items/128
- Adapt more services to consume the new logging settings: https://gitlab.com/gitlab-org/gitlab/-/work_items/596496
_Copied from https://gitlab.com/groups/gitlab-org/quality/-/epics/398#note_3620716563_
<!-- STATUS NOTE END -->
epic