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: modules/network-observability-con_filter-network-flows-at-ingestion.adoc
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -78,4 +78,6 @@ spec:
78
78
sampling: 10 <2>
79
79
----
80
80
<1> Sends matching flows to a specific output, such as Loki, Prometheus, or an external system. When omitted, sends to all configured outputs.
81
-
<2> Optional. Applies a sampling ratio to limit the number of matching flows to be stored or exported. For example, `sampling: 10` means 1/10 of the flows are kept.
81
+
<2> Optional. Applies a sampling ratio to limit the number of matching flows to be stored or exported. For example, `sampling: 10` means 1/10 of the flows are kept.
Copy file name to clipboardExpand all lines: modules/network-observability-flowcollector-api-specifications.adoc
+51-92Lines changed: 51 additions & 92 deletions
Original file line number
Diff line number
Diff line change
@@ -154,7 +154,7 @@ is set to `eBPF`.
154
154
155
155
| `type`
156
156
| `string`
157
-
| `type` [deprecated *] selects the flows tracing agent. Previously, this field allowed to select between `eBPF` or `IPFIX`.
157
+
| `type` [deprecated (*)] selects the flows tracing agent. Previously, this field allowed to select between `eBPF` or `IPFIX`.
158
158
Only `eBPF` is allowed now, so this field is deprecated and is planned for removal in a future version of the API.
159
159
160
160
|===
@@ -180,7 +180,8 @@ Type::
180
180
| `object`
181
181
| `advanced` allows setting some aspects of the internal configuration of the eBPF agent.
182
182
This section is aimed mostly for debugging and fine-grained performance optimizations,
183
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
183
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk. You can also
184
+
override the default Linux capabilities from there.
184
185
185
186
| `cacheActiveTimeout`
186
187
| `string`
@@ -205,25 +206,28 @@ Otherwise it is matched as a case-sensitive string.
205
206
| List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are: +
206
207
207
208
- `PacketDrop`: Enable the packets drop flows logging feature. This feature requires mounting
208
-
the kernel debug filesystem, so the eBPF agent pods must run as privileged.
209
-
If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported. +
209
+
the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`. +
210
210
211
211
- `DNSTracking`: Enable the DNS tracking feature. +
212
212
213
213
- `FlowRTT`: Enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic. +
214
214
215
215
- `NetworkEvents`: Enable the network events monitoring feature, such as correlating flows and network policies.
216
-
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged.
217
-
It requires using the OVN-Kubernetes network plugin with the Observability feature. +
218
-
IMPORTANT: This feature is available as a Technology Preview.
216
+
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`.
217
+
It requires using the OVN-Kubernetes network plugin with the Observability feature.
218
+
IMPORTANT: This feature is available as a Technology Preview. +
219
219
220
220
- `PacketTranslation`: Enable enriching flows with packet translation information, such as Service NAT. +
221
221
222
-
- `EbpfManager`: Unsupported * . Use eBPF Manager to manage Network Observability eBPF programs. Pre-requisite: the eBPF Manager operator (or upstream bpfman operator) must be installed. +
222
+
- `EbpfManager`: [Unsupported (*)]. Use eBPF Manager to manage Network Observability eBPF programs. Pre-requisite: the eBPF Manager operator (or upstream bpfman operator) must be installed. +
223
+
224
+
- `UDNMapping`: Enable interfaces mapping to User Defined Networks (UDN). +
225
+
226
+
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`.
227
+
It requires using the OVN-Kubernetes network plugin with the Observability feature. +
228
+
229
+
- `IPSec`, to track flows between nodes with IPsec encryption. +
223
230
224
-
- `UDNMapping`: Unsupported *. Enable interfaces mapping to User Defined Networks (UDN). +
225
-
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged.
226
-
It requires using the OVN-Kubernetes network plugin with the Observability feature.
227
231
228
232
| `flowFilter`
229
233
| `object`
@@ -255,7 +259,7 @@ Otherwise it is matched as a case-sensitive string.
255
259
| `privileged`
256
260
| `boolean`
257
261
| Privileged mode for the eBPF Agent container. When ignored or set to `false`, the operator sets
258
-
granular capabilities (BPF, PERFMON, NET_ADMIN, SYS_RESOURCE) to the container.
262
+
granular capabilities (BPF, PERFMON, NET_ADMIN) to the container.
259
263
If for some reason these capabilities cannot be set, such as if an old kernel version not knowing CAP_BPF
260
264
is in use, then you can turn on this mode for more global privileges.
261
265
Some agent features require the privileged mode, such as packet drops tracking (see `features`) and SR-IOV support.
@@ -267,7 +271,7 @@ For more information, see https://kubernetes.io/docs/concepts/configuration/mana
267
271
268
272
| `sampling`
269
273
| `integer`
270
-
| Sampling rate of the flow reporter. 100 means one flow on 100 is sent. 0 or 1 means all flows are sampled.
274
+
| Sampling ratio of the eBPF probe. 100 means one packet on 100 is sent. 0 or 1 means all packets are sampled.
271
275
272
276
|===
273
277
== .spec.agent.ebpf.advanced
@@ -276,7 +280,8 @@ Description::
276
280
--
277
281
`advanced` allows setting some aspects of the internal configuration of the eBPF agent.
278
282
This section is aimed mostly for debugging and fine-grained performance optimizations,
279
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
283
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk. You can also
284
+
override the default Linux capabilities from there.
280
285
--
281
286
282
287
Type::
@@ -289,6 +294,10 @@ Type::
289
294
|===
290
295
| Property | Type | Description
291
296
297
+
| `capOverride`
298
+
| `array (string)`
299
+
| Linux capabilities override, when not running as privileged. Default capabilities are BPF, PERFMON and NET_ADMIN.
300
+
292
301
| `env`
293
302
| `object (string)`
294
303
| `env` allows passing custom environment variables to underlying components. Useful for passing
@@ -447,7 +456,7 @@ To change the default, you can define a rule that accepts everything: `{ action:
447
456
448
457
| `sampling`
449
458
| `integer`
450
-
| `sampling` sampling rate for the matched flows, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
459
+
| `sampling` is the sampling ratio for the matched packets, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
- `Forward` forwards the user token for authorization. +
2079
2088
2080
-
- `Host` [deprecated *] - uses the local pod service account to authenticate to Loki. +
2089
+
- `Host` [deprecated (*)] - uses the local pod service account to authenticate to Loki. +
2081
2090
2082
2091
When using the Loki Operator, this must be set to `Forward`.
2083
2092
@@ -2693,7 +2702,7 @@ This feature requires the "topology.kubernetes.io/zone" label to be set on nodes
2693
2702
| `object`
2694
2703
| `advanced` allows setting some aspects of the internal configuration of the flow processor.
2695
2704
This section is aimed mostly for debugging and fine-grained performance optimizations,
2696
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2705
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk.
2697
2706
2698
2707
| `clusterName`
2699
2708
| `string`
@@ -2702,14 +2711,12 @@ such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2702
2711
| `deduper`
2703
2712
| `object`
2704
2713
| `deduper` allows you to sample or drop flows identified as duplicates, in order to save on resource usage.
2705
-
Unsupported *.
2706
2714
2707
2715
| `filters`
2708
2716
| `array`
2709
2717
| `filters` lets you define custom filters to limit the amount of generated flows.
2710
2718
These filters provide more flexibility than the eBPF Agent filters (in `spec.agent.ebpf.flowFilter`), such as allowing to filter by Kubernetes namespace,
2711
2719
but with a lesser improvement in performance.
2712
-
Unsupported *.
2713
2720
2714
2721
| `imagePullPolicy`
2715
2722
| `string`
@@ -2743,9 +2750,9 @@ This setting is ignored when Kafka is disabled.
2743
2750
2744
2751
- `Flows` to export regular network flows. This is the default. +
2745
2752
2746
-
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates. +
2753
+
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates. Note that in this mode, Prometheus metrics are not accurate on long-standing conversations. +
2747
2754
2748
-
- `EndedConversations` to generate only ended conversations events. +
2755
+
- `EndedConversations` to generate only ended conversations events. Note that in this mode, Prometheus metrics are not accurate on long-standing conversations. +
2749
2756
2750
2757
- `All` to generate both network flows and all conversations events. It is not recommended due to the impact on resources footprint. +
2751
2758
@@ -2775,7 +2782,7 @@ Description::
2775
2782
--
2776
2783
`advanced` allows setting some aspects of the internal configuration of the flow processor.
2777
2784
This section is aimed mostly for debugging and fine-grained performance optimizations,
2778
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2785
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk.
2779
2786
--
2780
2787
2781
2788
Type::
@@ -2803,7 +2810,7 @@ This delay is ignored when a FIN packet is collected for TCP flows (see `convers
2803
2810
2804
2811
| `dropUnusedFields`
2805
2812
| `boolean`
2806
-
| `dropUnusedFields` [deprecated *] this setting is not used anymore.
2813
+
| `dropUnusedFields` [deprecated (*)] this setting is not used anymore.
2807
2814
2808
2815
| `enableKubeProbes`
2809
2816
| `boolean`
@@ -2910,7 +2917,8 @@ Description::
2910
2917
+
2911
2918
--
2912
2919
Defines secondary networks to be checked for resources identification.
2913
-
To guarantee a correct identification, indexed values must form an unique identifier across the cluster. If the same index is used by several resources, those resources might be incorrectly labeled.
2920
+
To guarantee a correct identification, indexed values must form an unique identifier across the cluster.
2921
+
If the same index is used by several resources, those resources might be incorrectly labeled.
2914
2922
--
2915
2923
2916
2924
Type::
@@ -2955,7 +2963,6 @@ Description::
2955
2963
+
2956
2964
--
2957
2965
`deduper` allows you to sample or drop flows identified as duplicates, in order to save on resource usage.
2958
-
Unsupported *.
2959
2966
--
2960
2967
2961
2968
Type::
@@ -2970,7 +2977,7 @@ Type::
2970
2977
2971
2978
| `mode`
2972
2979
| `string`
2973
-
| Set the Processor de-duplication mode. It comes in addition to the Agent-based deduplication because the Agent cannot de-duplicate same flows reported from different nodes. +
2980
+
| Set the Processor de-duplication mode. It comes in addition to the Agent-based deduplication, since the Agent cannot de-duplicate same flows reported from different nodes. +
2974
2981
2975
2982
- Use `Drop` to drop every flow considered as duplicates, allowing saving more on resource usage but potentially losing some information such as the network interfaces used from peer, or network events. +
2976
2983
@@ -2981,7 +2988,7 @@ Type::
2981
2988
2982
2989
| `sampling`
2983
2990
| `integer`
2984
-
| `sampling` is the sampling rate when deduper `mode` is `Sample`.
2991
+
| `sampling` is the sampling ratio when deduper `mode` is `Sample`. For example, a value of `50` means that 1 flow in 50 is sampled.
2985
2992
2986
2993
|===
2987
2994
== .spec.processor.filters
@@ -2991,7 +2998,6 @@ Description::
2991
2998
`filters` lets you define custom filters to limit the amount of generated flows.
2992
2999
These filters provide more flexibility than the eBPF Agent filters (in `spec.agent.ebpf.flowFilter`), such as allowing to filter by Kubernetes namespace,
2993
3000
but with a lesser improvement in performance.
2994
-
Unsupported *.
2995
3001
--
2996
3002
2997
3003
Type::
@@ -3017,64 +3023,17 @@ Type::
3017
3023
|===
3018
3024
| Property | Type | Description
3019
3025
3020
-
| `allOf`
3021
-
| `array`
3022
-
| `filters` is a list of matches that must be all satisfied in order to remove a flow.
3023
-
3024
3026
| `outputTarget`
3025
3027
| `string`
3026
-
| If specified, these filters only target a single output: `Loki`, `Metrics` or `Exporters`. By default, all outputs are targeted.
3027
-
3028
-
| `sampling`
3029
-
| `integer`
3030
-
| `sampling` is an optional sampling rate to apply to this filter.
3031
-
3032
-
|===
3033
-
== .spec.processor.filters[].allOf
3034
-
Description::
3035
-
+
3036
-
--
3037
-
`filters` is a list of matches that must be all satisfied in order to remove a flow.
3038
-
--
3039
-
3040
-
Type::
3041
-
`array`
3042
-
3043
-
3044
-
3045
-
3046
-
== .spec.processor.filters[].allOf[]
3047
-
Description::
3048
-
+
3049
-
--
3050
-
`FLPSingleFilter` defines the desired configuration for a single FLP-based filter.
3051
-
--
3052
-
3053
-
Type::
3054
-
`object`
3055
-
3056
-
Required::
3057
-
- `field`
3058
-
- `matchType`
3059
-
3060
-
3061
-
3062
-
[cols="1,1,1",options="header"]
3063
-
|===
3064
-
| Property | Type | Description
3065
-
3066
-
| `field`
3067
-
| `string`
3068
-
| Name of the field to filter on.
3069
-
Refer to the documentation for the list of available fields: https://github.com/netobserv/network-observability-operator/blob/main/docs/flows-format.adoc.
3028
+
| If specified, these filters target a single output: `Loki`, `Metrics` or `Exporters`. By default, all outputs are targeted.
3070
3029
3071
-
| `matchType`
3030
+
| `query`
3072
3031
| `string`
3073
-
| Type of matching to apply.
3032
+
| A query that selects the network flows to keep. More information about this query language in https://github.com/netobserv/flowlogs-pipeline/blob/main/docs/filtering.md.
3074
3033
3075
-
| `value`
3076
-
| `string`
3077
-
| Value to filter on. When `matchType` is `Equal` or `NotEqual`, you can use field injection with `$(SomeField)` to refer to any other field of the flow.
3034
+
| `sampling`
3035
+
| `integer`
3036
+
| `sampling` is an optional sampling ratio to apply to this filter. For example, a value of `50` means that 1 matching flow in 50 is sampled.
3078
3037
3079
3038
|===
3080
3039
== .spec.processor.kafkaConsumerAutoscaler
@@ -3199,7 +3158,7 @@ If set to `true`, the `providedCaFile` field is ignored.
3199
3158
| Select the type of TLS configuration: +
3200
3159
3201
3160
- `Disabled` (default) to not configure TLS for the endpoint.
3202
-
- `Provided` to manually provide cert file and a key file. Unsupported *.
3161
+
- `Provided` to manually provide cert file and a key file. [Unsupported (*)].
3203
3162
- `Auto` to use {product-title} auto generated certificate using annotations.
3204
3163
3205
3164
|===
@@ -3593,4 +3552,4 @@ If the namespace is different, the config map or the secret is copied so that it
3593
3552
| `string`
3594
3553
| Type for the certificate reference: `configmap` or `secret`.
0 commit comments