apiserver: k8s.io/apiserver/pkg/util/flowcontrol/metrics Index | Files

package metrics

import "k8s.io/apiserver/pkg/util/flowcontrol/metrics"

Index

Package Files

metrics.go sample_and_watermark.go timed_observer.go

Variables

var (

    // PriorityLevelConcurrencyObserverPairGenerator creates pairs that observe concurrency for priority levels
    PriorityLevelConcurrencyObserverPairGenerator = NewSampleAndWaterMarkHistogramsPairGenerator(clock.RealClock{}, time.Millisecond,
        &compbasemetrics.HistogramOpts{
            Namespace:      namespace,
            Subsystem:      subsystem,
            Name:           "priority_level_request_count_samples",
            Help:           "Periodic observations of the number of requests",
            Buckets:        []float64{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1},
            StabilityLevel: compbasemetrics.ALPHA,
        },
        &compbasemetrics.HistogramOpts{
            Namespace:      namespace,
            Subsystem:      subsystem,
            Name:           "priority_level_request_count_watermarks",
            Help:           "Watermarks of the number of requests",
            Buckets:        []float64{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1},
            StabilityLevel: compbasemetrics.ALPHA,
        },
        []string{priorityLevel})

    // ReadWriteConcurrencyObserverPairGenerator creates pairs that observe concurrency broken down by mutating vs readonly
    ReadWriteConcurrencyObserverPairGenerator = NewSampleAndWaterMarkHistogramsPairGenerator(clock.RealClock{}, time.Millisecond,
        &compbasemetrics.HistogramOpts{
            Namespace:      namespace,
            Subsystem:      subsystem,
            Name:           "read_vs_write_request_count_samples",
            Help:           "Periodic observations of the number of requests",
            Buckets:        []float64{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1},
            StabilityLevel: compbasemetrics.ALPHA,
        },
        &compbasemetrics.HistogramOpts{
            Namespace:      namespace,
            Subsystem:      subsystem,
            Name:           "read_vs_write_request_count_watermarks",
            Help:           "Watermarks of the number of requests",
            Buckets:        []float64{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1},
            StabilityLevel: compbasemetrics.ALPHA,
        },
        []string{requestKind})
)

func AddDispatch Uses

func AddDispatch(priorityLevel, flowSchema string)

AddDispatch increments the # of dispatched requests for flow control

func AddReject Uses

func AddReject(priorityLevel, flowSchema, reason string)

AddReject increments the # of rejected requests for flow control

func AddRequestsExecuting Uses

func AddRequestsExecuting(priorityLevel, flowSchema string, delta int)

AddRequestsExecuting adds the given delta to the gauge of executing requests of the given flowSchema and priorityLevel

func AddRequestsInQueues Uses

func AddRequestsInQueues(priorityLevel, flowSchema string, delta int)

AddRequestsInQueues adds the given delta to the gauge of the # of requests in the queues of the specified flowSchema and priorityLevel

func GatherAndCompare Uses

func GatherAndCompare(expected string, metricNames ...string) error

GatherAndCompare the given metrics with the given Prometheus syntax expected value

func ObserveExecutionDuration Uses

func ObserveExecutionDuration(priorityLevel, flowSchema string, executionTime time.Duration)

ObserveExecutionDuration observes the execution duration for flow control

func ObserveQueueLength Uses

func ObserveQueueLength(priorityLevel, flowSchema string, length int)

ObserveQueueLength observes the queue length for flow control

func ObserveWaitingDuration Uses

func ObserveWaitingDuration(priorityLevel, flowSchema, execute string, waitTime time.Duration)

ObserveWaitingDuration observes the queue length for flow control

func Register Uses

func Register()

Register all metrics.

func Reset Uses

func Reset()

Reset all metrics to zero

func UpdateSharedConcurrencyLimit Uses

func UpdateSharedConcurrencyLimit(priorityLevel string, limit int)

UpdateSharedConcurrencyLimit updates the value for the concurrency limit in flow control

type Registerables Uses

type Registerables []compbasemetrics.Registerable

Registerables is a slice of Registerable

func (Registerables) Append Uses

func (rs Registerables) Append(more ...compbasemetrics.Registerable) Registerables

Append adds more

type SampleAndWaterMarkObserverGenerator Uses

type SampleAndWaterMarkObserverGenerator struct {
    // contains filtered or unexported fields
}

SampleAndWaterMarkObserverGenerator creates TimedObservers that populate histograms of samples and low- and high-water-marks. The generator has a samplePeriod, and the histograms get an observation every samplePeriod. The sampling windows are quantized based on the monotonic rather than wall-clock times. The `t0` field is there so to provide a baseline for monotonic clock differences.

func NewSampleAndWaterMarkHistogramsGenerator Uses

func NewSampleAndWaterMarkHistogramsGenerator(clock clock.PassiveClock, samplePeriod time.Duration, sampleOpts, waterMarkOpts *compbasemetrics.HistogramOpts, labelNames []string) SampleAndWaterMarkObserverGenerator

NewSampleAndWaterMarkHistogramsGenerator makes a new one

func (SampleAndWaterMarkObserverGenerator) Generate Uses

func (swg SampleAndWaterMarkObserverGenerator) Generate(x, x1 float64, labelValues []string) TimedObserver

Generate makes a new TimedObserver

type SampleAndWaterMarkPairGenerator Uses

type SampleAndWaterMarkPairGenerator struct {
    // contains filtered or unexported fields
}

SampleAndWaterMarkPairGenerator makes pairs of TimedObservers that track samples and watermarks.

func NewSampleAndWaterMarkHistogramsPairGenerator Uses

func NewSampleAndWaterMarkHistogramsPairGenerator(clock clock.PassiveClock, samplePeriod time.Duration, sampleOpts, waterMarkOpts *compbasemetrics.HistogramOpts, labelNames []string) SampleAndWaterMarkPairGenerator

NewSampleAndWaterMarkHistogramsPairGenerator makes a new pair generator

func (SampleAndWaterMarkPairGenerator) Generate Uses

func (spg SampleAndWaterMarkPairGenerator) Generate(waiting1, executing1 float64, labelValues []string) TimedObserverPair

Generate makes a new pair

type TimedObserver Uses

type TimedObserver interface {
    // Add notes a change to the variable
    Add(deltaX float64)

    // Set notes a setting of the variable
    Set(x float64)

    // SetX1 changes the value to use for X1
    SetX1(x1 float64)
}

TimedObserver gets informed about the values assigned to a variable `X float64` over time, and reports on the ratio `X/X1`.

type TimedObserverGenerator Uses

type TimedObserverGenerator interface {
    Generate(x, x1 float64, labelValues []string) TimedObserver
}

TimedObserverGenerator creates related observers that are differentiated by a series of label values

type TimedObserverPair Uses

type TimedObserverPair struct {
    // RequestsWaiting is given observations of the number of currently queued requests
    RequestsWaiting TimedObserver

    // RequestsExecuting is given observations of the number of requests currently executing
    RequestsExecuting TimedObserver
}

TimedObserverPair is a corresponding pair of observers, one for the number of requests waiting in queue(s) and one for the number of requests being executed

type TimedObserverPairGenerator Uses

type TimedObserverPairGenerator interface {
    Generate(waiting1, executing1 float64, labelValues []string) TimedObserverPair
}

TimedObserverPairGenerator generates pairs

Package metrics imports 8 packages (graph) and is imported by 10 packages. Updated 2021-01-09. Refresh now. Tools for package owners.