aws / aws/aws-sdk-java-v2

Collect timeout metrics for call attempts

Aperta
#3,240 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
feature-request p3 sdk-metrics
Lingua principale
Java
Stelle
2.6k
Fork
1k
Merge medio
2g 9h
PR unite (30g)
51

Descrizione

### Describe the feature

I propose that the SDK collects timeout metrics for call attempts.

Current docs for available metrics, as reference:
https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/metrics-list.html

### Use Case

The SDK allows users to tweak timeout values. Users can utilize the existing latency metrics to inform their decision about appropriate timeout values in the SDK, but it would be very helpful to have dedicated timeout metrics to see the direct effect of any changes.

### Proposed Solution

_No response_

### Other Information

I tried using an ExecutionInterceptor, which offers hooks into different points in the request/response lifecycle, with the intention of creating the timeout metric myself.

It seemed promising but unfortunately it couldn't make it work:

- response hooks don't run because the timeout is supposed to trigger before the response is available
- exception hooks only run when the request as a whole fails, giving you the final failure that is thrown, but doesn't run for each underlying call attempt, and also doesn't keep track of all failures that caused each retry

### Acknowledgements

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

### AWS Java SDK version used

v2

### JDK version used

Corretto 11

### Operating System and version

Amazon Linux 2

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dalla documentazione delle metriche di AWS SDK for Java v2 e dal ciclo di vita di ExecutionInterceptor descritto nell’issue, in particolare dagli hook di response ed exception. Traccia il modo in cui vengono rappresentati i timeout e i tentativi di retry, quindi definisci il completamento come l’esposizione di una metrica di timeout dedicata per ogni tentativo di chiamata sottostante, inclusi i tentativi che portano a un errore finale di retry.

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

Valutazione

Stack tecnologico
aws, java
Ambito
observability
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.