...

Package metrics

import "k8s.io/client-go/tools/metrics"
Overview
Index

Overview ▾

Package metrics provides abstractions for registering which metrics to record.

Variables

var (
    // ClientCertExpiry is the expiry time of a client certificate
    ClientCertExpiry ExpiryMetric = noopExpiry{}
    // ClientCertRotationAge is the age of a certificate that has just been rotated.
    ClientCertRotationAge DurationMetric = noopDuration{}
    // RequestLatency is the latency metric that rest clients will update.
    RequestLatency LatencyMetric = noopLatency{}
    // ResolverLatency is the latency metric that DNS resolver will update
    ResolverLatency ResolverLatencyMetric = noopResolverLatency{}
    // RequestSize is the request size metric that rest clients will update.
    RequestSize SizeMetric = noopSize{}
    // ResponseSize is the response size metric that rest clients will update.
    ResponseSize SizeMetric = noopSize{}
    // RateLimiterLatency is the client side rate limiter latency metric.
    RateLimiterLatency LatencyMetric = noopLatency{}
    // RequestResult is the result metric that rest clients will update.
    RequestResult ResultMetric = noopResult{}
    // ExecPluginCalls is the number of calls made to an exec plugin, partitioned by
    // exit code and call status.
    ExecPluginCalls CallsMetric = noopCalls{}
    // RequestRetry is the retry metric that tracks the number of
    // retries sent to the server.
    RequestRetry RetryMetric = noopRetry{}
    // TransportCacheEntries is the metric that tracks the number of entries in the
    // internal transport cache.
    TransportCacheEntries TransportCacheMetric = noopTransportCache{}
    // TransportCreateCalls is the metric that counts the number of times a new transport
    // is created
    TransportCreateCalls TransportCreateCallsMetric = noopTransportCreateCalls{}
)

func Register

func Register(opts RegisterOpts)

Register registers metrics for the rest client to use. This can only be called once.

type CallsMetric

CallsMetric counts calls that take place for a specific exec plugin.

type CallsMetric interface {
    // Increment increments a counter per exitCode and callStatus.
    Increment(exitCode int, callStatus string)
}

type DurationMetric

DurationMetric is a measurement of some amount of time.

type DurationMetric interface {
    Observe(duration time.Duration)
}

type ExpiryMetric

ExpiryMetric sets some time of expiry. If nil, assume not relevant.

type ExpiryMetric interface {
    Set(expiry *time.Time)
}

type LatencyMetric

LatencyMetric observes client latency partitioned by verb and url.

type LatencyMetric interface {
    Observe(ctx context.Context, verb string, u url.URL, latency time.Duration)
}

type RegisterOpts

RegisterOpts contains all the metrics to register. Metrics may be nil.

type RegisterOpts struct {
    ClientCertExpiry      ExpiryMetric
    ClientCertRotationAge DurationMetric
    RequestLatency        LatencyMetric
    ResolverLatency       ResolverLatencyMetric
    RequestSize           SizeMetric
    ResponseSize          SizeMetric
    RateLimiterLatency    LatencyMetric
    RequestResult         ResultMetric
    ExecPluginCalls       CallsMetric
    RequestRetry          RetryMetric
    TransportCacheEntries TransportCacheMetric
    TransportCreateCalls  TransportCreateCallsMetric
}

type ResolverLatencyMetric

type ResolverLatencyMetric interface {
    Observe(ctx context.Context, host string, latency time.Duration)
}

type ResultMetric

ResultMetric counts response codes partitioned by method and host.

type ResultMetric interface {
    Increment(ctx context.Context, code string, method string, host string)
}

type RetryMetric

RetryMetric counts the number of retries sent to the server partitioned by code, method, and host.

type RetryMetric interface {
    IncrementRetry(ctx context.Context, code string, method string, host string)
}

type SizeMetric

SizeMetric observes client response size partitioned by verb and host.

type SizeMetric interface {
    Observe(ctx context.Context, verb string, host string, size float64)
}

type TransportCacheMetric

TransportCacheMetric shows the number of entries in the internal transport cache

type TransportCacheMetric interface {
    Observe(value int)
}

type TransportCreateCallsMetric

TransportCreateCallsMetric counts the number of times a transport is created partitioned by the result of the cache: hit, miss, uncacheable

type TransportCreateCallsMetric interface {
    Increment(result string)
}