Class
SessionMetrics

A SessionMetrics object holds timings and sizes information about a single Session.

Definition

Namespace:Fiddler

Assembly:FiddlerCore.dll

Syntax:

cs-api-definition
public class SessionMetrics

Inheritance: objectSessionMetrics

Inherited Members object.GetType()object.MemberwiseClone()object.Equals(object)object.Equals(object, object)object.ReferenceEquals(object, object)object.GetHashCode()

Constructors

SessionMetrics()

Declaration

cs-api-definition
public SessionMetrics()

Fields

ClientBeginRequest

The time at which the request's first Send() to Fiddler completes

Declaration

cs-api-definition
public DateTime ClientBeginRequest

Field Value

DateTime

ClientBeginResponse

The time at which Fiddler has begun sending the Response to the client (ClientResponseFirstSend)

Declaration

cs-api-definition
public DateTime ClientBeginResponse

Field Value

DateTime

ClientConnected

The time at which the client's HTTP connection to Fiddler was established

Declaration

cs-api-definition
public DateTime ClientConnected

Field Value

DateTime

ClientDoneRequest

The time at which the request to Fiddler completes (aka RequestLastWrite)

Declaration

cs-api-definition
public DateTime ClientDoneRequest

Field Value

DateTime

ClientDoneResponse

The time at which Fiddler has completed sending the Response to the client (ClientResponseLastSend)

Declaration

cs-api-definition
public DateTime ClientDoneResponse

Field Value

DateTime

DNSTime

The number of milliseconds spent waiting for DNS

Declaration

cs-api-definition
public int DNSTime

Field Value

int

FiddlerBeginRequest

The time at which Fiddler begins sending the HTTP request to the server (FiddlerRequestFirstSend)

Declaration

cs-api-definition
public DateTime FiddlerBeginRequest

Field Value

DateTime

FiddlerGotRequestHeaders

The time at which the request headers were received

Declaration

cs-api-definition
public DateTime FiddlerGotRequestHeaders

Field Value

DateTime

FiddlerGotResponseHeaders

The time at which Fiddler received the server's headers

Declaration

cs-api-definition
public DateTime FiddlerGotResponseHeaders

Field Value

DateTime

GatewayDeterminationTime

The number of milliseconds spent determining which gateway should be used to handle this request (Should be mutually exclusive to DNSTime!=0)

Declaration

cs-api-definition
public int GatewayDeterminationTime

Field Value

int

ServerBeginResponse

The time at which Fiddler receives the first byte of the server's response (ServerResponseFirstRead)

Declaration

cs-api-definition
public DateTime ServerBeginResponse

Field Value

DateTime

ServerConnected

The time at which the server connection has been established

Declaration

cs-api-definition
public DateTime ServerConnected

Field Value

DateTime

ServerDoneResponse

The time at which Fiddler has completed receipt of the server's response (ServerResponseLastRead)

Declaration

cs-api-definition
public DateTime ServerDoneResponse

Field Value

DateTime

ServerGotRequest

The time at which Fiddler has completed sending the HTTP request to the server (FiddlerRequestLastSend). BUG: Should be named "FiddlerEndRequest". NOTE: Value here is often misleading due to buffering inside WinSock's send() call.

Declaration

cs-api-definition
public DateTime ServerGotRequest

Field Value

DateTime

TCPConnectTime

The number of milliseconds spent waiting for the server TCP/IP connection establishment

Declaration

cs-api-definition
public int TCPConnectTime

Field Value

int

Properties

CertificateRetreivedOn

The time when the host certificate has been retrieved from the CertMaker

Declaration

cs-api-definition
public DateTime? CertificateRetreivedOn { get; set; }

Property Value

DateTime?

ClientHandshakeDuration

This is the time spend by Fiddler to establish the HTTPS handshake with the client

Declaration

cs-api-definition
public double ClientHandshakeDuration { get; }

Property Value

double

ClientHandshakeEstablished

The time when the HTTPS handshake with the client has been established

Declaration

cs-api-definition
public DateTime? ClientHandshakeEstablished { get; set; }

Property Value

DateTime?

ClientMessagesSize

Total size of outbound messages sent

Declaration

cs-api-definition
public long ClientMessagesSize { get; }

Property Value

long

ClientReads

Declaration

cs-api-definition
public SessionMetrics.NetTimestamps ClientReads { get; }

Property Value

SessionMetrics.NetTimestamps

ConnectDuration

The time spent by Fiddler from the time the client connected to Fiddler to the time all CONNECT related operations have finished

Declaration

cs-api-definition
public double ConnectDuration { get; }

Property Value

double

ConnectFinishedOn

The time when all CONNECT operations have finished This might be greater than ConnectionEstablished timestamp which is the time when the CONNECT was handed to the client

Declaration

cs-api-definition
public DateTime ConnectFinishedOn { get; }

Property Value

DateTime

ConnectRulesDuration

This is the time spent by Fiddler to execute rules on a CONNECT session

Declaration

cs-api-definition
public double ConnectRulesDuration { get; }

Property Value

double

ConnectionEstablishedDuration

This is the processing time by Fiddler needed to establish the CONNECT and is not part of the other CONNECT durations

Declaration

cs-api-definition
public double ConnectionEstablishedDuration { get; }

Property Value

double

ConnectionEstablishedOn

The time when Fiddler returned the CONNECT session to the client

Declaration

cs-api-definition
public DateTime? ConnectionEstablishedOn { get; set; }

Property Value

DateTime?

DownloadBodyDuration

The time Fiddler spent to download the response body

Declaration

cs-api-definition
public double DownloadBodyDuration { get; }

Property Value

double

DownloadHeadersDuration

The time Fiddler spent on downloading the response headers

Declaration

cs-api-definition
public double DownloadHeadersDuration { get; }

Property Value

double

Duration

The total amount of time spent for the Session in milliseconds. (ClientDoneResponse - ClientBeginRequest).

Declaration

cs-api-definition
public long Duration { get; }

Property Value

long

EnableHighResolutionTimers

Enables High-Resolution timers, which are bad for battery-life but good for the accuracy of timestamps. See http://technet.microsoft.com/en-us/sysinternals/bb897568 for the ClockRes utility that shows current clock resolution. NB: Exiting Fiddler reverts this to the default value.

Declaration

cs-api-definition
public static bool EnableHighResolutionTimers { get; set; }

Property Value

bool

FiddlerSpecificDuration

The time spent on proxy related or Fiddler specific tasks

Declaration

cs-api-definition
public double FiddlerSpecificDuration { get; }

Property Value

double

FirstInboundMessageReceivedOn

The time when the first inbound message was received or null in case there is no such

Declaration

cs-api-definition
public DateTime? FirstInboundMessageReceivedOn { get; }

Property Value

DateTime?

FirstMessageTime

The earliest message event of a streaming session

Declaration

cs-api-definition
public DateTime? FirstMessageTime { get; }

Property Value

DateTime?

FirstOutboundMessageSentOn

The time when the first outbound message was sent or null in case there is no such

Declaration

cs-api-definition
public DateTime? FirstOutboundMessageSentOn { get; }

Property Value

DateTime?

HandshakeDuration

The time from which the request started to when the tunnel was opened for a streaming session

Declaration

cs-api-definition
public double HandshakeDuration { get; }

Property Value

double

HeadersRulesProcessingDuration

The time Fiddler spent on processing rules for the response headers

Declaration

cs-api-definition
public long HeadersRulesProcessingDuration { get; set; }

Property Value

long

IsConnect

Indicates whether this timings object contains timings for a CONNECT session

Declaration

cs-api-definition
public bool IsConnect { get; set; }

Property Value

bool

IsDataIncomplete

Used to show a warning in the client that some of the data might be missing Will be true for older SAZ archives

Declaration

cs-api-definition
public bool IsDataIncomplete { get; set; }

Property Value

bool

IsDataModifiedByRules

Indicated whether the session's data has been modified by a rule

Declaration

cs-api-definition
public bool IsDataModifiedByRules { get; set; }

Property Value

bool

IsFiddlerGenerated

Indicates whether the session that this timings objects is for is a fiddler-generated one

Declaration

cs-api-definition
public bool IsFiddlerGenerated { get; set; }

Property Value

bool

IsOpen

Indicates whether the current session has not finished yet

Declaration

cs-api-definition
public bool IsOpen { get; set; }

Property Value

bool

IsReusedConnect

Indicates whether this session uses a tunnel that has been established by a previous session

Declaration

cs-api-definition
public bool IsReusedConnect { get; set; }

Property Value

bool

LastInboundMessageTransferredOn

The time when the last inbound message was transferred or null in case there is no such

Declaration

cs-api-definition
public DateTime? LastInboundMessageTransferredOn { get; }

Property Value

DateTime?

LastMessageTime

The last message event of a streaming session

Declaration

cs-api-definition
public DateTime? LastMessageTime { get; }

Property Value

DateTime?

LastOutboundMessageDeliveredOn

The time when the last outbound message was delivered or null in case there is no such

Declaration

cs-api-definition
public DateTime? LastOutboundMessageDeliveredOn { get; }

Property Value

DateTime?

MessageTransferData

The object that contains the information for messages transferred timings for streaming sessions

Declaration

cs-api-definition
public SessionMetrics.MessagesData MessageTransferData { get; set; }

