Skip to content

Commit d67bc0e

Browse files
committed
This PR has the proposed API changes needed for RFE-6849. The functionality is not implemented.
1 parent 6dbe128 commit d67bc0e

8 files changed

+932
-147
lines changed

api/observability/v1/output_types.go

+33
Original file line numberDiff line numberDiff line change
@@ -210,15 +210,41 @@ type BaseOutputTuningSpec struct {
210210

211211
// MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
212212
//
213+
// A duration string is a sequence of decimal numbers and unit suffixes,
214+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
215+
//
213216
// +kubebuilder:validation:Optional
214217
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Minimum Retry Duration"
215218
MinRetryDuration *time.Duration `json:"minRetryDuration,omitempty"`
216219

217220
// MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
218221
//
222+
// A duration string is a sequence of decimal numbers and unit suffixes,
223+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
224+
//
219225
// +kubebuilder:validation:Optional
220226
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Maximum Retry Duration"
221227
MaxRetryDuration *time.Duration `json:"maxRetryDuration,omitempty"`
228+
229+
// MaxBufferSize is the maximum size in bytes allowed for buffering unsent data to an output.
230+
// It is written as a [Kubernetes quantity], for example: 128974848, 129e6, 129M, 123Mi
231+
//
232+
// NOTE: It is not recommended to set this field unless you understand the disk space
233+
// requirements, and have done tests to validate performance under realistic conditions.
234+
//
235+
// The following are potential risks to bear in mind:
236+
//
237+
// - With `deliveryMode: AtLeastOnce`, buffers are created on the local node `/var` file system.
238+
// Filling up that file system can have severe consequences for the entire node.
239+
// The disk required on each nodes is the sum of all persistent output buffers, on all deployed ClusterLogForwarder instances.
240+
//
241+
// - Larger buffers can increase latency and recovery times from a period of overload.
242+
// If buffers fill up under heavy load, it takes longer for logs to get to the head of the buffer to be delivered.
243+
// If logs are not sent much faster than they are collected, the buffers may take a long time to drain.
244+
//
245+
// [Kubernetes quanitity]: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity
246+
// [Kubernetes resource limits]: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory
247+
MaxBufferSize *resource.Quantity `json:"maxBufferSize,omitempty"`
222248
}
223249

224250
// DeliveryMode sets the delivery mode for log forwarding.
@@ -650,6 +676,13 @@ type KafkaTuningSpec struct {
650676
// +kubebuilder:validation:Enum:=none;snappy;zstd;lz4
651677
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Compression"
652678
Compression string `json:"compression,omitempty"`
679+
680+
// MessageTimeout messages that are waiting to be sent are dropped after this timeout.
681+
// Used to ensure that newer messages are not blocked indefinitely by older ones.
682+
//
683+
// A duration string is a sequence of decimal numbers and a unit suffix,
684+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
685+
MessageTimeout *time.Duration `json:"messageTimeout,omitempty"`
653686
}
654687

655688
// KafkaAuthentication contains configuration for authenticating requests to a Kafka output.

api/observability/v1/zz_generated.deepcopy.go

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bundle/manifests/cluster-logging.clusterserviceversion.yaml

+109-37
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ metadata:
8282
categories: OpenShift Optional, Logging & Tracing
8383
certified: "false"
8484
containerImage: quay.io/openshift-logging/cluster-logging-operator:latest
85-
createdAt: "2025-02-06T14:39:16Z"
85+
createdAt: "2025-03-05T17:12:05Z"
8686
description: The Red Hat OpenShift Logging Operator for OCP provides a means for
8787
configuring and managing log collection and forwarding.
8888
features.operators.openshift.io/cnf: "false"
@@ -467,16 +467,24 @@ spec:
467467
path: outputs[0].azureMonitor.tuning
468468
- displayName: Delivery Mode
469469
path: outputs[0].azureMonitor.tuning.deliveryMode
470-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
471-
after a delivery failure.
470+
- description: |-
471+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
472+
473+
474+
A duration string is a sequence of decimal numbers and unit suffixes,
475+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
472476
displayName: Maximum Retry Duration
473477
path: outputs[0].azureMonitor.tuning.maxRetryDuration
474478
- description: MaxWrite limits the maximum payload in terms of bytes of a single
475479
"send" to the output.
476480
displayName: Batch Size
477481
path: outputs[0].azureMonitor.tuning.maxWrite
478-
- description: MinRetryDuration is the minimum time to wait between attempts
479-
to retry after delivery a failure.
482+
- description: |-
483+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
484+
485+
486+
A duration string is a sequence of decimal numbers and unit suffixes,
487+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
480488
displayName: Minimum Retry Duration
481489
path: outputs[0].azureMonitor.tuning.minRetryDuration
482490
- description: Cloudwatch configures forwarding log events to AWS Cloudwatch
@@ -606,16 +614,24 @@ spec:
606614
path: outputs[0].cloudwatch.tuning.compression
607615
- displayName: Delivery Mode
608616
path: outputs[0].cloudwatch.tuning.deliveryMode
609-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
610-
after a delivery failure.
617+
- description: |-
618+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
619+
620+
621+
A duration string is a sequence of decimal numbers and unit suffixes,
622+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
611623
displayName: Maximum Retry Duration
612624
path: outputs[0].cloudwatch.tuning.maxRetryDuration
613625
- description: MaxWrite limits the maximum payload in terms of bytes of a single
614626
"send" to the output.
615627
displayName: Batch Size
616628
path: outputs[0].cloudwatch.tuning.maxWrite
617-
- description: MinRetryDuration is the minimum time to wait between attempts
618-
to retry after delivery a failure.
629+
- description: |-
630+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
631+
632+
633+
A duration string is a sequence of decimal numbers and unit suffixes,
634+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
619635
displayName: Minimum Retry Duration
620636
path: outputs[0].cloudwatch.tuning.minRetryDuration
621637
- description: |-
@@ -724,16 +740,24 @@ spec:
724740
path: outputs[0].elasticsearch.tuning.compression
725741
- displayName: Delivery Mode
726742
path: outputs[0].elasticsearch.tuning.deliveryMode
727-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
728-
after a delivery failure.
743+
- description: |-
744+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
745+
746+
747+
A duration string is a sequence of decimal numbers and unit suffixes,
748+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
729749
displayName: Maximum Retry Duration
730750
path: outputs[0].elasticsearch.tuning.maxRetryDuration
731751
- description: MaxWrite limits the maximum payload in terms of bytes of a single
732752
"send" to the output.
733753
displayName: Batch Size
734754
path: outputs[0].elasticsearch.tuning.maxWrite
735-
- description: MinRetryDuration is the minimum time to wait between attempts
736-
to retry after delivery a failure.
755+
- description: |-
756+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
757+
758+
759+
A duration string is a sequence of decimal numbers and unit suffixes,
760+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
737761
displayName: Minimum Retry Duration
738762
path: outputs[0].elasticsearch.tuning.minRetryDuration
739763
- description: |-
@@ -815,16 +839,24 @@ spec:
815839
path: outputs[0].googleCloudLogging.tuning
816840
- displayName: Delivery Mode
817841
path: outputs[0].googleCloudLogging.tuning.deliveryMode
818-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
819-
after a delivery failure.
842+
- description: |-
843+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
844+
845+
846+
A duration string is a sequence of decimal numbers and unit suffixes,
847+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
820848
displayName: Maximum Retry Duration
821849
path: outputs[0].googleCloudLogging.tuning.maxRetryDuration
822850
- description: MaxWrite limits the maximum payload in terms of bytes of a single
823851
"send" to the output.
824852
displayName: Batch Size
825853
path: outputs[0].googleCloudLogging.tuning.maxWrite
826-
- description: MinRetryDuration is the minimum time to wait between attempts
827-
to retry after delivery a failure.
854+
- description: |-
855+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
856+
857+
858+
A duration string is a sequence of decimal numbers and unit suffixes,
859+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
828860
displayName: Minimum Retry Duration
829861
path: outputs[0].googleCloudLogging.tuning.minRetryDuration
830862
- description: HTTP configures forwarding log events to an HTTP server
@@ -904,16 +936,24 @@ spec:
904936
path: outputs[0].http.tuning.compression
905937
- displayName: Delivery Mode
906938
path: outputs[0].http.tuning.deliveryMode
907-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
908-
after a delivery failure.
939+
- description: |-
940+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
941+
942+
943+
A duration string is a sequence of decimal numbers and unit suffixes,
944+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
909945
displayName: Maximum Retry Duration
910946
path: outputs[0].http.tuning.maxRetryDuration
911947
- description: MaxWrite limits the maximum payload in terms of bytes of a single
912948
"send" to the output.
913949
displayName: Batch Size
914950
path: outputs[0].http.tuning.maxWrite
915-
- description: MinRetryDuration is the minimum time to wait between attempts
916-
to retry after delivery a failure.
951+
- description: |-
952+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
953+
954+
955+
A duration string is a sequence of decimal numbers and unit suffixes,
956+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
917957
displayName: Minimum Retry Duration
918958
path: outputs[0].http.tuning.minRetryDuration
919959
- description: |-
@@ -1166,16 +1206,24 @@ spec:
11661206
path: outputs[0].loki.tuning.compression
11671207
- displayName: Delivery Mode
11681208
path: outputs[0].loki.tuning.deliveryMode
1169-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1170-
after a delivery failure.
1209+
- description: |-
1210+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1211+
1212+
1213+
A duration string is a sequence of decimal numbers and unit suffixes,
1214+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
11711215
displayName: Maximum Retry Duration
11721216
path: outputs[0].loki.tuning.maxRetryDuration
11731217
- description: MaxWrite limits the maximum payload in terms of bytes of a single
11741218
"send" to the output.
11751219
displayName: Batch Size
11761220
path: outputs[0].loki.tuning.maxWrite
1177-
- description: MinRetryDuration is the minimum time to wait between attempts
1178-
to retry after delivery a failure.
1221+
- description: |-
1222+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1223+
1224+
1225+
A duration string is a sequence of decimal numbers and unit suffixes,
1226+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
11791227
displayName: Minimum Retry Duration
11801228
path: outputs[0].loki.tuning.minRetryDuration
11811229
- description: |-
@@ -1360,16 +1408,24 @@ spec:
13601408
path: outputs[0].lokiStack.tuning.compression
13611409
- displayName: Delivery Mode
13621410
path: outputs[0].lokiStack.tuning.deliveryMode
1363-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1364-
after a delivery failure.
1411+
- description: |-
1412+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1413+
1414+
1415+
A duration string is a sequence of decimal numbers and unit suffixes,
1416+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
13651417
displayName: Maximum Retry Duration
13661418
path: outputs[0].lokiStack.tuning.maxRetryDuration
13671419
- description: MaxWrite limits the maximum payload in terms of bytes of a single
13681420
"send" to the output.
13691421
displayName: Batch Size
13701422
path: outputs[0].lokiStack.tuning.maxWrite
1371-
- description: MinRetryDuration is the minimum time to wait between attempts
1372-
to retry after delivery a failure.
1423+
- description: |-
1424+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1425+
1426+
1427+
A duration string is a sequence of decimal numbers and unit suffixes,
1428+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
13731429
displayName: Minimum Retry Duration
13741430
path: outputs[0].lokiStack.tuning.minRetryDuration
13751431
- description: Name used to refer to the output from a `pipeline`.
@@ -1444,16 +1500,24 @@ spec:
14441500
- urn:alm:descriptor:com.tectonic.ui:text
14451501
- displayName: Delivery Mode
14461502
path: outputs[0].otlp.tuning.deliveryMode
1447-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1448-
after a delivery failure.
1503+
- description: |-
1504+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1505+
1506+
1507+
A duration string is a sequence of decimal numbers and unit suffixes,
1508+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
14491509
displayName: Maximum Retry Duration
14501510
path: outputs[0].otlp.tuning.maxRetryDuration
14511511
- description: MaxWrite limits the maximum payload in terms of bytes of a single
14521512
"send" to the output.
14531513
displayName: Batch Size
14541514
path: outputs[0].otlp.tuning.maxWrite
1455-
- description: MinRetryDuration is the minimum time to wait between attempts
1456-
to retry after delivery a failure.
1515+
- description: |-
1516+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1517+
1518+
1519+
A duration string is a sequence of decimal numbers and unit suffixes,
1520+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
14571521
displayName: Minimum Retry Duration
14581522
path: outputs[0].otlp.tuning.minRetryDuration
14591523
- description: |-
@@ -1541,16 +1605,24 @@ spec:
15411605
path: outputs[0].splunk.tuning.compression
15421606
- displayName: Delivery Mode
15431607
path: outputs[0].splunk.tuning.deliveryMode
1544-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1545-
after a delivery failure.
1608+
- description: |-
1609+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1610+
1611+
1612+
A duration string is a sequence of decimal numbers and unit suffixes,
1613+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
15461614
displayName: Maximum Retry Duration
15471615
path: outputs[0].splunk.tuning.maxRetryDuration
15481616
- description: MaxWrite limits the maximum payload in terms of bytes of a single
15491617
"send" to the output.
15501618
displayName: Batch Size
15511619
path: outputs[0].splunk.tuning.maxWrite
1552-
- description: MinRetryDuration is the minimum time to wait between attempts
1553-
to retry after delivery a failure.
1620+
- description: |-
1621+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1622+
1623+
1624+
A duration string is a sequence of decimal numbers and unit suffixes,
1625+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
15541626
displayName: Minimum Retry Duration
15551627
path: outputs[0].splunk.tuning.minRetryDuration
15561628
- description: |-

0 commit comments

Comments
 (0)