2

MSDNを読むと、AzureDiagnosticsの保存に使用されるアカウントが次のように構成されているという印象を受けました。

<ConfigurationSettings>
   <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
       value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey"/>
</ConfigurationSettings>

(設定名は固定の「Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString」文字列です)。しかし、それから私はDiagnosticMonitorを設定するためのコードスニペットも見つけました(ユーザーSørenRandrupによるこの質問から:

<ConfigurationSettings>
     <Setting name="DiagnosticsConnectionString"
        value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey" />
</ConfigurationSettings>
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);

(設定名は開発者が選択した文字列です)。

これは紛らわしいように見えます-私はそれが同じ設定であるという印象を受けていますが、何らかの理由で異なる人々がそれを異なるように構成します。

ストレージアカウントはどこに指定されていますか?また、上記の2つのスニペットが同じタスクに使用されているように見えるのはなぜですか?

4

4 に答える 4

4

DiagnosticsMonitorが最初にリリースされたとき(1.1または1.2 SDK、IIRC)、RoleEntryPoint(ユーザーコード)から開始されました。これにはいくつかの欠点がありました。つまり、RoleEntryPointがクラッシュした場合、DMがダウンしました。1.3 SDKがリリースされると、デザインが変更され、バックグラウンドの起動タスクとしてDMが開始されました。これにより、DMをコードとは別のプロセスで実行できるため、ユーザーコードによってクラッシュする可能性がなくなります。「Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString」は、Diagnosticsロールプラグインで定義された設定です(bin / pluginsディレクトリを確認してください)。

Diagnosticsプラグインをインポートしてこの接続文字列を設定する以外に何もしない場合、いくつかのデフォルトで診断が有効になりますが、実際には分析のためにストレージアカウントに何も転送されません。

したがって、より完全な解決策は次のとおりです。

  1. DMプラグインを有効にし、有効な接続文字列をWindowsAzureのストレージアカウントに設定します。
  2. リモートで(スクリプト、ManageAxis、Windows Azure MMC、Cerebrataなどのツールを使用して)監視用の構成を必要に応じて設定します*
  3. または、実行時に、RoleEntryPointで、コードを介してモニターを構成する必要があります。

これにより、カウンターやログなどが実際にストレージアカウントに転送されます。この時点で、それを解釈するのはあなた次第です。分析(グラフ、自動スケールなど)を行う製品(ManageAxisなど)がありますが、それ以外の場合は、DMによって生成されたデータをクエリするのは主に自分で行います。

* RoleEntryPointでこれをコーディングするのは好きではなく、監視および保守できるツールがあるため、この方法が好きです。

于 2011-07-12T16:30:25.747 に答える
1

これは、Azureが開発されたときに発生したものだと思います...初期の頃は、診断はデフォルトで開始されていませんでした。これで、古い質問と回答が説明されます。

最新のAPI(1.4)では、最初のメソッドを使用GetDefaultInitialConfiguration ... SetCurrentConfigurationして、監視するものを指定するために使用する必要があると思います。

于 2011-07-12T12:31:20.120 に答える
1

私もこれに苦労したので、ようやく動作するようになったときに次のブログ投稿をまとめました

WebRoles用のSDK1.6を使用したWindowsAzureDiagnostics

于 2011-12-08T20:34:49.763 に答える
0

Azure Diagnosticsの詳細なウォークスルーについては、PDC09でMatthewKernersのプレゼンテーション「WindowsAzureの監視、ログ記録、および管理API」を確認できます。

http://www.microsoftpdc.com/2009/SVC15

于 2012-07-11T16:51:41.820 に答える