Property Value

SessionMetrics.MessagesData

MessageTransferDuration

The time spend on message transfer for straming session

Declaration

cs-api-definition
public double? MessageTransferDuration { get; }

Property Value

double?

MessagesSize

Total size of messages transferred

Declaration

cs-api-definition
public long MessagesSize { get; }

Property Value

long

ReceiveRequestDuration

The time spent by Fiddler to receive the request data from the client

Declaration

cs-api-definition
public double ReceiveRequestDuration { get; }

Property Value

double

RemoteMessagesSize

Total size of messages received

Declaration

cs-api-definition
public long RemoteMessagesSize { get; }

Property Value

long

RemoteProcessingDuration

The time the server spent processing the request before it started sending the response to Fiddler

Declaration

cs-api-definition
public double RemoteProcessingDuration { get; }

Property Value

double

ReplyWithTunnelOn

The time when Fiddler returned the self-generated CONNECT session to the client (mock server)

Declaration

cs-api-definition
public DateTime? ReplyWithTunnelOn { get; set; }

Property Value

DateTime?

RequestBodySize

The size of request body transferred by the transport layer

Declaration

cs-api-definition
public long RequestBodySize { get; set; }

Property Value

long

RequestBreakpointDuration

The time which the session spent on a request breakpoint

Declaration

cs-api-definition
public long RequestBreakpointDuration { get; set; }

Property Value

long

RequestDuration

The time between the request strated and the time it finished

Declaration

cs-api-definition
public double RequestDuration { get; }

Property Value

double

RequestHeadersSize

The size of request headers transferred by the transport layer

Declaration

cs-api-definition
public int RequestHeadersSize { get; set; }

Property Value

int

RequestRulesProcessingDuration

The time spent by Fiddler on executing request rules for the current session

Declaration

cs-api-definition
public long RequestRulesProcessingDuration { get; set; }

Property Value

long

RequestSize

The size of the whole request received

Declaration

cs-api-definition
public long RequestSize { get; }

Property Value

long

RequestStartedOn

The time when we consider the request as started If the CONNECT was established by this session we consider the request has started when the CONNECT finished In that case the difference between that time and the actual time the client began the request is what we call Stalled duration

Declaration

cs-api-definition
public DateTime RequestStartedOn { get; }

Property Value

DateTime

ResponseBodySize

The size of response body transferred by the transport layer

Declaration

cs-api-definition
public long ResponseBodySize { get; set; }

Property Value

long

ResponseBreakpointDuration

The time Fiddler spent on a response breakpoint

Declaration

cs-api-definition
public long ResponseBreakpointDuration { get; set; }

Property Value

long

ResponseDuration

The time between the server got the rquest and Fiddler handed the response to the client

Declaration

cs-api-definition
public double ResponseDuration { get; }

Property Value

double

ResponseHeadersSize

The size of response headers transferred by the transport layer

Declaration

cs-api-definition
public int ResponseHeadersSize { get; set; }

Property Value

int

ResponseRulesProcessingDuration

The time Fiddler spent on processing response rules

Declaration

cs-api-definition
public long ResponseRulesProcessingDuration { get; set; }

Property Value

long

ResponseSize

The size of the whole response being transferred

Declaration

cs-api-definition
public long ResponseSize { get; }

Property Value

long

RetrieveCertificateDuration

This is the time spend by Fiddler to retrieve the host certificate from the CertMaker

Declaration

cs-api-definition
public double RetrieveCertificateDuration { get; }

Property Value

double

SendRequestDuration

The time which Fiddler spent to deliver the request to the server

Declaration

cs-api-definition
public double SendRequestDuration { get; }

Property Value

double

ServerHandshakeDuration

The number of milliseconds elapsed while performing the HTTPS handshake with the server

Declaration

cs-api-definition
public double ServerHandshakeDuration { get; }

Property Value

double

ServerHandshakeEstablished

The time when the HTTPS handshake with the server has been established

Declaration

cs-api-definition
public DateTime? ServerHandshakeEstablished { get; set; }

Property Value

DateTime?

ServerReads

Declaration

cs-api-definition
public SessionMetrics.NetTimestamps ServerReads { get; }

Property Value

SessionMetrics.NetTimestamps

SessionFinishedOn

The time when the session finished For HTTP sessions this when the response was transferred back to the client For streaming sessions is when the message transfer is done and the tunnel is closed

Declaration

cs-api-definition
public DateTime SessionFinishedOn { get; }

Property Value

DateTime

SessionStartedOn

The beginning of the session which depending on whether the CONNECT is reused or not is either when the client connected or when the request began

Declaration

cs-api-definition
public DateTime SessionStartedOn { get; }

Property Value

DateTime

StalledDuration

