Exemplar keeps stale span context when a reservoir cell is overwritten outside a span
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- observability
Direzione di ricerca
Inizia in sdk/metrics/.../internal/exemplar/ReservoirCell.java, in offerMeasurement(), soprattutto alle righe 73-76. Riproduci il problema con exemplars sempre attivi registrando all'interno di uno span campionato e poi al di fuori di uno nello stesso bucket, quindi raccogli. È completato quando il contesto dello span dell'exemplar sovrascritto appartiene alla nuova misurazione ed è non valido per la registrazione al di fuori dello span.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When an exemplar reservoir cell is overwritten within one collection cycle by a measurement recorded outside a span, the exported exemplar has the new value, time and attributes but keeps the trace/span id of the previous measurement.
Steps to reproduce
- Build an
SdkMeterProviderwithsetExemplarFilter(ExemplarFilter.alwaysOn())(orotel.metrics.exemplar.filter=always_on). - On a histogram with default buckets, call
record(1.0)inside a sampled span, thenrecord(2.0)with no active span (same bucket). - Collect.
What did you expect to see?
An exemplar with value=2.0 and an invalid span context. The spec defines an exemplar as one recorded measurement, with the trace/span id of the span active when it was recorded.
What did you see instead?
value=2.0 with the span id of the first measurement. ReservoirCell.offerMeasurement() (sdk/metrics/.../internal/exemplar/ReservoirCell.java lines 73-76) always overwrites value, time and attributes, but updates spanContext only when the new span context is valid.
What version and what artifacts are you using?
Artifacts: opentelemetry-sdk-metrics
Version: main @ ce32c1205
How did you reference these artifacts? Local build
Environment
Compiler: Temurin 21
OS: N/A
Additional context
Not visible with the default trace_based filter, since every measurement it lets through has a sampled span.
- Lingua principale
- Java
- Stelle
- 2.5k
- Fork
- 1k
- Merge medio
- 2g 19h
- PR unite (30g)
- 64
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di open-telemetry/opentelemetry-java
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
open-telemetry/opentelemetry-java#8870 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
open-telemetry/opentelemetry-java#8867 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
open-telemetry/opentelemetry-java#8866 ·
I maintainer di solito rispondono entro 2 giorni
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
open-telemetry/opentelemetry-java#8843 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
open-telemetry/opentelemetry-java#8688 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di open-telemetry/opentelemetry-java
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
github/copilot-sdk#2793 ·
I maintainer di solito rispondono entro 1 giorno
-
Unify jpa4 into orm8Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100