3

私のショップはIIS7でMVC3/FUBUを使用しています。最近何かを本番環境に導入し、ログパーサーを使用してIISログからメトリックを収集したいと思いました。これは以前にも何度も行ったことがありますが、MVC3ルートは/ api / person // address /の形式であるため、ログはuristem列に/ api / person / 123 / address/456を保存します。

IISログから特定のルートに関するデータを取得する方法について誰かがアイデアを持っていますか?

例として:次のようにログを記録します。

cs-uri-stem
/api/person/123/address/456
/api/person/121/address/33
/api/person/1555/address/5555

次のような出力:合計ヒット数= 3

4

2 に答える 2

5

さて、これを処理する方法は、HttpContextからルートパターンをプルし、URL_PATTERNとしてサーバー変数に配置するHttpModuleを作成することです。server_variablesに入ると、IISAdvancedLoggingはそれを取得して保存できます。現在のリクエストにルートがない場合は、URLの通常のローカル部分を使用するだけです(したがって、ログのcs-uri-stemと一致します)。

sql / logパーサークエリ:select url_pattern、count(url_pattern)from(yourlogs)where(start / end)group by url_pattern order by count(url_pattern)descは、私の各エンドポイントのヒット数を返します。アプリ。

これは明らかにfubuの動作で実行できますが、クラシックなaspとMVC3がたくさん実行されており(私は知っています...)、これですべてを処理できます。また、IIS Advanced Loggingが取得できるRaiseTraceEventを使用して、モジュールからフィールドを「公開」することもできますが、それを理解しようとするのに適していたので、私は自分の持っているものを使用しました。

私はfubuとMVC3を参照してこの質問をあちこちに投稿しましたが、ほとんどまたはまったく興味を持っていませんでした。それは本当に驚きました。使用されているルートを簡単に特定できない場合、人々はログで​​情報をどのように調べますか。

https://gist.github.com/2854760

于 2012-06-01T19:55:05.020 に答える
0

Notepad++の正規表現検索機能を使用できます。この記事が役立つかもしれません。

于 2012-05-30T02:17:23.847 に答える