Documentation ¶
Index ¶
- Variables
- func AddDispatch(priorityLevel, flowSchema string)
- func AddReject(priorityLevel, flowSchema, reason string)
- func AddRequestsExecuting(priorityLevel, flowSchema string, delta int)
- func AddRequestsInQueues(priorityLevel, flowSchema string, delta int)
- func GatherAndCompare(expected string, metricNames ...string) error
- func ObserveExecutionDuration(priorityLevel, flowSchema string, executionTime time.Duration)
- func ObserveQueueLength(priorityLevel, flowSchema string, length int)
- func ObserveWaitingDuration(priorityLevel, flowSchema, execute string, waitTime time.Duration)
- func Register()
- func Reset()
- func UpdateSharedConcurrencyLimit(priorityLevel string, limit int)
- type Registerables
- type SampleAndWaterMarkObserverGenerator
- type SampleAndWaterMarkPairGenerator
- type TimedObserver
- type TimedObserverGenerator
- type TimedObserverPair
- type TimedObserverPairGenerator
Constants ¶
This section is empty.
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}) )
Functions ¶
func AddDispatch ¶
func AddDispatch(priorityLevel, flowSchema string)
AddDispatch increments the # of dispatched requests for flow control
func AddReject ¶
func AddReject(priorityLevel, flowSchema, reason string)
AddReject increments the # of rejected requests for flow control
func AddRequestsExecuting ¶
AddRequestsExecuting adds the given delta to the gauge of executing requests of the given flowSchema and priorityLevel
func AddRequestsInQueues ¶
AddRequestsInQueues adds the given delta to the gauge of the # of requests in the queues of the specified flowSchema and priorityLevel
func GatherAndCompare ¶
GatherAndCompare the given metrics with the given Prometheus syntax expected value
func ObserveExecutionDuration ¶
ObserveExecutionDuration observes the execution duration for flow control
func ObserveQueueLength ¶
ObserveQueueLength observes the queue length for flow control
func ObserveWaitingDuration ¶
ObserveWaitingDuration observes the queue length for flow control
Types ¶
type Registerables ¶
type Registerables []compbasemetrics.Registerable
Registerables is a slice of Registerable
func (Registerables) Append ¶
func (rs Registerables) Append(more ...compbasemetrics.Registerable) Registerables
Append adds more
type SampleAndWaterMarkObserverGenerator ¶
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 ¶
func NewSampleAndWaterMarkHistogramsGenerator(clock clock.PassiveClock, samplePeriod time.Duration, sampleOpts, waterMarkOpts *compbasemetrics.HistogramOpts, labelNames []string) SampleAndWaterMarkObserverGenerator
NewSampleAndWaterMarkHistogramsGenerator makes a new one
func (SampleAndWaterMarkObserverGenerator) Generate ¶
func (swg SampleAndWaterMarkObserverGenerator) Generate(x, x1 float64, labelValues []string) TimedObserver
Generate makes a new TimedObserver
type SampleAndWaterMarkPairGenerator ¶
type SampleAndWaterMarkPairGenerator struct {
// contains filtered or unexported fields
}
SampleAndWaterMarkPairGenerator makes pairs of TimedObservers that track samples and watermarks.
func NewSampleAndWaterMarkHistogramsPairGenerator ¶
func NewSampleAndWaterMarkHistogramsPairGenerator(clock clock.PassiveClock, samplePeriod time.Duration, sampleOpts, waterMarkOpts *compbasemetrics.HistogramOpts, labelNames []string) SampleAndWaterMarkPairGenerator
NewSampleAndWaterMarkHistogramsPairGenerator makes a new pair generator
func (SampleAndWaterMarkPairGenerator) Generate ¶
func (spg SampleAndWaterMarkPairGenerator) Generate(waiting1, executing1 float64, labelValues []string) TimedObserverPair
Generate makes a new pair
type TimedObserver ¶
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 ¶
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 ¶
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 ¶
type TimedObserverPairGenerator interface {
Generate(waiting1, executing1 float64, labelValues []string) TimedObserverPair
}
TimedObserverPairGenerator generates pairs