elastic / elastic/apm-agent-java
More native support for calling and implementing the GraphQL APIs
- Lingua principale
- Java
- Stelle
- 594
- Fork
- 338
- Merge medio
- 1g 13h
- PR unite (30g)
- 25
Descrizione
When implementing a GraphQL API, there should be a way to create separate transactions dynamically for each Resolver method. At the moment, the agent creates one transaction for all the calls to GraphQL API. I understand it is possible to use `@CaptureTransaction` annotations, but it requires not having an active transaction in flight, which needs the autodiscovery to be switched off, and that is not ideal.
When invoking a GraphQL API from Java, the Spans should contain the GraphQL expression similar to how JDBC calls are being represented in the UI with their respective SQL statement visible. GraphQL expression is visible in the request but requires capturing request bodies, which has performance impact.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia esaminando la gestione delle transazioni dei resolver GraphQL, inclusi @CaptureTransaction e l’autodiscovery, quindi esamina come vengono strumentate le chiamate del Java GraphQL client e i corpi delle richieste. Il lavoro sarà completo quando saranno definite transazioni separate per ogni metodo di Resolver e l’espressione GraphQL sarà esposta sugli span senza richiedere una costosa acquisizione del corpo della richiesta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- graphql, java
- Ambito
- api, backend
- 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