Reading Time: 4 minutes

Una delle grandi novità della nuova versione di Elastic 6.5.0 è rappresentata dalla funzionalità per l’APM che adesso supporta completamente Java e Go! Inoltre, questa versione include il supporto per Distributed Tracing in Beta. Il team di Elastic ha ottimizzato il protocollo e fornito supporto per il monitoraggio del server APMServer Java e Go. Andiamo scoprire questa e altre novità.

Supporto Java e Go

Cominciamo dalla prima novità. Il nuovo Java Agent (ora disponibile in GA) supporta le versioni Java da 7 a 11, ha il supporto integrato per framework comuni come Servlet API, Spring Web MVC / Spring Boot e JAX-RS. Supporta inoltre i server di alcune applicazioni, come Tomcat e Wildfly, e le query del database JDBC. Per le tecnologie supportate, l’agente soddisferà automaticamente le richieste HTTP in arrivo alla vostra applicazione. L’agente ha anche un’API pubblica per eventuali personalizzazioni.

Per Go, sono adesso a disposizione un’API e vari moduli integrati per la strumentazione della tua applicazione. Per iniziare, basta scaricare l’agente go get go.elastic.co/apm e aggiornare l’applicazione utilizzando il middleware fornito dal modulo / apmhttp o uno degli altri moduli specifici del framework. Questo processo di customizzazione è supportato tramite l’API dell’agent.

 

Distributed tracing

Una caratteristica chiave del monitoraggio delle prestazioni delle applicazioni moderne è il tracciamento distribuito. Poiché l’architettura delle applicazioni software passa da un’architettura monolitica a un’architettura basata su servizi e quindi più distribuita, è fondamentale avere la possibilità di tracciare il modo in cui le richieste fluiscono attraverso il sistema.

La Distributed tracing consente agli sviluppatori di contestualizzare le prestazioni delle singole transazioni e quindi individuare rapidamente i colli di bottiglia dell’esperienza dell’utente finale.
Di seguito è riportato uno screenshot della nuova funzionalità di tracciamento distribuita in Elastic APM. Questa funzione è attualmente in beta.

Getting started

Tutti gli Agent APM di Elastic sono stati aggiornati per supportare il tracciamento distribuito out of the box. Ciò significa che questi agenti cercheranno automaticamente un ID di traccia nell’intestazione HTTP delle richieste in arrivo e lo propagheranno agli altri servizi. Se non esiste un ID di tracciamento, l’agente genererà un ID univoco e lo passerà.

Standards

Elastic APM supporta OpenTracing e dispone di bridge compatibili OpenTracing integrati negli agenti Java e Go. Gli Agent rimanenti avranno a disposizione anche i bridge OpenTracing integrati una volta avviata la Distributed tracing. L’APM di Elastic supporta lo sforzo del gruppo di lavoro di Trace Context del W3C per standardizzare il formato dell’intestazione HTTP per il tracciamento distribuito. Le implementazioni degli agenti seguono da vicino le specifiche del progetto Trace Context ed intendono supportare pienamente le specifiche finali.

Impronta di memoria migliorata

Con il nostro nuovo protocollo basato su NDJSON, gli Agent possono aprire una richiesta POST HTTP al server APM e utilizzare la codifica Chunked per trasmettere gli eventi al server APM non appena vengono registrati nell’Agent. Ciò riduce il footprint di memoria poiché possono inviare i dati non appena vengono registrati. Allo stesso modo, l’utilizzo della memoria sul server APM è notevolmente ridotto in quanto può decomprimere e analizzare gli eventi uno alla volta invece che in grandi blocchi.

Monitoraggio

Il server APM ora supporta il monitoraggio. Nell’app di monitoraggio, verrà ora visualizzata una scheda Server APM dedicata per il monitoraggio del throughput e degli errori del server APM. Ciò consentirà di ottimizzare le configurazioni degli agenti, in particolare le frequenze di campionamento, e di assicurare che i dati APM scorrano senza intoppi nel sistema.

Credits: Rasmus Makwarth

Contatta Seacom

Vuoi maggiori informazioni su Elastic APM?