WebProcessStatistics クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
実行中のプロセスの状態の査定に関する情報を提供します。
public ref class WebProcessStatistics
public class WebProcessStatistics
type WebProcessStatistics = class
Public Class WebProcessStatistics
- 継承
-
WebProcessStatistics
例
次のコード例には、2 つの部分があります。 1 つ目は、ASP.NET が型を使用するカスタム イベントを使用できるようにする構成ファイルの WebProcessStatistics 抜粋です。 2 つ目は、このカスタム イベントを実装する方法を示しています。
カスタム イベントが適切なタイミングで発生していることを確認します。つまり、置き換える同等のシステム正常性イベントが発生する場合です。
<healthMonitoring
enabled="true" heartBeatInterval="0">
<eventMappings>
<add name="SampleProcessStatistics" type="SamplesAspNet.SampleWebProcessStatistics, webprocessstatistics, Version=1.0.1585.27289, Culture=neutral, PublicKeyToken=3648e5c763a8239f, processorArchitecture=MSIL"/>
</eventMappings>
<rules>
<add
name="Custom Process Statistics"
eventName="SampleProcessStatistics"
provider="EventLogProvider"
profile="Default"/>
</rules>
</healthMonitoring>
using System;
using System.Text;
using System.Web;
using System.Web.Management;
namespace SamplesAspNet
{
// Implements a custom WebBaseEvent type that
// uses the WebProcessStatistics.
public class SampleWebProcessStatistics :
WebBaseEvent
{
private StringBuilder eventInfo;
private static WebProcessStatistics processStatistics;
// Instantiate the SampleWebProcessStatistics
// type.
public SampleWebProcessStatistics(string msg,
object eventSource, int eventCode):
base(msg, eventSource, eventCode)
{
// Perform custom initialization.
string customMsg =
string.Format("Event created at: {0}",
EventTime.ToString());
eventInfo = new StringBuilder();
eventInfo.AppendLine(customMsg);
// Instantiate the WebProcessStatistics
// type.
processStatistics = new WebProcessStatistics();
}
// Raises the event.
public override void Raise()
{
// Perform custom processing.
eventInfo.Append(
string.Format(
"Event raised at: {0}\n", EventTime.ToString()));
// Raise the event.
base.Raise();
}
public string GetAppDomainCount()
{
// Get the app domain count.
return (string.Format(
"Application domain count: {0}",
processStatistics.AppDomainCount.ToString()));
}
public string GetManagedHeapSize()
{
// Get the mamaged heap size.
return (string.Format(
"Managed heap size: {0}",
processStatistics.ManagedHeapSize.ToString()));
}
public string GetPeakWorkingSet()
{
// Get the peak working set.
return (string.Format(
"Peak working set: {0}",
processStatistics.PeakWorkingSet.ToString()));
}
public string GetProcessStartTime()
{
// Get the process start time.
return (string.Format(
"Process start time: {0}",
processStatistics.ProcessStartTime.ToString()));
}
public string GetRequestsExecuting()
{
// Get the requests in execution.
return (string.Format(
"Requests executing: {0}",
processStatistics.RequestsExecuting.ToString()));
}
public string GetRequestsQueued()
{
// Get the requests queued.
return (string.Format(
"Requests queued: {0}",
processStatistics.RequestsQueued.ToString()));
}
public string GetRequestsRejected()
{
// Get the requests rejected.
return (string.Format(
"Requests rejected: {0}",
processStatistics.RequestsRejected.ToString()));
}
public string GetThreadCount()
{
// Get the thread count.
return (string.Format(
"Thread count: {0}",
processStatistics.ThreadCount.ToString()));
}
public string GetWorkingSet()
{
// Get the working set.
return (string.Format(
"Working set: {0}",
processStatistics.WorkingSet.ToString()));
}
//Formats Web request event information.
public override void FormatCustomEventDetails(
WebEventFormatter formatter)
{
base.FormatCustomEventDetails(formatter);
// Add custom data.
formatter.AppendLine("");
formatter.AppendLine(
"Custom Process Statistics:");
formatter.IndentationLevel += 1;
// Get the process statistics.
formatter.AppendLine(GetAppDomainCount());
formatter.AppendLine(GetManagedHeapSize());
formatter.AppendLine(GetPeakWorkingSet());
formatter.AppendLine(GetProcessStartTime());
formatter.AppendLine(GetRequestsExecuting());
formatter.AppendLine(GetRequestsQueued());
formatter.AppendLine(GetRequestsRejected());
formatter.AppendLine(GetThreadCount());
formatter.AppendLine(GetWorkingSet());
formatter.IndentationLevel -= 1;
formatter.AppendLine(eventInfo.ToString());
}
}
}
Imports System.Text
Imports System.Web
Imports System.Web.Management
' Implements a custom WebBaseEvent type that
' uses the WebProcessStatistics.
Public Class SampleWebProcessStatistics
Inherits WebBaseEvent
Private eventInfo As StringBuilder
Private Shared processStatistics As WebProcessStatistics
' Instantiate the SampleWebProcessStatistics
' type.
Public Sub New(ByVal msg As String, ByVal eventSource As Object, ByVal eventCode As Integer)
MyBase.New(msg, eventSource, eventCode)
' Perform custom initialization.
Dim customMsg As String = String.Format("Event created at: {0}", EventTime.ToString())
eventInfo = New StringBuilder()
eventInfo.AppendLine(customMsg)
' Instantiate the WebProcessStatistics
' type.
processStatistics = New WebProcessStatistics()
End Sub
' Raises the event.
Public Overrides Sub Raise()
' Perform custom processing.
eventInfo.Append(String.Format( _
"Event raised at: {0}" + _
ControlChars.Lf, EventTime.ToString()))
' Raise the event.
MyBase.Raise()
End Sub
Public Function GetAppDomainCount() As String
' Get the app domain count.
Return String.Format( _
"Application domain count: {0}", _
processStatistics.AppDomainCount.ToString())
End Function 'GetAppDomainCount
Public Function GetManagedHeapSize() As String
' Get the mamaged heap size.
Return String.Format( _
"Managed heap size: {0}", _
processStatistics.ManagedHeapSize.ToString())
End Function 'GetManagedHeapSize
Public Function GetPeakWorkingSet() As String
' Get the peak working set.
Return String.Format( _
"Peak working set: {0}", _
processStatistics.PeakWorkingSet.ToString())
End Function 'GetPeakWorkingSet
Public Function GetProcessStartTime() As String
' Get the process start time.
Return String.Format( _
"Process start time: {0}", _
processStatistics.ProcessStartTime.ToString())
End Function 'GetProcessStartTime
Public Function GetRequestsExecuting() As String
' Get the requests in execution.
Return String.Format( _
"Requests executing: {0}", _
processStatistics.RequestsExecuting.ToString())
End Function 'GetRequestsExecuting
Public Function GetRequestsQueued() As String
' Get the requests queued.
Return String.Format( _
"Requests queued: {0}", _
processStatistics.RequestsQueued.ToString())
End Function 'GetRequestsQueued
Public Function GetRequestsRejected() As String
' Get the requests rejected.
Return String.Format( _
"Requests rejected: {0}", _
processStatistics.RequestsRejected.ToString())
End Function 'GetRequestsRejected
Public Function GetThreadCount() As String
' Get the thread count.
Return String.Format( _
"Thread count: {0}", _
processStatistics.ThreadCount.ToString())
End Function 'GetThreadCount
Public Function GetWorkingSet() As String
' Get the working set.
Return String.Format( _
"Working set: {0}", _
processStatistics.WorkingSet.ToString())
End Function 'GetWorkingSet
'Formats Web request event information.
Public Overrides Sub FormatCustomEventDetails( _
ByVal formatter As WebEventFormatter)
MyBase.FormatCustomEventDetails(formatter)
' Add custom data.
formatter.AppendLine("")
formatter.AppendLine("Custom Process Statistics:")
formatter.IndentationLevel += 1
' Get the process statistics.
formatter.AppendLine(GetAppDomainCount())
formatter.AppendLine(GetManagedHeapSize())
formatter.AppendLine(GetPeakWorkingSet())
formatter.AppendLine(GetProcessStartTime())
formatter.AppendLine(GetRequestsExecuting())
formatter.AppendLine(GetRequestsQueued())
formatter.AppendLine(GetRequestsRejected())
formatter.AppendLine(GetThreadCount())
formatter.AppendLine(GetWorkingSet())
formatter.IndentationLevel -= 1
formatter.AppendLine(eventInfo.ToString())
End Sub
End Class
注釈
ASP.NET 正常性の監視により、運用スタッフと運用スタッフはデプロイされた Web アプリケーションを管理できます。 System.Web.Management名前空間には、アプリケーションの正常性状態データのパッケージ化を担当する正常性イベントの種類と、このデータの処理を担当するプロバイダーの種類が含まれています。 また、正常性イベントの管理中に役立つサポート型も含まれています。
クラスのインスタンスには、 WebProcessStatistics 型を使用して取得される情報が WebHeartbeatEvent 含まれています。
注意
ほとんどの場合、実装されている ASP.NET の正常性監視の種類を使用でき、構成セクションで値を指定して正常性監視システムを healthMonitoring
制御します。 正常性監視の種類から派生して、独自のカスタム イベントとプロバイダーを作成することもできます。 カスタム イベント クラスを作成する例については、このトピックの例を参照してください。
プロセス統計を含むハートビート イベントをログに記録するために ASP.NET を有効にするために使用できる構成ファイルの抜粋を次に示します。
<healthMonitoring
enabled="true" heartBeatInterval="100">
<rules>
<add
name="Process Statistics"
eventName="Heartbeats"
provider="EventLogProvider"
profile="Default"/>
</rules>
</healthMonitoring>
コンストラクター
WebProcessStatistics() |
WebProcessStatistics クラスの新しいインスタンスを初期化します。 |
プロパティ
AppDomainCount |
プロセス内のアプリケーション ドメインの数を取得します。 |
ManagedHeapSize |
マネージド ヒープのサイズを取得します。 |
PeakWorkingSet |
プロセスの有効期間における現在までのピーク ワーキング セットを取得します。 |
ProcessStartTime |
プロセスが開始された時刻を取得します。 |
RequestsExecuting |
現在実行中の要求数を取得します。 |
RequestsQueued |
処理待ちの要求数を取得します。 |
RequestsRejected |
拒否された要求数を取得します。 |
ThreadCount |
プロセス スレッド カウントの総数を取得します。 |
WorkingSet |
プロセスのワーキング セットを取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
FormatToString(WebEventFormatter) |
プロセスの統計情報を所定の形式にします。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET