aws / aws/aws-sdk-cpp

Tracing miss span context with transfer manager or thread executor

Aperta
#2,732 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
feature-request p3
Lingua principale
C++
Stelle
2.2k
Fork
1.2k
Merge medio
4g 11h
PR unite (30g)
13

Descrizione

### 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Iniziate leggendo l’implementazione del tracing attorno a opentelemetry::context::RuntimeContext::GetCurrent() e gli entry point S3Client::GetObject, GetObjectCallable, GetObjectAsync e TransferManager. Seguite il modo in cui il lavoro raggiunge il thread dell’executor, quindi definite e verificate un approccio alla propagazione del contesto che correli lo span GetObject con il chiamante senza dipendere dal contesto locale del thread.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
aws, cpp
Ambito
observability-sre
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.