aws / aws/aws-sdk-cpp

Tracing miss span context with transfer manager or thread executor

Offen
#2,732 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
feature-request p3
Vorherrschende Sprache
C++
Sterne
2.2k
Forks
1.2k
Ø Merge
4 T. 11 Std.
Gemergte PRs (30 T.)
13

Beschreibung

### Describe the feature

Current implementation of tracing creates a span context from opentelemetry::context::RuntimeContext::GetCurrent()
This is a thread_local stack of previous span context.

When getting an object through the transfer manager or with GetObjectCallable or GetObjectAsync the span will be created from another thread than the one doing the request.
There is no way to link or give the right parent to the span created in S3Client::GetObject.

Could you provide a way to propagate the right context like opentelemetry propagator is doing between client / server with http headers?

### Use Case

I can't correlate smithy tracing span in S3Client GetObject with my code
Exemple:
```
main thread thread executor
| Span A |(application)
| Span B | (TransferManager::DownloadFile)
| Span D | (Proccess Data) | Span C | (GetObject)
```

### Proposed Solution

_No response_

### Other Information

_No response_

### Acknowledgements

- [ ] I may be able to implement this feature request
- [X] This feature might incur a breaking change

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Lesen Sie zunächst die Tracing-Implementierung rund um opentelemetry::context::RuntimeContext::GetCurrent() sowie die Einstiegspunkte S3Client::GetObject, GetObjectCallable, GetObjectAsync und TransferManager. Verfolgen Sie, wie die Arbeit zum Executor-Thread gelangt, und definieren und überprüfen Sie anschließend einen Ansatz zur Kontextweitergabe, der den GetObject-Span mit seinem Aufrufer verknüpft, ohne sich auf den thread-lokalen Kontext zu stützen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, cpp
Bereich
observability-sre
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.