• Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • NEW: Design Kits for Figma
    • Online Training
    • Document Processing Library
    • Embedded Reporting for web and desktop
    Web
    Kendo UI UI for jQuery UI for Angular UI for React UI for Vue UI for ASP.NET AJAX UI for ASP.NET MVC UI for ASP.NET Core UI for Blazor UI for Silverlight UI for PHP UI for JSP
    Mobile
    UI for .NET MAUI UI for Xamarin
    Document Management
    Telerik Document Processing
    Desktop
    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF UI for UWP
    Reporting & Mocking
    Telerik Reporting Telerik Report Server Telerik JustMock
    Automated Testing
    Test Studio Test Studio Dev Edition
    CMS
    Sitefinity
    UI/UX Design
    Unite UX
    Debugging
    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Jam FiddlerCap FiddlerCore
    Extended Reality
    UI for Unity XR
    Free Tools
    JustAssembly JustDecompile VB.NET to C# Converter Testing Framework
    View all products
  • Overview
    • jQuery
    • Angular
    • React
    • Vue
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Docs & Support
  • Pricing
  • Search
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Class SessionMetrics

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

Inheritance
System.Object
SessionMetrics
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.DateTime

ClientBeginResponse

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

Declaration
public DateTime ClientBeginResponse
Field Value
System.DateTime

ClientConnected

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

Declaration
public DateTime ClientConnected
Field Value
System.DateTime

ClientDoneRequest

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

Declaration
public DateTime ClientDoneRequest
Field Value
System.DateTime

ClientDoneResponse

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

Declaration
public DateTime ClientDoneResponse
Field Value
System.DateTime

DNSTime

The number of milliseconds spent waiting for DNS

Declaration
public int DNSTime
Field Value
System.Int32

FiddlerBeginRequest

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

Declaration
public DateTime FiddlerBeginRequest
Field Value
System.DateTime

FiddlerGotRequestHeaders

The time at which the request headers were received

Declaration
public DateTime FiddlerGotRequestHeaders
Field Value
System.DateTime

FiddlerGotResponseHeaders

The time at which Fiddler received the server's headers

Declaration
public DateTime FiddlerGotResponseHeaders
Field Value
System.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
public int GatewayDeterminationTime
Field Value
System.Int32

ServerBeginResponse

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

Declaration
public DateTime ServerBeginResponse
Field Value
System.DateTime

ServerConnected

The time at which the server connection has been established

Declaration
public DateTime ServerConnected
Field Value
System.DateTime

ServerDoneResponse

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

Declaration
public DateTime ServerDoneResponse
Field Value
System.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
public DateTime ServerGotRequest
Field Value
System.DateTime

TCPConnectTime

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

Declaration
public int TCPConnectTime
Field Value
System.Int32

Properties

CertificateRetreivedOn

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

Declaration
public Nullable<DateTime> CertificateRetreivedOn { get; set; }
Property Value
System.Nullable<System.DateTime>

ClientHandshakeDuration

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

Declaration
public double ClientHandshakeDuration { get; }
Property Value
System.Double

ClientHandshakeEstablished

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

Declaration
public Nullable<DateTime> ClientHandshakeEstablished { get; set; }
Property Value
System.Nullable<System.DateTime>

ClientMessagesSize

Total size of outbound messages sent

Declaration
public long ClientMessagesSize { get; }
Property Value
System.Int64

ClientReads

Declaration
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
public double ConnectDuration { get; }
Property Value
System.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
public DateTime ConnectFinishedOn { get; }
Property Value
System.DateTime

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.Double

ConnectionEstablishedOn

The time when Fiddler returned the CONNECT session to the client

Declaration
public Nullable<DateTime> ConnectionEstablishedOn { get; set; }
Property Value
System.Nullable<System.DateTime>

ConnectRulesDuration

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

Declaration
public double ConnectRulesDuration { get; }
Property Value
System.Double

DownloadBodyDuration

The time Fiddler spent to download the response body

Declaration
public double DownloadBodyDuration { get; }
Property Value
System.Double

DownloadHeadersDuration

The time Fiddler spent on downloading the response headers

Declaration
public double DownloadHeadersDuration { get; }
Property Value
System.Double

Duration

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

Declaration
public long Duration { get; }
Property Value
System.Int64

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.Boolean

FiddlerSpecificDuration

The time spent on proxy related or Fiddler specific tasks

Declaration
public double FiddlerSpecificDuration { get; }
Property Value
System.Double

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.Nullable<System.DateTime>

FirstMessageTime

The earliest message event of a streaming session

Declaration
public Nullable<DateTime> FirstMessageTime { get; }
Property Value
System.Nullable<System.DateTime>

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.Nullable<System.DateTime>

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.Double

HeadersRulesProcessingDuration

The time Fiddler spent on processing rules for the response headers

Declaration
public long HeadersRulesProcessingDuration { get; set; }
Property Value
System.Int64

IsConnect

Indicates whether this timings object contains timings for a CONNECT session

Declaration
public bool IsConnect { get; set; }
Property Value
System.Boolean

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.Boolean

