Azure Managed Cache Service の ClientDiagnosticLevel について

注意

アプリケーションに適した Azure Cache オファリングの選択に関するガイダンスについては、自分に適 した Azure Cache オファリングを参照してください。

Managed Cache Serviceクライアント アプリケーションは、診断レベルを使用して診断データ収集用に構成されます。 この診断レベルは、データ収集のレベルを構成するための 1 つの設定として使用されます。 このトピックでは、Managed Cache Serviceアプリケーションのトラブルシューティング手順と診断の概要について説明します。

重要

Managed Cache Service リリースでは、このトピックで説明する ClientDiagnosticLevel と関連するクライアントの手順は、ロールベースのクラウド サービス キャッシュ クライアントにのみ適用されます。

Managed Cache Service アプリケーションのトラブルシューティングと診断

Azure で実行されているアプリケーションは、デバッグが困難なマルチインスタンス アプリケーションが広く分散されています。 このような種類のアプリケーションの問題を解決するには、高度なツールや方法が必要です。 Azure アプリケーションのトラブルシューティングについては、このトピックの範囲を超えていますが、詳細については、 Azure での診断とデバッグに関するページを参照してください

トラブルシューティングのために診断データを収集するようにManaged Cache Serviceアプリケーションを構成するには、診断レベルを構成し、ロールの起動時にキャッシュ診断を構成する必要があります。 このトピックでは、Managed Cache Service アプリケーションのこれらの手順の概要について説明します。

  • クライアント診断レベルの構成

  • ロール開始時のキャッシュ診断の構成

  • 診断レベル別のパフォーマンス カウンター

クライアント診断レベルの構成

Managed Cache Serviceは、診断データ収集の量を構成するために使用される 5 つのクライアント診断レベルを提供します。 診断レベルの範囲は 0 ~ 4 です。この数値は、キャッシュ サーバーとクライアント用に収集される診断情報の量を示します。 各診断レベルには、Managed Cache Service アプリケーションの正常性を監視するために使用できるパフォーマンス カウンター、イベント ログ、トレース、クラッシュ ダンプの設定の事前構成されたセットが含まれています。

クライアント診断レベル 収集される診断データ

0

非常に重大/致命的なサーバー ログのみ。

1

使用パターン、キャッシュ システムのヘルス、および任意のエラーの可能性を評価するときに役立つ診断データ。 これは既定の構成レベルです。

2

すべての要求と重要なシステム情報の詳細な診断データ。

3

詳細度がさらに高く、システム情報を含む診断データ。

4

すべての要求とシステム情報の最も詳細度が高いログ。

キャッシュ クライアントとキャッシュ サーバーの診断に対応する 2 種類のキャッシュ診断レベルがあります。 DiagnosticLevel はキャッシュ サーバー診断を表し、 ClientDiagnosticLevel はキャッシュ クライアント診断を表します。 各レベルで、異なるパフォーマンス カウンター、ログ、トレース、クラッシュ ダンプの設定を構成します。 これらの診断レベルは、アプリケーション用の ServiceConfiguration.cscfg ファイルで構成します。更新した ServiceConfiguration.cscfg ファイルをデプロイすることで、実行中のクラウド アプリケーションの診断レベルを変更できます。

キャッシュ クライアントの ClientDiagnosticLevel レベルは、キャッシュ クライアントであるロールの構成セクションの ServiceConfiguration.cscfg で指定されます。 この設定は、ロールがキャッシュ クライアントとして機能するように構成されている場合に、Managed Cache Service NuGet パッケージによって追加されます。

注意

Managed Cache Service NuGet パッケージを使用してキャッシュ クライアントを構成する方法の詳細については、「方法: Azure Managed Cache Service用のキャッシュ クライアントを構成する」を参照してください。

既定の ClientDiagnosticLevel は 1 で、ロールに ClientDiagnosticLevel が存在しない場合は、 ClientDiagnosticLevel 1 が使用されます。 ClientDiagnosticLevel を変更するには、ServiceConfiguration.cscfg のロールの ClientDiagnosticLevel 設定を変更します。 次の例は、WebRole1ClientDiagnosticLevel が 1 の ServiceConfiguration.cscfg ファイルのセクションです。

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

次の表は、各クライアント診断レベルで収集される診断データの一覧です。

注意

クライアント診断レベルのクラッシュ ダンプ設定は、Memcache クライアント shim を使用するキャッシュ クライアントにのみ関連します。 Memcache クライアント以外の場合、クラッシュ ダンプは収集されません。 Memcache クライアント shim の詳細については、「Azure Managed Cache Service で Memcache アプリを実行する」を参照してください。

ClientDiagnosticLevel 収集したデータ

0

  • ログ レベル: 重大

  • パフォーマンス カウンターなし

  • イベント ログの登録なし

  • 少数のクラッシュ ダンプ

1

2

3

4

注意

Azure エミュレーター Managed Cache Serviceクライアント アプリケーションを実行すると、複数のロール インスタンスがある場合でも、すべてのロール インスタンスのトレースが *_IN_0 フォルダーの下に収集されます。 この動作は仕様です。 Managed Cache Serviceアプリケーションが Azure でホストされている場合、各クライアント ロール インスタンスのトレースは、ロール インスタンスの各フォルダーにあります。

