Severity: π‘ Β· Criterion: K11 / K12 Β· Phase: P6 Β· Status (review): π
File(s): src/DockerUpdateGuard.Telemetry/TelemetryServiceCollectionExtensions.cs:221-225; src/DockerUpdateGuard.Telemetry/TelemetryResourceAttributeNames.cs:13; src/DockerUpdateGuard.Telemetry/TelemetryOptions.cs:30-32
Finding
The option TelemetryOptions.Instance is documented as "Logical deployment instance
name" but is set as the resource attribute deployment.environment.name
(ConfigureResource, :221-225). Per the OpenTelemetry semantic conventions,
deployment.environment.name denotes the environment (e.g. production/staging), while an
instance is expressed via service.instance.id. If an operator sets Instance="node-1"
per the docs, this value appears in the backend as the deployment environment "node-1" β
misleading. Either the option is misnamed (meant: environment) or the attribute is
chosen wrong (meant: instance ID).
Impact
Misattributed telemetry resources; dashboards/filters by "environment"
or "instance" find nothing or mix the dimensions. Purely a convention/
correctness issue of the observability metadata.
Recommendation
Clarify the intent and align: either rename the option to Environment and
keep it on deployment.environment.name, or switch the attribute to service.instance.id
(possibly offer both concepts separately). Side point: GetServiceVersion (:249)
reads the version only from the environment variable DockerUpdateGuard__DisplayVersion (not from
IConfiguration); a DisplayVersion set via appsettings is ignored for telemetry
(the fallback to InformationalVersion is correct) β check for consistency.
Auto-generated from the repository code review. Source of truth: docs/review/findings.md β F-044 (P6), branch review/review-analysis-plan.
Severity: π‘ Β· Criterion: K11 / K12 Β· Phase: P6 Β· Status (review): π
File(s):
src/DockerUpdateGuard.Telemetry/TelemetryServiceCollectionExtensions.cs:221-225;src/DockerUpdateGuard.Telemetry/TelemetryResourceAttributeNames.cs:13;src/DockerUpdateGuard.Telemetry/TelemetryOptions.cs:30-32Finding
The option
TelemetryOptions.Instanceis documented as "Logical deployment instancename" but is set as the resource attribute
deployment.environment.name(
ConfigureResource,:221-225). Per the OpenTelemetry semantic conventions,deployment.environment.namedenotes the environment (e.g.production/staging), while aninstance is expressed via
service.instance.id. If an operator setsInstance="node-1"per the docs, this value appears in the backend as the deployment environment "node-1" β
misleading. Either the option is misnamed (meant: environment) or the attribute is
chosen wrong (meant: instance ID).
Impact
Misattributed telemetry resources; dashboards/filters by "environment"
or "instance" find nothing or mix the dimensions. Purely a convention/
correctness issue of the observability metadata.
Recommendation
Clarify the intent and align: either rename the option to
Environmentandkeep it on
deployment.environment.name, or switch the attribute toservice.instance.id(possibly offer both concepts separately). Side point:
GetServiceVersion(:249)reads the version only from the environment variable
DockerUpdateGuard__DisplayVersion(not fromIConfiguration); aDisplayVersionset viaappsettingsis ignored for telemetry(the fallback to
InformationalVersionis correct) β check for consistency.Auto-generated from the repository code review. Source of truth:
docs/review/findings.mdβ F-044 (P6), branchreview/review-analysis-plan.