IsDataModifiedByRules

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

Declaration
public bool IsDataModifiedByRules { get; set; }
Property Value
System.Boolean

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.Boolean

IsOpen

Indicates whether the current session has not finished yet

Declaration
public bool IsOpen { get; set; }
Property Value
System.Boolean

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.Boolean

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.Nullable<System.DateTime>

LastMessageTime

The last message event of a streaming session

Declaration
public Nullable<DateTime> LastMessageTime { get; }
Property Value
System.Nullable<System.DateTime>

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.Nullable<System.DateTime>

MessagesSize

Total size of messages transferred

Declaration
public long MessagesSize { get; }
Property Value
System.Int64

MessageTransferData

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

Declaration
public SessionMetrics.MessagesData MessageTransferData { get; set; }
Property Value
SessionMetrics.MessagesData

MessageTransferDuration

The time spend on message transfer for straming session

Declaration
public Nullable<double> MessageTransferDuration { get; }
Property Value
System.Nullable<System.Double>

ReceiveRequestDuration

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

Declaration
public double ReceiveRequestDuration { get; }
Property Value
System.Double

RemoteMessagesSize

Total size of messages received

Declaration
public long RemoteMessagesSize { get; }
Property Value
System.Int64

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.Double

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.Nullable<System.DateTime>

RequestBodySize

The size of request body transferred by the transport layer

Declaration
public long RequestBodySize { get; set; }
Property Value
System.Int64

RequestBreakpointDuration

The time which the session spent on a request breakpoint

Declaration
public long RequestBreakpointDuration { get; set; }
Property Value
System.Int64

RequestDuration

The time between the request strated and the time it finished

Declaration
public double RequestDuration { get; }
Property Value
System.Double

RequestHeadersSize

The size of request headers transferred by the transport layer

Declaration
public int RequestHeadersSize { get; set; }
Property Value
System.Int32

RequestRulesProcessingDuration

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

Declaration
public long RequestRulesProcessingDuration { get; set; }
Property Value
System.Int64

RequestSize

The size of the whole request received

Declaration
public long RequestSize { get; }
Property Value
System.Int64

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.DateTime

ResponseBodySize

The size of response body transferred by the transport layer

Declaration
public long ResponseBodySize { get; set; }
Property Value
System.Int64

ResponseBreakpointDuration

The time Fiddler spent on a response breakpoint

Declaration
public long ResponseBreakpointDuration { get; set; }
Property Value
System.Int64

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.Double

ResponseHeadersSize

The size of response headers transferred by the transport layer

Declaration
public int ResponseHeadersSize { get; set; }
Property Value
System.Int32

ResponseRulesProcessingDuration

The time Fiddler spent on processing response rules

Declaration
public long ResponseRulesProcessingDuration { get; set; }
Property Value
System.Int64

ResponseSize

The size of the whole response being transferred

Declaration
public long ResponseSize { get; }
Property Value
System.Int64

RetrieveCertificateDuration

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

Declaration
public double RetrieveCertificateDuration { get; }
Property Value
System.Double

SendRequestDuration

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

Declaration
public double SendRequestDuration { get; }
Property Value
System.Double

ServerHandshakeDuration

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

Declaration
public double ServerHandshakeDuration { get; }
Property Value
System.Double

ServerHandshakeEstablished

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

Declaration
public Nullable<DateTime> ServerHandshakeEstablished { get; set; }
Property Value
System.Nullable<System.DateTime>

ServerReads

Declaration
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
public DateTime SessionFinishedOn { get; }
Property Value
System.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
public DateTime SessionStartedOn { get; }
Property Value
System.DateTime

StalledDuration

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

Declaration
public double StalledDuration { get; }
Property Value
System.Double

TotalDuration

The time the session lasted from start to finish

Declaration
public double TotalDuration { get; }
Property Value
System.Double

TotalSize

Total size of data transferred icluding request, response and messages

Declaration
public long TotalSize { get; }
Property Value
System.Int64

TotalWithoutFiddlerDuration

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

Declaration
public double TotalWithoutFiddlerDuration { get; }
Property Value
System.Double

TrailersSize

The size of trailers transferred by the transport layer

Declaration
public int TrailersSize { get; set; }
Property Value
System.Int32

TransferDuration

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

Declaration
public double TransferDuration { get; }
Property Value
System.Double

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.Double

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.Double

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.Nullable<System.DateTime>

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.Nullable<System.DateTime>

Methods

IfPositive(Double)

Return the number if positive or 0

Declaration
public static double IfPositive(double duration)
Parameters
System.Double duration

Returns
System.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
public static double SafePeriodDuration(DateTime start, DateTime end)
Parameters
System.DateTime start

start of the period

System.DateTime end

end of the period

Returns
System.Double

ToString()

Override of ToString shows timer info in a fancy format

Declaration
public override string ToString()
Returns
System.String

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.Boolean bMultiLine

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

Returns
System.String

Timing information as a string

Getting Started
  • Try Now
Community
  • Forums
  • Blogs
  • Feedback Portal

Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.