Search Results for

    Show / Hide Table of Contents

    Class UpstreamConnectionTiming

    Captures the timing of establishing a single upstream (server-facing) TCP/TLS connection. Only populated when EnableRequestTimingCapture is enabled; otherwise no instance is ever allocated.

    One instance is created per upstream connection, at the moment that connection is first established, and is never mutated afterwards. It is shared by every session that later reuses that same connection from the pool - reachable from any of them via UpstreamConnectionTiming.

    Address resolution can return more than one IP address for a hostname; the proxy tries them in order until one connects. The duration properties below reflect only the phases of the address that ultimately succeeded - FailedAddressAttempts tells you how many earlier addresses were tried and failed first.

    Inheritance
    object
    UpstreamConnectionTiming
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Titanium.Web.Proxy.Diagnostics
    Assembly: Titanium.Web.Proxy.dll
    Syntax
    public sealed class UpstreamConnectionTiming

    Properties

    | Edit this page View Source

    ConnectStartedAt

    When the proxy started establishing this connection (immediately before DNS resolution).

    Declaration
    public DateTime ConnectStartedAt { get; }
    Property Value
    Type Description
    DateTime
    | Edit this page View Source

    DnsDuration

    How long DNS resolution took.

    Declaration
    public TimeSpan? DnsDuration { get; }
    Property Value
    Type Description
    TimeSpan?
    | Edit this page View Source

    DnsResolvedAt

    When DNS resolution of the connect target (the upstream proxy's hostname, if one is configured and in use; otherwise the origin server's hostname) completed.

    Declaration
    public DateTime? DnsResolvedAt { get; }
    Property Value
    Type Description
    DateTime?
    | Edit this page View Source

    EstablishedAt

    When this connection became fully ready to use - the same instant as the last of TlsHandshakeCompletedAt, UpstreamProxyConnectedAt or TcpConnectedAt that applies to this connection.

    Declaration
    public DateTime EstablishedAt { get; }
    Property Value
    Type Description
    DateTime
    | Edit this page View Source

    FailedAddressAttempts

    Number of DNS-resolved addresses that were tried and failed before the address that ultimately succeeded. Zero if the first address tried succeeded (the common case).

    Declaration
    public int FailedAddressAttempts { get; }
    Property Value
    Type Description
    int
    | Edit this page View Source

    TcpConnectDuration

    How long the TCP handshake took, across every address attempted.

    Declaration
    public TimeSpan? TcpConnectDuration { get; }
    Property Value
    Type Description
    TimeSpan?
    | Edit this page View Source

    TcpConnectedAt

    When the TCP handshake to the (possibly multi-address) connect target completed, on whichever address ultimately succeeded.

    Declaration
    public DateTime? TcpConnectedAt { get; }
    Property Value
    Type Description
    DateTime?
    | Edit this page View Source

    TlsHandshakeCompletedAt

    When the TLS handshake with the origin server completed. null for a plain (non-HTTPS) connection.

    Declaration
    public DateTime? TlsHandshakeCompletedAt { get; }
    Property Value
    Type Description
    DateTime?
    | Edit this page View Source

    TlsHandshakeDuration

    How long the TLS handshake with the origin took. null for a plain connection.

    Declaration
    public TimeSpan? TlsHandshakeDuration { get; }
    Property Value
    Type Description
    TimeSpan?
    | Edit this page View Source

    TotalDuration

    Total wall-clock time spent establishing this connection, end to end.

    Declaration
    public TimeSpan TotalDuration { get; }
    Property Value
    Type Description
    TimeSpan
    | Edit this page View Source

    UpstreamProxyConnectDuration

    How long it took to establish the HTTP CONNECT tunnel through an external upstream proxy. null when no external HTTP upstream proxy is in use.

    Declaration
    public TimeSpan? UpstreamProxyConnectDuration { get; }
    Property Value
    Type Description
    TimeSpan?
    | Edit this page View Source

    UpstreamProxyConnectedAt

    When the HTTP CONNECT tunnel through an external HTTP(S) upstream proxy was established (including any Negotiate/NTLM/Kerberos authentication round trips). null when no external HTTP upstream proxy is in use for this connection.

    Declaration
    public DateTime? UpstreamProxyConnectedAt { get; }
    Property Value
    Type Description
    DateTime?
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX