Domanda

Qual è il modo più semplice per registrare il tempo di risposta per un webservice Restlet-based?

Voglio fare in modo che il nostro webservice ha un tempo di risposta ragionevole. Allora voglio essere in grado di tenere d'occhio i tempi di risposta, e fare qualcosa per le richieste che richiedono troppo tempo.

La cosa più vicina che ho trovato è questa ricetta: http: //www.naviquan .com / blog / Restlet-libro di cucina-log , spiega come cambiare il formato di registro. Ma non sembra essere un parametro per i tempi di risposta, quindi probabilmente è necessario un approccio completamente diverso.

È stato utile?

Soluzione

Bene, il semplice modo di registrare i tempi di risposta è, ovviamente, chiamando System.getCurrentTimeMillis() all'inizio del vostro Restlet, e poi di nuovo alla fine del vostro Restlet e la registrazione la differenza. Che non, naturalmente, si darà l'overhead quadro, e ho il sospetto che sia molto più ingenuo e banale di quello che sono dopo.

sto postando che, però, perché dopo 10 giorni nessuno ti ha risposto, e ho il sospetto che sia perché tutti stanno tranquillamente pensare

  

"Non puoi semplicemente usare System.getCurrentTimeMillis () No, certo che è troppo stupido una risposta,? Mi piacerebbe guardare come un idiota se dicessi che mi limiterò a aspettare che qualcun altro a. fare il primo post. "

Altri suggerimenti

Non credo che la registrazione è il modo di andare qui, almeno non uno qualsiasi dei tipi di registrazione incorporato nella Restlet o l'API Java. Coloro che sono destinati sia per la registrazione o l'accesso di registrazione debug orientata programmatico destinato a fornire statistiche sui quali vengono utilizzati risorse e da chi. Ma il vero problema è che non si sarebbe misurando l'esperienza del mondo reale che gli utenti avrebbero del vostro servizio.

Se si vuole misurare i tempi di risposta che gli utenti saranno sperimentando, allora si ha realmente bisogno di avere un approccio al campionamento che vive al di fuori del tuo stack di applicazione, e, idealmente, al di fuori del data center, in modo da simulare il più fedelmente possibile le condizioni reali in cui gli utenti saranno utilizzando il servizio.

Se avete solo bisogno di verificare i risultati delle richieste GET e POST abbastanza semplici, un servizio come Pingdom probabilmente sufficiente. Se il servizio è più complessa, allora potrebbe essere necessario scrivere il proprio campionamento app / script, che potrebbe servire come un proxy da Pingdom, et al, al vostro servizio effettivo. Si dovrebbe ospitare il proxy di campionamento su un server separato dal servizio effettivo. di Google App Engine potrebbe essere conveniente per questo.

Un modo per fare questo credo è quello di utilizzare API metrica del Codehale. Basta aggiungere un @Timed(name="sampleApiName") un'annotazione alla tua dichiarazione di API.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top