1

レストレットベースのWebサービスの応答時間を記録する最も簡単な方法は何ですか?

Webサービスの応答時間が妥当であることを確認したいと思います。ですから、応答時間に注意を払い、時間がかかりすぎるリクエストに対して何かをしたいと思っています。

私が見つけた最も近いものはこのレシピです:http://www.naviquan.com/blog/restlet-cookbook-log、それはログフォーマットを変更する方法を説明します。しかし、応答時間のパラメーターはないように思われるため、おそらく完全に異なるアプローチが必要です。

4

3 に答える 3

3

もちろん、応答時間を記録する最も簡単な方法は、レストレットの最初に呼び出し、次にSystem.getCurrentTimeMillis()レストレットの最後に呼び出して差を記録することです。もちろん、それはあなたにフレームワークのオーバーヘッドを与えることはありません、そして私はそれがあなたが求めているよりもはるかに素朴で些細なことだと思います。

でも、10日経っても誰も返事をくれなかったので投稿します。みんな静かに考えているからだと思います。

「System.getCurrentTimeMillis()だけを使用することはできませんか?いいえ、確かにそれはあまりにも馬鹿げた答えです。私がそう言ったら、私はばかみたいに見えます。他の誰かが最初の投稿をするのを待つだけです。」

于 2010-03-19T16:14:35.907 に答える
0

ロギングがここに行く方法ではないと思います。少なくとも、RestletやJavaAPIに組み込まれているロギングのタイプはどれもそうではありません。これらは、プログラムによるデバッグ指向のロギング、またはどのリソースが誰によって使用されているかに関する統計を提供することを目的としたアクセスロギングのいずれかを対象としています。しかし、本当の問題は、ユーザーがサービスに対して体験する実際のエクスペリエンスを測定していないことです。

ユーザーが経験する応答時間を測定する場合は、実際のデータを可能な限り厳密にシミュレートするために、アプリケーションスタックの外部、理想的にはデータセンターの外部に存在するサンプリングへのアプローチが本当に必要です。 -ユーザーがサービスを使用する世界の条件。

GETかなり単純なPOSTリクエストの結果をテストするだけでよい場合は、 Pingdomのようなサービスでおそらく十分でしょう。サービスがより複雑な場合は、独自のサンプリングアプリ/スクリプトを作成する必要があります。これは、Pingdomなどから実際のサービスへのプロキシとして機能する可能性があります。実際のサービスとは別のサーバーでサンプリングプロキシをホストする必要があります。これには、 GoogleのAppEngineが便利かもしれません。

于 2010-03-21T19:31:02.120 に答える
0

これを行う1つの方法は、CodehaleのメトリックAPIを使用することだと思います。@Timed(name="sampleApiName")API宣言にアノテーションを追加するだけです。

于 2018-03-29T11:04:14.403 に答える