metrics

package
v0.28.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2023 License: Apache-2.0 Imports: 4 Imported by: 419

Documentation

Overview

Package metrics provides abstractions for registering which metrics to record.

Index

Constants

This section is empty.

Variables

View Source
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{}
)

Functions

func Register

func Register(opts RegisterOpts)

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

Types

type CallsMetric added in v0.21.0

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

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

type DurationMetric added in v0.18.0

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

DurationMetric is a measurement of some amount of time.

type ExpiryMetric added in v0.18.0

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

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

type LatencyMetric

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

LatencyMetric observes client latency partitioned by verb and url.

type RegisterOpts added in v0.18.0

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
}

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

type ResolverLatencyMetric added in v0.28.0

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

type ResultMetric

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

ResultMetric counts response codes partitioned by method and host.

type RetryMetric added in v0.27.0

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

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

type SizeMetric added in v0.24.0

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

SizeMetric observes client response size partitioned by verb and host.

type TransportCacheMetric added in v0.28.0

type TransportCacheMetric interface {
	Observe(value int)
}

TransportCacheMetric shows the number of entries in the internal transport cache

type TransportCreateCallsMetric added in v0.28.0

type TransportCreateCallsMetric interface {
	Increment(result string)
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL