1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 cnrm.cloud.google.com/version: 0.0.0-dev
6 creationTimestamp: null
7 labels:
8 cnrm.cloud.google.com/dcl2crd: "true"
9 cnrm.cloud.google.com/managed-by-kcc: "true"
10 cnrm.cloud.google.com/stability-level: stable
11 cnrm.cloud.google.com/system: "true"
12 name: logginglogmetrics.logging.cnrm.cloud.google.com
13spec:
14 group: logging.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: LoggingLogMetric
19 plural: logginglogmetrics
20 shortNames:
21 - gcplogginglogmetric
22 - gcplogginglogmetrics
23 singular: logginglogmetric
24 preserveUnknownFields: false
25 scope: Namespaced
26 versions:
27 - additionalPrinterColumns:
28 - jsonPath: .metadata.creationTimestamp
29 name: Age
30 type: date
31 - description: When 'True', the most recent reconcile of the resource succeeded
32 jsonPath: .status.conditions[?(@.type=='Ready')].status
33 name: Ready
34 type: string
35 - description: The reason for the value in 'Ready'
36 jsonPath: .status.conditions[?(@.type=='Ready')].reason
37 name: Status
38 type: string
39 - description: The last transition time for the value in 'Status'
40 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
41 name: Status Age
42 type: date
43 name: v1beta1
44 schema:
45 openAPIV3Schema:
46 properties:
47 apiVersion:
48 description: 'apiVersion defines the versioned schema of this representation
49 of an object. Servers should convert recognized schemas to the latest
50 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
51 type: string
52 kind:
53 description: 'kind is a string value representing the REST resource this
54 object represents. Servers may infer this from the endpoint the client
55 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
56 type: string
57 metadata:
58 type: object
59 spec:
60 properties:
61 bucketOptions:
62 description: Optional. The `bucket_options` are required when the
63 logs-based metric is using a DISTRIBUTION value type and it describes
64 the bucket boundaries used to create a histogram of the extracted
65 values.
66 properties:
67 explicitBuckets:
68 description: The explicit buckets.
69 properties:
70 bounds:
71 description: The values must be monotonically increasing.
72 items:
73 format: double
74 type: number
75 type: array
76 type: object
77 exponentialBuckets:
78 description: The exponential buckets.
79 properties:
80 growthFactor:
81 description: Must be greater than 1.
82 format: double
83 type: number
84 numFiniteBuckets:
85 description: Must be greater than 0.
86 format: int64
87 type: integer
88 scale:
89 description: Must be greater than 0.
90 format: double
91 type: number
92 type: object
93 linearBuckets:
94 description: The linear bucket.
95 properties:
96 numFiniteBuckets:
97 description: Must be greater than 0.
98 format: int64
99 type: integer
100 offset:
101 description: Lower bound of the first bucket.
102 format: double
103 type: number
104 width:
105 description: Must be greater than 0.
106 format: double
107 type: number
108 type: object
109 type: object
110 description:
111 description: Optional. A description of this metric, which is used
112 in documentation. The maximum length of the description is 8000
113 characters.
114 type: string
115 disabled:
116 description: Optional. If set to True, then this metric is disabled
117 and it does not generate any points.
118 type: boolean
119 filter:
120 description: 'Required. An [advanced logs filter](https://cloud.google.com/logging/docs/view/advanced_filters)
121 which is used to match log entries. Example: "resource.type=gae_app
122 AND severity>=ERROR" The maximum length of the filter is 20000 characters.'
123 type: string
124 labelExtractors:
125 additionalProperties:
126 type: string
127 description: Optional. A map from a label key string to an extractor
128 expression which is used to extract data from a log entry field
129 and assign as the label value. Each label key specified in the LabelDescriptor
130 must have an associated extractor expression in this map. The syntax
131 of the extractor expression is the same as for the `value_extractor`
132 field. The extracted value is converted to the type defined in the
133 label descriptor. If the either the extraction or the type conversion
134 fails, the label will have a default value. The default value for
135 a string label is an empty string, for an integer label its 0, and
136 for a boolean label its `false`. Note that there are upper bounds
137 on the maximum number of labels and the number of active time series
138 that are allowed in a project.
139 type: object
140 metricDescriptor:
141 description: Optional. The metric descriptor associated with the logs-based
142 metric. If unspecified, it uses a default metric descriptor with
143 a DELTA metric kind, INT64 value type, with no labels and a unit
144 of "1". Such a metric counts the number of log entries matching
145 the `filter` expression. The `name`, `type`, and `description` fields
146 in the `metric_descriptor` are output only, and is constructed using
147 the `name` and `description` field in the LogMetric. To create a
148 logs-based metric that records a distribution of log values, a DELTA
149 metric kind with a DISTRIBUTION value type must be used along with
150 a `value_extractor` expression in the LogMetric. Each label in the
151 metric descriptor must have a matching label name as the key and
152 an extractor expression as the value in the `label_extractors` map.
153 The `metric_kind` and `value_type` fields in the `metric_descriptor`
154 cannot be updated once initially configured. New labels can be added
155 in the `metric_descriptor`, but existing labels cannot be modified
156 except for their description.
157 properties:
158 displayName:
159 description: A concise name for the metric, which can be displayed
160 in user interfaces. Use sentence case without an ending period,
161 for example "Request count". This field is optional but it is
162 recommended to be set for any metrics associated with user-visible
163 concepts, such as Quota.
164 type: string
165 labels:
166 description: The set of labels that can be used to describe a
167 specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies`
168 metric type has a label for the HTTP response code, `response_code`,
169 so you can look at latencies for successful responses or just
170 for responses that failed.
171 items:
172 properties:
173 description:
174 description: Immutable. A human-readable description for
175 the label.
176 type: string
177 key:
178 description: Immutable. The label key.
179 type: string
180 valueType:
181 description: 'Immutable. The type of data that can be assigned
182 to the label. Possible values: STRING, BOOL, INT64, DOUBLE,
183 DISTRIBUTION, MONEY'
184 type: string
185 type: object
186 type: array
187 launchStage:
188 description: 'Optional. The launch stage of the metric definition.
189 Possible values: UNIMPLEMENTED, PRELAUNCH, EARLY_ACCESS, ALPHA,
190 BETA, GA, DEPRECATED'
191 type: string
192 metadata:
193 description: Optional. Metadata which can be used to guide usage
194 of the metric.
195 properties:
196 ingestDelay:
197 description: The delay of data points caused by ingestion.
198 Data points older than this age are guaranteed to be ingested
199 and available to be read, excluding data loss due to errors.
200 type: string
201 samplePeriod:
202 description: The sampling period of metric data points. For
203 metrics which are written periodically, consecutive data
204 points are stored at this time interval, excluding data
205 loss due to errors. Metrics with a higher granularity have
206 a smaller sampling period.
207 type: string
208 type: object
209 metricKind:
210 description: 'Immutable. Whether the metric records instantaneous
211 values, changes to a value, etc. Some combinations of `metric_kind`
212 and `value_type` might not be supported. Possible values: GAUGE,
213 DELTA, CUMULATIVE'
214 type: string
215 unit:
216 description: 'The units in which the metric value is reported.
217 It is only applicable if the `value_type` is `INT64`, `DOUBLE`,
218 or `DISTRIBUTION`. The `unit` defines the representation of
219 the stored metric values. Different systems might scale the
220 values to be more easily displayed (so a value of `0.02kBy`
221 _might_ be displayed as `20By`, and a value of `3523kBy` _might_
222 be displayed as `3.5MBy`). However, if the `unit` is `kBy`,
223 then the value of the metric is always in thousands of bytes,
224 no matter how it might be displayed. If you want a custom metric
225 to record the exact number of CPU-seconds used by a job, you
226 can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}`
227 (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
228 CPU-seconds, then the value is written as `12005`. Alternatively,
229 if you want a custom metric to record data in a more granular
230 way, you can create a `DOUBLE CUMULATIVE` metric whose `unit`
231 is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
232 or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
233 The supported units are a subset of [The Unified Code for Units
234 of Measure](https://unitsofmeasure.org/ucum.html) standard:
235 **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second
236 * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes
237 (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9)
238 * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z`
239 zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u`
240 micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto
241 (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto
242 (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30)
243 * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar
244 also includes these connectors: * `/` division or ratio (as
245 an infix operator). For examples, `kBy/{email}` or `MiBy/10ms`
246 (although you should almost never have `/s` in a metric `unit`;
247 rates should always be computed at query time from the underlying
248 cumulative or delta value). * `.` multiplication or composition
249 (as an infix operator). For examples, `GBy.d` or `k{watt}.h`.
250 The grammar for a unit is as follows: Expression = Component:
251 { "." Component } { "/" Component } ; Component = ( [ PREFIX
252 ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation
253 = "{" NAME "}" ; Notes: * `Annotation` is just a comment if
254 it follows a `UNIT`. If the annotation is used alone, then the
255 unit is equivalent to `1`. For examples, `{request}/s == 1/s`,
256 `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank
257 printable ASCII characters not containing `{` or `}`. * `1`
258 represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity)
259 of 1, such as in `1/s`. It is typically used when none of the
260 basic units are appropriate. For example, "new users per day"
261 can be represented as `1/d` or `{new-users}/d` (and a metric
262 value `5` would mean "5 new users). Alternatively, "thousands
263 of page views per day" would be represented as `1000/d` or `k1/d`
264 or `k{page_views}/d` (and a metric value of `5.3` would mean
265 "5300 page views per day"). * `%` represents dimensionless value
266 of 1/100, and annotates values giving a percentage (so the metric
267 values are typically in the range of 0..100, and a metric value
268 `3` means "3 percent"). * `10^2.%` indicates a metric contains
269 a ratio, typically in the range 0..1, that will be multiplied
270 by 100 and displayed as a percentage (so a metric value `0.03`
271 means "3 percent").'
272 type: string
273 valueType:
274 description: 'Immutable. Whether the measurement is an integer,
275 a floating-point number, etc. Some combinations of `metric_kind`
276 and `value_type` might not be supported. Possible values: STRING,
277 BOOL, INT64, DOUBLE, DISTRIBUTION, MONEY'
278 type: string
279 type: object
280 projectRef:
281 description: Immutable. The Project that this resource belongs to.
282 oneOf:
283 - not:
284 required:
285 - external
286 required:
287 - name
288 - not:
289 anyOf:
290 - required:
291 - name
292 - required:
293 - namespace
294 required:
295 - external
296 properties:
297 external:
298 description: |-
299 The resource name of the project in which to create the metric.
300
301 Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).
302 type: string
303 name:
304 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
305 type: string
306 namespace:
307 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
308 type: string
309 type: object
310 resourceID:
311 description: Immutable. Optional. The name of the resource. Used for
312 creation and acquisition. When unset, the value of `metadata.name`
313 is used as the default.
314 type: string
315 valueExtractor:
316 description: 'Optional. A `value_extractor` is required when using
317 a distribution logs-based metric to extract the values to record
318 from a log entry. Two functions are supported for value extraction:
319 `EXTRACT(field)` or `REGEXP_EXTRACT(field, regex)`. The argument
320 are: 1. field: The name of the log entry field from which the value
321 is to be extracted. 2. regex: A regular expression using the Google
322 RE2 syntax (https://github.com/google/re2/wiki/Syntax) with a single
323 capture group to extract data from the specified log entry field.
324 The value of the field is converted to a string before applying
325 the regex. It is an error to specify a regex that does not include
326 exactly one capture group. The result of the extraction must be
327 convertible to a double type, as the distribution always records
328 double values. If either the extraction or the conversion to double
329 fails, then those values are not recorded in the distribution. Example:
330 `REGEXP_EXTRACT(jsonPayload.request, ".*quantity=(d+).*")`'
331 type: string
332 required:
333 - filter
334 - projectRef
335 type: object
336 status:
337 properties:
338 conditions:
339 description: Conditions represent the latest available observation
340 of the resource's current state.
341 items:
342 properties:
343 lastTransitionTime:
344 description: Last time the condition transitioned from one status
345 to another.
346 type: string
347 message:
348 description: Human-readable message indicating details about
349 last transition.
350 type: string
351 reason:
352 description: Unique, one-word, CamelCase reason for the condition's
353 last transition.
354 type: string
355 status:
356 description: Status is the status of the condition. Can be True,
357 False, Unknown.
358 type: string
359 type:
360 description: Type is the type of the condition.
361 type: string
362 type: object
363 type: array
364 createTime:
365 description: Output only. The creation timestamp of the metric. This
366 field may not be present for older metrics.
367 format: date-time
368 type: string
369 metricDescriptor:
370 properties:
371 description:
372 description: A detailed description of the metric, which can be
373 used in documentation.
374 type: string
375 monitoredResourceTypes:
376 description: Read-only. If present, then a time series, which
377 is identified partially by a metric type and a MonitoredResourceDescriptor,
378 that is associated with this metric type can only be associated
379 with one of the monitored resource types listed here.
380 items:
381 type: string
382 type: array
383 name:
384 description: The resource name of the metric descriptor.
385 type: string
386 type:
387 description: 'The metric type, including its DNS name prefix.
388 The type is not URL-encoded. All user-defined metric types have
389 the DNS name `custom.googleapis.com` or `external.googleapis.com`.
390 Metric types should use a natural hierarchical grouping. For
391 example: "custom.googleapis.com/invoice/paid/amount" "external.googleapis.com/prometheus/up"
392 "appengine.googleapis.com/http/server/response_latencies"'
393 type: string
394 type: object
395 observedGeneration:
396 description: ObservedGeneration is the generation of the resource
397 that was most recently observed by the Config Connector controller.
398 If this is equal to metadata.generation, then that means that the
399 current reported status reflects the most recent desired state of
400 the resource.
401 type: integer
402 updateTime:
403 description: Output only. The last update timestamp of the metric.
404 This field may not be present for older metrics.
405 format: date-time
406 type: string
407 type: object
408 required:
409 - spec
410 type: object
411 served: true
412 storage: true
413 subresources:
414 status: {}
415status:
416 acceptedNames:
417 kind: ""
418 plural: ""
419 conditions: []
420 storedVersions: []
View as plain text