Class SessionMetrics
A SessionMetrics object holds timings and sizes information about a single Session.
Inheritance
Namespace: Fiddler
Assembly: FiddlerCore.dll
Syntax
public class SessionMetrics : Object
Constructors
SessionMetrics()
Declaration
public SessionMetrics()
Fields
ClientBeginRequest
The time at which the request's first Send() to Fiddler completes
Declaration
public DateTime ClientBeginRequest
Field Value
System.
|
ClientBeginResponse
The time at which Fiddler has begun sending the Response to the client (ClientResponseFirstSend)
Declaration
public DateTime ClientBeginResponse
Field Value
System.
|
ClientConnected
The time at which the client's HTTP connection to Fiddler was established
Declaration
public DateTime ClientConnected
Field Value
System.
|
ClientDoneRequest
The time at which the request to Fiddler completes (aka RequestLastWrite)
Declaration
public DateTime ClientDoneRequest
Field Value
System.
|
ClientDoneResponse
The time at which Fiddler has completed sending the Response to the client (ClientResponseLastSend)
Declaration
public DateTime ClientDoneResponse
Field Value
System.
|
DNSTime
The number of milliseconds spent waiting for DNS
Declaration
public int DNSTime
Field Value
System.
|
FiddlerBeginRequest
The time at which Fiddler begins sending the HTTP request to the server (FiddlerRequestFirstSend)
Declaration
public DateTime FiddlerBeginRequest
Field Value
System.
|
FiddlerGotRequestHeaders
The time at which the request headers were received
Declaration
public DateTime FiddlerGotRequestHeaders
Field Value
System.
|
FiddlerGotResponseHeaders
The time at which Fiddler received the server's headers
Declaration
public DateTime FiddlerGotResponseHeaders
Field Value
System.
|
GatewayDeterminationTime
The number of milliseconds spent determining which gateway should be used to handle this request (Should be mutually exclusive to DNSTime!=0)
Declaration
public int GatewayDeterminationTime
Field Value
System.
|
ServerBeginResponse
The time at which Fiddler receives the first byte of the server's response (ServerResponseFirstRead)
Declaration
public DateTime ServerBeginResponse
Field Value
System.
|
ServerConnected
The time at which the server connection has been established
Declaration
public DateTime ServerConnected
Field Value
System.
|
ServerDoneResponse
The time at which Fiddler has completed receipt of the server's response (ServerResponseLastRead)
Declaration
public DateTime ServerDoneResponse
Field Value
System.
|
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
public DateTime ServerGotRequest
Field Value
System.
|
TCPConnectTime
The number of milliseconds spent waiting for the server TCP/IP connection establishment
Declaration
public int TCPConnectTime
Field Value
System.
|
Properties
CertificateRetreivedOn
The time when the host certificate has been retrieved from the CertMaker
Declaration
public Nullable<DateTime> CertificateRetreivedOn { get; set; }
Property Value
System.
|
ClientHandshakeDuration
This is the time spend by Fiddler to establish the HTTPS handshake with the client
Declaration
public double ClientHandshakeDuration { get; }
Property Value
System.
|
ClientHandshakeEstablished
The time when the HTTPS handshake with the client has been established
Declaration
public Nullable<DateTime> ClientHandshakeEstablished { get; set; }
Property Value
System.
|
ClientMessagesSize
Total size of outbound messages sent
Declaration
public long ClientMessagesSize { get; }
Property Value
System.
|
ClientReads
Declaration
public SessionMetrics.NetTimestamps ClientReads { get; }
Property Value
ConnectDuration
The time spent by Fiddler from the time the client connected to Fiddler to the time all CONNECT related operations have finished
Declaration
public double ConnectDuration { get; }
Property Value
System.
|
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
public DateTime ConnectFinishedOn { get; }
Property Value
System.
|
ConnectionEstablishedDuration
This is the processing time by Fiddler needed to establish the CONNECT and is not part of the other CONNECT durations
Declaration
public double ConnectionEstablishedDuration { get; }
Property Value
System.
|
ConnectionEstablishedOn
The time when Fiddler returned the CONNECT session to the client
Declaration
public Nullable<DateTime> ConnectionEstablishedOn { get; set; }
Property Value
System.
|
ConnectRulesDuration
This is the time spent by Fiddler to execute rules on a CONNECT session
Declaration
public double ConnectRulesDuration { get; }
Property Value
System.
|
DownloadBodyDuration
The time Fiddler spent to download the response body
Declaration
public double DownloadBodyDuration { get; }
Property Value
System.
|
DownloadHeadersDuration
The time Fiddler spent on downloading the response headers
Declaration
public double DownloadHeadersDuration { get; }
Property Value
System.
|
Duration
The total amount of time spent for the Session in milliseconds. (ClientDoneResponse - ClientBeginRequest).
Declaration
public long Duration { get; }
Property Value
System.
|
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
public static bool EnableHighResolutionTimers { get; set; }
Property Value
System.
|
FiddlerSpecificDuration
The time spent on proxy related or Fiddler specific tasks
Declaration
public double FiddlerSpecificDuration { get; }
Property Value
System.
|
FirstInboundMessageReceivedOn
The time when the first inbound message was received or null in case there is no such
Declaration
public Nullable<DateTime> FirstInboundMessageReceivedOn { get; }
Property Value
System.
|
FirstMessageTime
The earliest message event of a streaming session
Declaration
public Nullable<DateTime> FirstMessageTime { get; }
Property Value
System.
|
FirstOutboundMessageSentOn
The time when the first outbound message was sent or null in case there is no such
Declaration
public Nullable<DateTime> FirstOutboundMessageSentOn { get; }
Property Value
System.
|
HandshakeDuration
The time from which the request started to when the tunnel was opened for a streaming session
Declaration
public double HandshakeDuration { get; }
Property Value
System.
|
HeadersRulesProcessingDuration
The time Fiddler spent on processing rules for the response headers
Declaration
public long HeadersRulesProcessingDuration { get; set; }
Property Value
System.
|
IsConnect
Indicates whether this timings object contains timings for a CONNECT session
Declaration
public bool IsConnect { get; set; }
Property Value
System.
|
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
public bool IsDataIncomplete { get; set; }
Property Value
System.
|
IsDataModifiedByRules
Indicated whether the session's data has been modified by a rule
Declaration
public bool IsDataModifiedByRules { get; set; }
Property Value
System.
|
IsFiddlerGenerated
Indicates whether the session that this timings objects is for is a fiddler-generated one
Declaration
public bool IsFiddlerGenerated { get; set; }
Property Value
System.
|
IsOpen
Indicates whether the current session has not finished yet
Declaration
public bool IsOpen { get; set; }
Property Value
System.
|
IsReusedConnect
Indicates whether this session uses a tunnel that has been established by a previous session
Declaration
public bool IsReusedConnect { get; set; }
Property Value
System.
|
LastInboundMessageTransferredOn
The time when the last inbound message was transferred or null in case there is no such
Declaration
public Nullable<DateTime> LastInboundMessageTransferredOn { get; }
Property Value
System.
|
LastMessageTime
The last message event of a streaming session
Declaration
public Nullable<DateTime> LastMessageTime { get; }
Property Value
System.
|
LastOutboundMessageDeliveredOn
The time when the last outbound message was delivered or null in case there is no such
Declaration
public Nullable<DateTime> LastOutboundMessageDeliveredOn { get; }
Property Value
System.
|
MessagesSize
Total size of messages transferred
Declaration
public long MessagesSize { get; }
Property Value
System.
|
MessageTransferData
The object that contains the information for messages transferred timings for streaming sessions
Declaration
public SessionMetrics.MessagesData MessageTransferData { get; set; }
Property Value
MessageTransferDuration
The time spend on message transfer for straming session
Declaration
public Nullable<double> MessageTransferDuration { get; }
Property Value
System.
|
ReceiveRequestDuration
The time spent by Fiddler to receive the request data from the client
Declaration
public double ReceiveRequestDuration { get; }
Property Value
System.
|
RemoteMessagesSize
Total size of messages received
Declaration
public long RemoteMessagesSize { get; }
Property Value
System.
|
RemoteProcessingDuration
The time the server spent processing the request before it started sending the response to Fiddler
Declaration
public double RemoteProcessingDuration { get; }
Property Value
System.
|
ReplyWithTunnelOn
The time when Fiddler returned the self-generated CONNECT session to the client (mock server)
Declaration
public Nullable<DateTime> ReplyWithTunnelOn { get; set; }
Property Value
System.
|
RequestBodySize
The size of request body transferred by the transport layer
Declaration
public long RequestBodySize { get; set; }
Property Value
System.
|
RequestBreakpointDuration
The time which the session spent on a request breakpoint
Declaration
public long RequestBreakpointDuration { get; set; }
Property Value
System.
|
RequestDuration
The time between the request strated and the time it finished
Declaration
public double RequestDuration { get; }
Property Value
System.
|
RequestHeadersSize
The size of request headers transferred by the transport layer
Declaration
public int RequestHeadersSize { get; set; }
Property Value
System.
|
RequestRulesProcessingDuration
The time spent by Fiddler on executing request rules for the current session
Declaration
public long RequestRulesProcessingDuration { get; set; }
Property Value
System.
|
RequestSize
The size of the whole request received
Declaration
public long RequestSize { get; }
Property Value
System.
|
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
public DateTime RequestStartedOn { get; }
Property Value
System.
|
ResponseBodySize
The size of response body transferred by the transport layer
Declaration
public long ResponseBodySize { get; set; }
Property Value
System.
|
ResponseBreakpointDuration
The time Fiddler spent on a response breakpoint
Declaration
public long ResponseBreakpointDuration { get; set; }
Property Value
System.
|
ResponseDuration
The time between the server got the rquest and Fiddler handed the response to the client
Declaration
public double ResponseDuration { get; }
Property Value
System.
|
ResponseHeadersSize
The size of response headers transferred by the transport layer
Declaration
public int ResponseHeadersSize { get; set; }
Property Value
System.
|
ResponseRulesProcessingDuration
The time Fiddler spent on processing response rules
Declaration
public long ResponseRulesProcessingDuration { get; set; }
Property Value
System.
|
ResponseSize
The size of the whole response being transferred
Declaration
public long ResponseSize { get; }
Property Value
System.
|
RetrieveCertificateDuration
This is the time spend by Fiddler to retrieve the host certificate from the CertMaker
Declaration
public double RetrieveCertificateDuration { get; }
Property Value
System.
|
SendRequestDuration
The time which Fiddler spent to deliver the request to the server
Declaration
public double SendRequestDuration { get; }
Property Value
System.
|
ServerHandshakeDuration
The number of milliseconds elapsed while performing the HTTPS handshake with the server
Declaration
public double ServerHandshakeDuration { get; }
Property Value
System.
|
ServerHandshakeEstablished
The time when the HTTPS handshake with the server has been established
Declaration
public Nullable<DateTime> ServerHandshakeEstablished { get; set; }
Property Value
System.
|
ServerReads
Declaration
public SessionMetrics.NetTimestamps ServerReads { get; }
Property Value
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
public DateTime SessionFinishedOn { get; }
Property Value
System.
|
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
public DateTime SessionStartedOn { get; }
Property Value
System.
|
StalledDuration
The time that the client delayed the first request after the CONNECT has been delivered
Declaration
public double StalledDuration { get; }
Property Value
System.
|
TotalDuration
The time the session lasted from start to finish
Declaration
public double TotalDuration { get; }
Property Value
System.
|
TotalSize
Total size of data transferred icluding request, response and messages
Declaration
public long TotalSize { get; }
Property Value
System.
|
TotalWithoutFiddlerDuration
The time the session would take without the proxy related and Fiddler-specific work
Declaration
public double TotalWithoutFiddlerDuration { get; }
Property Value
System.
|
TrailersSize
The size of trailers transferred by the transport layer
Declaration
public int TrailersSize { get; set; }
Property Value
System.
|
TransferDuration
The time Fiddler spent to trasfer the response back to the clinet
Declaration
public double TransferDuration { get; }
Property Value
System.
|
TTFB
The time between Fiddler started sending the request to the server and the server started sending back the response
Declaration
public double TTFB { get; }
Property Value
System.
|
TTLB
The time between Fiddler started sending the request to the server and the server finished sending the response back
Declaration
public double TTLB { get; }
Property Value
System.
|
TunnelClosedOn
The time when the tunnel was closed in case of straming session or CONNECT
Declaration
public Nullable<DateTime> TunnelClosedOn { get; set; }
Property Value
System.
|
TunnelOpenedOn
The time when the tunnel opened in case the session is a tunnel (CONNECT or streaming session)
Declaration
public Nullable<DateTime> TunnelOpenedOn { get; set; }
Property Value
System.
|
Methods
IfPositive(Double)
Return the number if positive or 0
Declaration
public static double IfPositive(double duration)
Parameters
System.
|
Returns
System.
|
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
public static double SafePeriodDuration(DateTime start, DateTime end)
Parameters
System. start of the period |
System. end of the period |
Returns
System.
|
ToString()
Override of ToString shows timer info in a fancy format
Declaration
public override string ToString()
Returns
System. Timing information as a string |
ToString(Boolean)
Override of ToString shows timer info in a fancy format
Declaration
public string ToString(bool bMultiLine)
Parameters
System. TRUE if the result can contain linebreaks; false if comma-delimited format preferred |
Returns
System. Timing information as a string |