Frage

Was ist der einfachste Weg, um die Antwortzeit für einen Restlet-basierten Webservice anmelden?

Ich möchte sicherstellen, dass unsere webservice eine angemessene Reaktionszeit hat. Deshalb möchte ich ein Auge auf die Reaktionszeiten halten zu können, und etwas über die Anträge tun, die zu lange dauern.

Das nächste, was ich ist dieses Rezept gefunden: http: //www.naviquan .com / blog / Restlet-Kochbuch-log , es wird erläutert, wie das Protokollformat ändern. Aber es scheint nicht ein Parameter für die Antwortzeiten zu sein, also wahrscheinlich ein völlig anderer Ansatz erforderlich ist.

War es hilfreich?

Lösung

Nun, die einfachste Möglichkeit, Reaktionszeiten Anmeldung ist natürlich, durch System.getCurrentTimeMillis() zu Beginn Ihrer Restlet Aufruf, und dann wieder am Ende Ihres Restlet und den Unterschied zu protokollieren. Das wird natürlich nicht geben Sie den Rahmen Overhead, und ich vermute, es ist viel mehr naiv und trivial, als Sie sind nach.

Ich poste es jedoch, weil nach 10 Tagen niemand Sie hat geantwortet, und ich vermute, es ist, weil jeder leise denkt

  

"Kannst du nicht einfach verwenden System.getCurrentTimeMillis () Nein, sicher, dass die Art und Weise zu dumm eine Antwort,? Ich wie ein Idiot aussehen würde, wenn ich sage, dass ich werde einfach warten, dass jemand anderes. macht den ersten Beitrag. "

Andere Tipps

Ich glaube nicht, Protokollierung der Weg ist hier zu gehen, zumindest nicht für die Arten von in Restlet oder dem Java-API gebaut Protokollierung. Diejenigen sollen für beide programmatische Debuggen orientierte Protokollierung oder Zugriffsprotokollierung bestimmt Statistiken zur Verfügung zu stellen, auf die Ressourcen benutzt werden und von wem. Aber das eigentliche Problem ist, dass Sie nicht die reale Erfahrung werden zu messen, die die Benutzer Ihres Dienstes haben.

Wenn Sie die Antwortzeiten messen möchten, dass Ihre Benutzer werden erleben, dann sind Sie wirklich brauchen einen Ansatz zur Probenahme haben, die außerhalb Ihrer Anwendung Stapel lebt und außerhalb Ihres Rechenzentrums ideal, um so genau zu simulieren, möglich, die realen Bedingungen, unter denen die Benutzer wird Ihr Dienst.

Wenn Sie nur die Ergebnisse recht unkompliziert GET und POST Anfragen testen müssen, ein Dienst wie Pingdom würde wahrscheinlich ausreichen. Wenn Ihr Service komplexer ist, dann müssen Sie Ihre eigene Sampling-app / Skript schreiben, die als Proxy von Pingdom, et al, Ihren tatsächlichen Service dienen könnte. Sie sollten das Sampling-Proxy auf einem separaten Server von Ihrem eigentlichen Dienst hosten. Googles App Engine könnte für diese bequem sein.

Eine Möglichkeit, dies zu tun, ich nehme an ist die Codehale der Metrik-API zu verwenden. Fügen Sie einfach eine Anmerkung @Timed(name="sampleApiName") zu Ihrer API-Deklaration.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top