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