1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 api-approved.openshift.io: https://github.com/openshift/api/pull/897
6 include.release.openshift.io/self-managed-high-availability: "true"
7 include.release.openshift.io/single-node-developer: "true"
8 name: apirequestcounts.apiserver.openshift.io
9spec:
10 group: apiserver.openshift.io
11 names:
12 kind: APIRequestCount
13 listKind: APIRequestCountList
14 plural: apirequestcounts
15 singular: apirequestcount
16 scope: Cluster
17 versions:
18 - name: v1
19 served: true
20 storage: true
21 subresources:
22 status: {}
23 additionalPrinterColumns:
24 - name: RemovedInRelease
25 type: string
26 description: Release in which an API will be removed.
27 jsonPath: .status.removedInRelease
28 - name: RequestsInCurrentHour
29 type: integer
30 description: Number of requests in the current hour.
31 jsonPath: .status.currentHour.requestCount
32 - name: RequestsInLast24h
33 type: integer
34 description: Number of requests in the last 24h.
35 jsonPath: .status.requestCount
36 "schema":
37 "openAPIV3Schema":
38 description: "APIRequestCount tracks requests made to an API. The instance name must be of the form `resource.version.group`, matching the resource. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
39 type: object
40 required:
41 - spec
42 properties:
43 apiVersion:
44 description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
45 type: string
46 kind:
47 description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
48 type: string
49 metadata:
50 type: object
51 spec:
52 description: spec defines the characteristics of the resource.
53 type: object
54 properties:
55 numberOfUsersToReport:
56 description: numberOfUsersToReport is the number of users to include in the report. If unspecified or zero, the default is ten. This is default is subject to change.
57 type: integer
58 format: int64
59 default: 10
60 maximum: 100
61 minimum: 0
62 status:
63 description: status contains the observed state of the resource.
64 type: object
65 properties:
66 conditions:
67 description: conditions contains details of the current status of this API Resource.
68 type: array
69 items:
70 description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
71 type: object
72 required:
73 - lastTransitionTime
74 - message
75 - reason
76 - status
77 - type
78 properties:
79 lastTransitionTime:
80 description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
81 type: string
82 format: date-time
83 message:
84 description: message is a human readable message indicating details about the transition. This may be an empty string.
85 type: string
86 maxLength: 32768
87 observedGeneration:
88 description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
89 type: integer
90 format: int64
91 minimum: 0
92 reason:
93 description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
94 type: string
95 maxLength: 1024
96 minLength: 1
97 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
98 status:
99 description: status of the condition, one of True, False, Unknown.
100 type: string
101 enum:
102 - "True"
103 - "False"
104 - Unknown
105 type:
106 description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
107 type: string
108 maxLength: 316
109 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
110 currentHour:
111 description: currentHour contains request history for the current hour. This is porcelain to make the API easier to read by humans seeing if they addressed a problem. This field is reset on the hour.
112 type: object
113 properties:
114 byNode:
115 description: byNode contains logs of requests per node.
116 type: array
117 maxItems: 512
118 items:
119 description: PerNodeAPIRequestLog contains logs of requests to a certain node.
120 type: object
121 properties:
122 byUser:
123 description: byUser contains request details by top .spec.numberOfUsersToReport users. Note that because in the case of an apiserver, restart the list of top users is determined on a best-effort basis, the list might be imprecise. In addition, some system users may be explicitly included in the list.
124 type: array
125 maxItems: 500
126 items:
127 description: PerUserAPIRequestCount contains logs of a user's requests.
128 type: object
129 properties:
130 byVerb:
131 description: byVerb details by verb.
132 type: array
133 maxItems: 10
134 items:
135 description: PerVerbAPIRequestCount requestCounts requests by API request verb.
136 type: object
137 properties:
138 requestCount:
139 description: requestCount of requests for verb.
140 type: integer
141 format: int64
142 minimum: 0
143 verb:
144 description: verb of API request (get, list, create, etc...)
145 type: string
146 maxLength: 20
147 requestCount:
148 description: requestCount of requests by the user across all verbs.
149 type: integer
150 format: int64
151 minimum: 0
152 userAgent:
153 description: userAgent that made the request. The same user often has multiple binaries which connect (pods with many containers). The different binaries will have different userAgents, but the same user. In addition, we have userAgents with version information embedded and the userName isn't likely to change.
154 type: string
155 maxLength: 1024
156 username:
157 description: userName that made the request.
158 type: string
159 maxLength: 512
160 nodeName:
161 description: nodeName where the request are being handled.
162 type: string
163 maxLength: 512
164 minLength: 1
165 requestCount:
166 description: requestCount is a sum of all requestCounts across all users, even those outside of the top 10 users.
167 type: integer
168 format: int64
169 minimum: 0
170 requestCount:
171 description: requestCount is a sum of all requestCounts across nodes.
172 type: integer
173 format: int64
174 minimum: 0
175 last24h:
176 description: last24h contains request history for the last 24 hours, indexed by the hour, so 12:00AM-12:59 is in index 0, 6am-6:59am is index 6, etc. The index of the current hour is updated live and then duplicated into the requestsLastHour field.
177 type: array
178 maxItems: 24
179 items:
180 description: PerResourceAPIRequestLog logs request for various nodes.
181 type: object
182 properties:
183 byNode:
184 description: byNode contains logs of requests per node.
185 type: array
186 maxItems: 512
187 items:
188 description: PerNodeAPIRequestLog contains logs of requests to a certain node.
189 type: object
190 properties:
191 byUser:
192 description: byUser contains request details by top .spec.numberOfUsersToReport users. Note that because in the case of an apiserver, restart the list of top users is determined on a best-effort basis, the list might be imprecise. In addition, some system users may be explicitly included in the list.
193 type: array
194 maxItems: 500
195 items:
196 description: PerUserAPIRequestCount contains logs of a user's requests.
197 type: object
198 properties:
199 byVerb:
200 description: byVerb details by verb.
201 type: array
202 maxItems: 10
203 items:
204 description: PerVerbAPIRequestCount requestCounts requests by API request verb.
205 type: object
206 properties:
207 requestCount:
208 description: requestCount of requests for verb.
209 type: integer
210 format: int64
211 minimum: 0
212 verb:
213 description: verb of API request (get, list, create, etc...)
214 type: string
215 maxLength: 20
216 requestCount:
217 description: requestCount of requests by the user across all verbs.
218 type: integer
219 format: int64
220 minimum: 0
221 userAgent:
222 description: userAgent that made the request. The same user often has multiple binaries which connect (pods with many containers). The different binaries will have different userAgents, but the same user. In addition, we have userAgents with version information embedded and the userName isn't likely to change.
223 type: string
224 maxLength: 1024
225 username:
226 description: userName that made the request.
227 type: string
228 maxLength: 512
229 nodeName:
230 description: nodeName where the request are being handled.
231 type: string
232 maxLength: 512
233 minLength: 1
234 requestCount:
235 description: requestCount is a sum of all requestCounts across all users, even those outside of the top 10 users.
236 type: integer
237 format: int64
238 minimum: 0
239 requestCount:
240 description: requestCount is a sum of all requestCounts across nodes.
241 type: integer
242 format: int64
243 minimum: 0
244 removedInRelease:
245 description: removedInRelease is when the API will be removed.
246 type: string
247 maxLength: 64
248 minLength: 0
249 pattern: ^[0-9][0-9]*\.[0-9][0-9]*$
250 requestCount:
251 description: requestCount is a sum of all requestCounts across all current hours, nodes, and users.
252 type: integer
253 format: int64
254 minimum: 0
View as plain text