The time that the client delayed the first request after the CONNECT has been delivered

Declaration

cs-api-definition
public double StalledDuration { get; }

Property Value

double

TTFB

The time between Fiddler started sending the request to the server and the server started sending back the response

Declaration

cs-api-definition
public double TTFB { get; }

Property Value

double

TTLB

The time between Fiddler started sending the request to the server and the server finished sending the response back

Declaration

cs-api-definition
public double TTLB { get; }

Property Value

double

TotalDuration

The time the session lasted from start to finish

Declaration

cs-api-definition
public double TotalDuration { get; }

Property Value

double

TotalSize

Total size of data transferred icluding request, response and messages

Declaration

cs-api-definition
public long TotalSize { get; }

Property Value

long

TotalWithoutFiddlerDuration

The time the session would take without the proxy related and Fiddler-specific work

Declaration

cs-api-definition
public double TotalWithoutFiddlerDuration { get; }

Property Value

double

TrailersSize

The size of trailers transferred by the transport layer

Declaration

cs-api-definition
public int TrailersSize { get; set; }

Property Value

int

TransferDuration

The time Fiddler spent to trasfer the response back to the clinet

Declaration

cs-api-definition
public double TransferDuration { get; }

Property Value

double

TunnelClosedOn

The time when the tunnel was closed in case of straming session or CONNECT

Declaration

cs-api-definition
public DateTime? TunnelClosedOn { get; set; }

Property Value

DateTime?

TunnelOpenedOn

The time when the tunnel opened in case the session is a tunnel (CONNECT or streaming session)

Declaration

cs-api-definition
public DateTime? TunnelOpenedOn { get; set; }

Property Value

DateTime?

Methods

IfPositive(double)

Return the number if positive or 0

Declaration

cs-api-definition
public static double IfPositive(double duration)

Parameters

duration

double

Returns

double

SafePeriodDuration(DateTime, DateTime)

Get the milliseconds between two dates or 0 if one of the dates is the beginning of time or the time is negative

Declaration

cs-api-definition
public static double SafePeriodDuration(DateTime start, DateTime end)

Parameters

start

DateTime

start of the period

end

DateTime

end of the period

Returns

double

ToString()

Override of ToString shows timer info in a fancy format

Declaration

cs-api-definition
public override string ToString()

Returns

string

Timing information as a string

Overrides object.ToString()

ToString(bool)

Override of ToString shows timer info in a fancy format

Declaration

cs-api-definition
public string ToString(bool bMultiLine)

Parameters

bMultiLine

bool

TRUE if the result can contain linebreaks; false if comma-delimited format preferred

Returns

string

Timing information as a string

In this article
DefinitionConstructorsSessionMetrics()FieldsClientBeginRequestClientBeginResponseClientConnectedClientDoneRequestClientDoneResponseDNSTimeFiddlerBeginRequestFiddlerGotRequestHeadersFiddlerGotResponseHeadersGatewayDeterminationTimeServerBeginResponseServerConnectedServerDoneResponseServerGotRequestTCPConnectTimePropertiesCertificateRetreivedOnClientHandshakeDurationClientHandshakeEstablishedClientMessagesSizeClientReadsConnectDurationConnectFinishedOnConnectRulesDurationConnectionEstablishedDurationConnectionEstablishedOnDownloadBodyDurationDownloadHeadersDurationDurationEnableHighResolutionTimersFiddlerSpecificDurationFirstInboundMessageReceivedOnFirstMessageTimeFirstOutboundMessageSentOnHandshakeDurationHeadersRulesProcessingDurationIsConnectIsDataIncompleteIsDataModifiedByRulesIsFiddlerGeneratedIsOpenIsReusedConnectLastInboundMessageTransferredOnLastMessageTimeLastOutboundMessageDeliveredOnMessageTransferDataMessageTransferDurationMessagesSizeReceiveRequestDurationRemoteMessagesSizeRemoteProcessingDurationReplyWithTunnelOnRequestBodySizeRequestBreakpointDurationRequestDurationRequestHeadersSizeRequestRulesProcessingDurationRequestSizeRequestStartedOnResponseBodySizeResponseBreakpointDurationResponseDurationResponseHeadersSizeResponseRulesProcessingDurationResponseSizeRetrieveCertificateDurationSendRequestDurationServerHandshakeDurationServerHandshakeEstablishedServerReadsSessionFinishedOnSessionStartedOnStalledDurationTTFBTTLBTotalDurationTotalSizeTotalWithoutFiddlerDurationTrailersSizeTransferDurationTunnelClosedOnTunnelOpenedOnMethodsIfPositive(double)SafePeriodDuration(DateTime, DateTime)ToString()ToString(bool)
Not finding the help you need?
Contact Support