You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sig-scalability/slos/api_call_latency.md
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,28 @@
1
1
## API call latency SLIs/SLOs details
2
2
3
+
### Definition
4
+
5
+
| Status | SLI | SLO |
6
+
| --- | --- | --- |
7
+
|__Official__| Latency<sup>[1](#footnote1)</sup> of mutating<sup>[2](#footnote2)</sup> API calls for single objects for every (resource, verb) pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, verb) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day <= 1s |
8
+
|__Official__| Latency<sup>[1](#footnote1)</sup> of non-streaming read-only<sup>[3](#footnote3)</sup> API calls for every (resource, scope<sup>[4](#footnote4)</sup>) pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, scope) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day (a) <= 1s if `scope=resource` (b) <= 5s if `scope=namespace` (c) <= 30s if `scope=cluster`|
9
+
10
+
<aname="footnote1">\[1\]</a>By latency of API call in this doc we mean time
11
+
from the moment when apiserver gets the request to last byte of response sent
12
+
to the user.
13
+
14
+
<aname="footnote2">\[2\]</a>By mutating API calls we mean POST, PUT, DELETE
15
+
and PATCH.
16
+
17
+
<aname="footnote3">\[3\]</a>By non-streaming read-only API calls we mean GET
18
+
requests without `watch=true` option set. (Note that in Kubernetes internally
19
+
it translates to both GET and LIST calls).
20
+
21
+
<aname="footnote4">\[4\]</a>A scope of a request can be either (a) `resource`
22
+
if the request is about a single object, (b) `namespace` if it is about objects
23
+
from a single namespace or (c) `cluster` if it spawns objects from multiple
24
+
namespaces.
25
+
3
26
### User stories
4
27
- As a user of vanilla Kubernetes, I want some guarantee how quickly I get the
Copy file name to clipboardExpand all lines: sig-scalability/slos/pod_startup_latency.md
+13Lines changed: 13 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,18 @@
1
1
## Pod startup latency SLI/SLO details
2
2
3
+
### Definition
4
+
5
+
| Status | SLI | SLO |
6
+
| --- | --- | --- |
7
+
|__Official__| Startup latency of stateless<sup>[1](#footnote1)</sup> and schedulable<sup>[2](#footnote2)</sup> pods, excluding time to pull images and run init containers, measured from pod creation timestamp to when all its containers are reported as started and observed via watch, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, 99th percentile per cluster-day <= 5s |
8
+
9
+
<aname="footnote1">[1\]</a>A `stateless pod` is defined as a pod that doesn't
10
+
mount volumes with sources other than secrets, config maps, downward API and
11
+
empty dir.
12
+
13
+
<aname="footnote2">[2\]</a>By schedulable pod we mean a pod that can be
14
+
scheduled in the cluster without causing any preemption.
15
+
3
16
### User stories
4
17
- As a user of vanilla Kubernetes, I want some guarantee how quickly my pods
Copy file name to clipboardExpand all lines: sig-scalability/slos/slos.md
+4-27Lines changed: 4 additions & 27 deletions
Original file line number
Diff line number
Diff line change
@@ -100,37 +100,14 @@ Prerequisite: Kubernetes cluster is available and serving.
100
100
101
101
| Status | SLI | SLO | User stories, test scenarios, ... |
102
102
| --- | --- | --- | --- |
103
-
|__Official__| Latency<sup>[1](#footnote1)</sup> of mutating<sup>[2](#footnote2)</sup> API calls for single objects for every (resource, verb) pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, verb) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day<sup>[3](#footnote3)</sup> <= 1s |[Details](./api_call_latency.md)|
104
-
|__Official__| Latency<sup>[1](#footnote1)</sup> of non-streaming read-only<sup>[4](#footnote3)</sup> API calls for every (resource, scope<sup>[5](#footnote4)</sup>) pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, scope) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day (a) <= 1s if `scope=resource` (b) <= 5s if `scope=namespace` (c) <= 30s if `scope=cluster`|[Details](./api_call_latency.md)|
105
-
|__Official__| Startup latency of stateless<sup>[6](#footnode6)</sup> and schedulable<sup>[7](#footnote7)</sup> pods, excluding time to pull images and run init containers, measured from pod creation timestamp to when all its containers are reported as started and observed via watch, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, 99th percentile per cluster-day <= 5s |[Details](./pod_startup_latency.md)|
103
+
|__Official__| Latency of mutating API calls for single objects for every (resource, verb) pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, verb) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day<sup>[1](#footnote1)</sup> <= 1s |[Details](./api_call_latency.md)|
104
+
|__Official__| Latency of non-streaming read-only API calls for every (resource, scope pair, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, for every (resource, scope) pair, excluding virtual and aggregated resources and Custom Resource Definitions, 99th percentile per cluster-day<sup>[1](#footnote1)</sup> (a) <= 1s if `scope=resource` (b) <= 5s if `scope=namespace` (c) <= 30s if `scope=cluster`|[Details](./api_call_latency.md)|
105
+
|__Official__| Startup latency of stateless and schedulable pods, excluding time to pull images and run init containers, measured from pod creation timestamp to when all its containers are reported as started and observed via watch, measured as 99th percentile over last 5 minutes | In default Kubernetes installation, 99th percentile per cluster-day<sup>[1](#footnote1)</sup> <= 5s |[Details](./pod_startup_latency.md)|
106
106
107
-
<aname="footnote1">\[1\]</a>By latency of API call in this doc we mean time
108
-
from the moment when apiserver gets the request to last byte of response sent
109
-
to the user.
110
-
111
-
<aname="footnote2">\[2\]</a>By mutating API calls we mean POST, PUT, DELETE
112
-
and PATCH.
113
-
114
-
<aname="footnote3">\[3\]</a> For the purpose of visualization it will be a
107
+
<aname="footnote1">\[1\]</a> For the purpose of visualization it will be a
115
108
sliding window. However, for the purpose of reporting the SLO, it means one
116
109
point per day (whether SLO was satisfied on a given day or not).
117
110
118
-
<aname="footnote4">\[4\]</a>By non-streaming read-only API calls we mean GET
119
-
requests without `watch=true` option set. (Note that in Kubernetes internally
120
-
it translates to both GET and LIST calls).
121
-
122
-
<aname="footnote5">\[5\]</a>A scope of a request can be either (a) `resource`
123
-
if the request is about a single object, (b) `namespace` if it is about objects
124
-
from a single namespace or (c) `cluster` if it spawns objects from multiple
125
-
namespaces.
126
-
127
-
<aname="footnode6">[6\]</a>A `stateless pod` is defined as a pod that doesn't
128
-
mount volumes with sources other than secrets, config maps, downward API and
129
-
empty dir.
130
-
131
-
<aname="footnode7">[7\]</a>By schedulable pod we mean a pod that can be
132
-
scheduled in the cluster without causing any preemption.
133
-
134
111
### Burst SLIs/SLOs
135
112
136
113
| Status | SLI | SLO | User stories, test scenarios, ... |
Copy file name to clipboardExpand all lines: sig-scalability/slos/system_throughput.md
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,11 @@
1
1
## System throughput SLI/SLO details
2
2
3
+
### Definition
4
+
5
+
| Status | SLI | SLO |
6
+
| --- | --- | --- |
7
+
| WIP | Time to start 30\*#nodes pods, measured from test scenario start until observing last Pod as ready | Benchmark: when all images present on all Nodes, 99th percentile <= X minutes |
8
+
3
9
### User stories
4
10
- As a user, I want a guarantee that my workload of X pods can be started
Copy file name to clipboardExpand all lines: sig-scalability/slos/watch_latency.md
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,11 @@
1
1
## Watch latency SLI details
2
2
3
+
### Definition
4
+
5
+
| Status | SLI |
6
+
| --- | --- |
7
+
| WIP | Watch latency for every resource, (from the moment when object is stored in database to when it's ready to be sent to all watchers), measured as 99th percentile over last 5 minutes |
8
+
3
9
### User stories
4
10
- As an administrator, if Kubernetes is slow, I would like to know if the root
5
11
cause of it is slow api-machinery (slow watch) or something farther the path
0 commit comments