@@ -311,10 +311,12 @@ exports additional metrics. Monitoring these can help you determine whether your
311
311
configuration is inappropriately throttling important traffic, or find
312
312
poorly-behaved workloads that may be harming system health.
313
313
314
- * ` apiserver_flowcontrol_rejected_requests_total ` counts requests that
315
- were rejected, grouped by the name of the assigned priority level,
316
- the name of the assigned FlowSchema, and the reason for rejection.
317
- The reason will be one of the following:
314
+ * ` apiserver_flowcontrol_rejected_requests_total ` is a counter vector
315
+ (cumulative since server start) of requests that were rejected,
316
+ broken down by the labels ` flowSchema ` (indicating the one that
317
+ matched the request), ` priorityLevel ` (indicating the one to which
318
+ the request was assigned), and ` reason ` . The ` reason ` label will be
319
+ have one of the following values:
318
320
* ` queue-full ` , indicating that too many requests were already
319
321
queued,
320
322
* ` concurrency-limit ` , indicating that the
@@ -323,23 +325,72 @@ poorly-behaved workloads that may be harming system health.
323
325
* ` time-out ` , indicating that the request was still in the queue
324
326
when its queuing time limit expired.
325
327
326
- * ` apiserver_flowcontrol_dispatched_requests_total ` counts requests
327
- that began executing, grouped by the name of the assigned priority
328
- level and the name of the assigned FlowSchema.
329
-
330
- * ` apiserver_flowcontrol_current_inqueue_requests ` gives the
331
- instantaneous total number of queued (not executing) requests,
332
- grouped by priority level and FlowSchema.
333
-
334
- * ` apiserver_flowcontrol_current_executing_requests ` gives the instantaneous
335
- total number of executing requests, grouped by priority level and FlowSchema.
336
-
337
- * ` apiserver_flowcontrol_request_queue_length_after_enqueue ` gives a
338
- histogram of queue lengths for the queues, grouped by priority level
339
- and FlowSchema, as sampled by the enqueued requests. Each request
340
- that gets queued contributes one sample to its histogram, reporting
341
- the length of the queue just after the request was added. Note that
342
- this produces different statistics than an unbiased survey would.
328
+ * ` apiserver_flowcontrol_dispatched_requests_total ` is a counter
329
+ vector (cumulative since server start) of requests that began
330
+ executing, broken down by the labels ` flowSchema ` (indicating the
331
+ one that matched the request) and ` priorityLevel ` (indicating the
332
+ one to which the request was assigned).
333
+
334
+ * ` apiserver_current_inqueue_requests ` is a gauge vector of recent
335
+ high water marks of the number of queued requests, grouped by a
336
+ label named ` request_kind ` whose value is ` mutating ` or ` readOnly ` .
337
+ These high water marks describe the largest number seen in the one
338
+ second window most recently completed. These complement the older
339
+ ` apiserver_current_inflight_requests ` gauge vector that holds the
340
+ last window's high water mark of number of requests actively being
341
+ served.
342
+
343
+ * ` apiserver_flowcontrol_read_vs_write_request_count_samples ` is a
344
+ histogram vector of observations of the then-current number of
345
+ requests, broken down by the labels ` phase ` (which takes on the
346
+ values ` waiting ` and ` executing ` ) and ` request_kind ` (which takes on
347
+ the values ` mutating ` and ` readOnly ` ). The observations are made
348
+ periodically at a high rate.
349
+
350
+ * ` apiserver_flowcontrol_read_vs_write_request_count_watermarks ` is a
351
+ histogram vector of high or low water marks of the number of
352
+ requests broken down by the labels ` phase ` (which takes on the
353
+ values ` waiting ` and ` executing ` ) and ` request_kind ` (which takes on
354
+ the values ` mutating ` and ` readOnly ` ); the label ` mark ` takes on
355
+ values ` high ` and ` low ` . The water marks are accumulated over
356
+ windows bounded by the times when an observation was added to
357
+ ` apiserver_flowcontrol_read_vs_write_request_count_samples ` . These
358
+ water marks show the range of values that occurred between samples.
359
+
360
+ * ` apiserver_flowcontrol_current_inqueue_requests ` is a gauge vector
361
+ holding the instantaneous number of queued (not executing) requests,
362
+ broken down by the labels ` priorityLevel ` and ` flowSchema ` .
363
+
364
+ * ` apiserver_flowcontrol_current_executing_requests ` is a gauge vector
365
+ holding the instantaneous number of executing (not waiting in a
366
+ queue) requests, broken down by the labels ` priorityLevel ` and
367
+ ` flowSchema ` .
368
+
369
+ * ` apiserver_flowcontrol_priority_level_request_count_samples ` is a
370
+ histogram vector of observations of the then-current number of
371
+ requests broken down by the labels ` phase ` (which takes on the
372
+ values ` waiting ` and ` executing ` ) and ` priorityLevel ` . Each
373
+ histogram gets observations taken periodically, up through the last
374
+ activity of the relevant sort. The observations are made at a high
375
+ rate.
376
+
377
+ * ` apiserver_flowcontrol_priority_level_request_count_watermarks ` is a
378
+ histogram vector of high or low water marks of the number of
379
+ requests broken down by the labels ` phase ` (which takes on the
380
+ values ` waiting ` and ` executing ` ) and ` priorityLevel ` ; the label
381
+ ` mark ` takes on values ` high ` and ` low ` . The water marks are
382
+ accumulated over windows bounded by the times when an observation
383
+ was added to
384
+ ` apiserver_flowcontrol_priority_level_request_count_samples ` . These
385
+ water marks show the range of values that occurred between samples.
386
+
387
+ * ` apiserver_flowcontrol_request_queue_length_after_enqueue ` is a
388
+ histogram vector of queue lengths for the queues, broken down by
389
+ the labels ` priorityLevel ` and ` flowSchema ` , as sampled by the
390
+ enqueued requests. Each request that gets queued contributes one
391
+ sample to its histogram, reporting the length of the queue just
392
+ after the request was added. Note that this produces different
393
+ statistics than an unbiased survey would.
343
394
{{< note >}}
344
395
An outlier value in a histogram here means it is likely that a single flow
345
396
(i.e., requests by one user or for one namespace, depending on
@@ -349,24 +400,29 @@ poorly-behaved workloads that may be harming system health.
349
400
to increase that PriorityLevelConfiguration's concurrency shares.
350
401
{{< /note >}}
351
402
352
- * ` apiserver_flowcontrol_request_concurrency_limit ` gives the computed
353
- concurrency limit (based on the API server's total concurrency limit and PriorityLevelConfigurations'
354
- concurrency shares) for each PriorityLevelConfiguration.
355
-
356
- * ` apiserver_flowcontrol_request_wait_duration_seconds ` gives a histogram of how
357
- long requests spent queued, grouped by the FlowSchema that matched the
358
- request, the PriorityLevel to which it was assigned, and whether or not the
359
- request successfully executed.
403
+ * ` apiserver_flowcontrol_request_concurrency_limit ` is a gauge vector
404
+ hoding the computed concurrency limit (based on the API server's
405
+ total concurrency limit and PriorityLevelConfigurations' concurrency
406
+ shares), broken down by the label ` priorityLevel ` .
407
+
408
+ * ` apiserver_flowcontrol_request_wait_duration_seconds ` is a histogram
409
+ vector of how long requests spent queued, broken down by the labels
410
+ ` flowSchema ` (indicating which one matched the request),
411
+ ` priorityLevel ` (indicating the one to which the request was
412
+ assigned), and ` execute ` (indicating whether the request started
413
+ executing).
360
414
{{< note >}}
361
415
Since each FlowSchema always assigns requests to a single
362
416
PriorityLevelConfiguration, you can add the histograms for all the
363
417
FlowSchemas for one priority level to get the effective histogram for
364
418
requests assigned to that priority level.
365
419
{{< /note >}}
366
420
367
- * ` apiserver_flowcontrol_request_execution_seconds ` gives a histogram of how
368
- long requests took to actually execute, grouped by the FlowSchema that matched the
369
- request and the PriorityLevel to which it was assigned.
421
+ * ` apiserver_flowcontrol_request_execution_seconds ` is a histogram
422
+ vector of how long requests took to actually execute, broken down by
423
+ the labels ` flowSchema ` (indicating which one matched the request)
424
+ and ` priorityLevel ` (indicating the one to which the request was
425
+ assigned).
370
426
371
427
### Debug endpoints
372
428
0 commit comments