ロール開始時のキャッシュ診断の構成

キャッシュ診断データの収集を開始するには、ロールの開始時に次のコードを呼び出す必要があります。 キャッシュ診断データを収集するには、キャッシュ クライアントまたはキャッシュ サーバーである各ロールにこのコードを追加する必要があります。 このコードをホストする便利な場所の 1 つは、次の例に示すように、ロールの OnStart オーバーライドにあります。

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}
Public Overrides Function OnStart() As Boolean

    ' Existing OnStart override code omitted for clarity.

    Dim dmConfig As DiagnosticMonitorConfiguration = _
        DiagnosticMonitor.GetDefaultInitialConfiguration()

    ' Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig)

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", _
        dmConfig)

    Return MyBase.OnStart()

End Function

O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics メソッドは、診断データのキャッシュのコレクションを構成します。 このメソッドを呼び出さない場合、キャッシュ診断データは収集されません。 CacheDiagnostics クラスを使用するには、C:\Program Files\Microsoft SDK\Azure\.NET SDK\[Current SDK Version]\ref\Caching にあるMicrosoft.ApplicationServer.Caching.AzureCommon.dllへの参照を追加し、次の using (または Imports) ステートメント追加します。

using Microsoft.ApplicationServer.Caching.AzureCommon;
Imports Microsoft.ApplicationServer.Caching.AzureCommon

注意

Managed Cache Service NuGet パッケージを使用してロールがキャッシュ クライアントとして構成されている場合は、Microsoft.ApplicationServer.Caching.AzureCommon.dll アセンブリ参照が既に追加されています。

既存のロールにキャッシュを追加していて、診断構成コードが既に存在する場合は、O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start の呼び出しの前に、O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics への呼び出しを既存の診断スタートアップ コードに追加できます。

警告

O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics と O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start の両方を呼び出すことは、Managed Cache Service アプリケーションでの診断データ収集に必要です。 ロールの開始時にこれらの両方のメソッドを呼び出さない場合、キャッシュ診断データは収集されません。

診断レベル別のパフォーマンス カウンター

次のセクションでは、サーバーとクライアントの各診断レベルに含まれるパフォーマンス カウンターの一覧を示します。 Managed Cache Serviceカウンターとパフォーマンス カウンターの両方が含まれています。 Managed Cache Service パフォーマンス カウンターの詳細な一覧については、「Azure Managed Cache Serviceの監視」を参照してください。 パフォーマンス カウンターの詳細については、.NET Frameworkのパフォーマンス カウンターを参照してください。

  • クライアント診断レベル 1 のパフォーマンス カウンター

  • クライアント診断レベル 2、3、および 4 のパフォーマンス カウンター

クライアント診断レベル 1 のパフォーマンス カウンター

ClientDiagnosticLevel 1 には、次のパフォーマンス カウンターが含まれています。

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Requests

クライアント診断レベル 2、3、および 4 のパフォーマンス カウンター

ClientDiagnosticLevel 2、3、および 4 には、次のパフォーマンス カウンターが含まれています。

  • \Azure Caching:Client Host\Requests

  • \Azure Caching:Client Host\Requests / sec

  • \Azure Caching:Client Host\Server Responses Dropped / sec

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Failure Exceptions / sec

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client Host\Read Requests

  • \Azure Caching:Client Host\Write Requests

  • \Azure Caching:Client Host\Bytes Received / sec

  • \Azure Caching:Client Host\Bytes Sent / sec

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Local Cache Filled Percentage

  • \Azure Caching:Client Host\Local Cache Hits Percentage

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Total Local Cache Objects

  • \Azure Caching:Client Host\Total Notifications Received

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions / sec

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Retry Exceptions / sec

  • \Azure Caching:Client Host\Total Connection Requests Failed

  • \Azure Caching:Client Host\Network Exceptions

  • \Azure Caching:Client Host\Network Exceptions / sec

  • \Azure Caching:Client Host\Current Waiting Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Requests

  • \Azure Caching:Client(*)\Requests / sec

  • \Azure Caching:Client(*)\Server Responses Dropped / sec

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Failure Exceptions / sec

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client(*)\Read Requests

  • \Azure Caching:Client(*)\Write Requests

  • \Azure Caching:Client(*)\Bytes Received / sec

  • \Azure Caching:Client(*)\Bytes Sent / sec

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Local Cache Filled Percentage

  • \Azure Caching:Client(*)\Local Cache Hits Percentage

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Total Local Cache Objects

  • \Azure Caching:Client(*)\Total Notifications Received

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions / sec

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Retry Exceptions / sec

  • \Azure Caching:Client(*)\Total Connection Requests Failed

  • \Azure Caching:Client(*)\Network Exceptions

  • \Azure Caching:Client(*)\Network Exceptions / sec

  • \Azure Caching:Client(*)\Current Waiting Requests

参照

リファレンス

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor

概念

Azure Managed Cache Service の監視

その他の参照情報

.NET Framework のパフォーマンス カウンター
Azure での診断およびデバッグ