elastic / elastic/apm-agent-java

More native support for calling and implementing the GraphQL APIs

Aperta
#1,297 1 commento 6 reazioni 0 assegnatari Vedi su GitHub
enhancement instrumentation
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.