Skip to content

Commit d5d04c7

Browse files
authored
Merge pull request #56104 from skrthomas/OSDOCS-5286
2 parents 5ec0621 + 00384b8 commit d5d04c7

File tree

5 files changed

+68
-11
lines changed

5 files changed

+68
-11
lines changed

modules/network-observability-flowcollector-view.adoc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ spec:
4444
cpu: 100m
4545
limits:
4646
memory: 800Mi
47-
loki: <3>
47+
conversationEndTimeout: 10s
48+
logTypes: FLOW <3>
49+
conversationHeartbeatInterval: 30s
50+
loki: <4>
4851
url: 'http://loki-gateway-http.netobserv.svc:8080/api/logs/v1/network'
4952
statusUrl: 'https://loki-query-frontend-http.netobserv.svc:3100/'
5053
authToken: FORWARD
@@ -61,7 +64,7 @@ spec:
6164
enable: true
6265
portNames:
6366
"3100": loki
64-
quickFilters: <4>
67+
quickFilters: <5>
6568
- name: Applications
6669
filter:
6770
src_namespace!: 'openshift-,netobserv'
@@ -82,5 +85,6 @@ spec:
8285
----
8386
<1> The Agent specification, `spec.agent.type`, must be `EBPF`. eBPF is the only {product-title} supported option.
8487
<2> You can set the Sampling specification, `spec.agent.ebpf.sampling`, to manage resources. Lower sampling values might consume a large amount of computational, memory and storage resources. You can mitigate this by specifying a sampling ratio value. A value of 100 means 1 flow every 100 is sampled. A value of 0 or 1 means all flows are captured. The lower the value, the increase in returned flows and the accuracy of derived metrics. By default, eBPF sampling is set to a value of 50, so 1 flow every 50 is sampled. Note that more sampled flows also means more storage needed. It is recommend to start with default values and refine empirically, to determine which setting your cluster can manage.
85-
<3> The Loki specification, `spec.loki`, specifies the Loki client. The default values match the Loki install paths mentioned in the Installing the Loki Operator section. If you used another installation method for Loki, specify the appropriate client information for your install.
86-
<4> The `spec.quickFilters` specification defines filters that show up in the web console. The `Application` filter keys,`src_namespace` and `dst_namespace`, are negated (`!`), so the `Application` filter shows all traffic that _does not_ originate from, or have a destination to, any `openshift-` or `netobserv` namespaces. For more information, see Configuring quick filters below.
88+
<3> The optional specifications `spec.processor.logTypes`, `spec.processor.conversationHeartbeatInterval`, and `spec.processor.conversationEndTimeout` can be set to enable conversation tracking. When enabled, conversation events are queryable in the web console. The values for `spec.processor.logTypes` are as follows: `FLOWS` `CONVERSATIONS`, `ENDED_CONVERSATIONS`, or `ALL`. Storage requirements are highest for `ALL` and lowest for `ENDED_CONVERSATIONS`.
89+
<4> The Loki specification, `spec.loki`, specifies the Loki client. The default values match the Loki install paths mentioned in the Installing the Loki Operator section. If you used another installation method for Loki, specify the appropriate client information for your install.
90+
<5> The `spec.quickFilters` specification defines filters that show up in the web console. The `Application` filter keys,`src_namespace` and `dst_namespace`, are negated (`!`), so the `Application` filter shows all traffic that _does not_ originate from, or have a destination to, any `openshift-` or `netobserv` namespaces. For more information, see Configuring quick filters below.

modules/network-observability-quickfilter.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
= Filtering the network traffic
88
By default, the Network Traffic page displays the traffic flow data in the cluster based on the default filters configured in the `FlowCollector` instance. You can use the filter options to observe the required data by changing the preset filter.
99

10+
Query Options::
11+
You can use *Query Options* to optimize the search results, as listed below:
12+
13+
** *Log Type*: The available options *Conversation* and *Flows* provide the ability to query flows by log type, such as flow log, new conversation, completed conversation, and a heartbeat, which is a periodic record with updates for long conversations. A conversation is an aggregation of flows between the same peers.
14+
** *Reporter Node*: Every flow can be reported from both source and destination nodes. For cluster ingress, the flow is reported from the destination node and for cluster egress, the flow is reported from the source node. You can select either *Source* or *Destination*. The option *Both* is disabled for the *Overview* and *Topology* view. The default selected value is *Destination*.
15+
** *Match filters*: You can determine the relation between different filter parameters selected in the advanced filter. The available options are *Match all* and *Match any*. *Match all* provides results that match all the values, and *Match any* provides results that match any of the values entered. The default value is *Match all*.
16+
** *Limit*: The data limit for internal backend queries. Depending upon the matching and the filter settings, the number of traffic flow data is displayed within the specified limit.
1017

1118
Quick filters::
1219
The default values in *Quick filters* drop-down menu are defined in the `FlowCollector` configuration. You can modify the options from console.
@@ -19,11 +26,4 @@ You can set the advanced filters by providing the parameter to be filtered and i
1926
To understand the rules of specifying the text value, click *Learn More*.
2027
====
2128

22-
Query Options::
23-
You can use *Query Options* to optimize the search results, as listed below:
24-
25-
** *Reporter Node*: Every flow can be reported from both source and destination nodes. For cluster ingress, the flow is reported from the destination node and for cluster egress, the flow is reported from the source node. You can select either *Source* or *Destination*. The option *Both* is disabled for the *Overview* and *Topology* view. The default selected value is *Destination*.
26-
** *Match filters*: You can determine the relation between different filter parameters selected in the advanced filter. The available options are *Match all* and *Match any*. *Match all* provides results that match all the values, and *Match any* provides results that match any of the values entered. The default value is *Match all*.
27-
** *Limit*: The data limit for internal backend queries. Depending upon the matching and the filter settings, the number of traffic flow data is displayed within the specified limit.
28-
2929
You can click *Reset default filter* to remove the existing filters, and apply the filter defined in `FlowCollector` configuration.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Module included in the following assemblies:
2+
//
3+
// network_observability/observing-network-traffic.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="network-observability-working-with-conversations_{context}"]
7+
= Working with conversation tracking
8+
As an administrator, you can you can group network flows that are part of the same conversation. A conversation is defined as a grouping of peers that are identified by their IP addresses, ports, and protocols, resulting in an unique *Conversation Id*. You can query conversation events in the web console. These events are represented in the web console as follows:
9+
10+
** *Conversation start*: This event happens when a connection is starting or TCP flag intercepted
11+
** *Conversation tick*: This event happens at each specified interval defined in the `FlowCollector` `spec.processor.conversationHeartbeatInterval` parameter while the connection is active.
12+
** *Conversation end*: This event happens when the `FlowCollector` `spec.processor.conversationEndTimeout` parameter is reached or the TCP flag is intercepted.
13+
** *Flow*: This is the network traffic flow that occurs within the specified interval.
14+
15+
16+
.Procedure
17+
. In the web console, navigate to *Operators* -> *Installed Operators*.
18+
. Under the *Provided APIs* heading for the *NetObserv Operator*, select *Flow Collector*.
19+
. Select *cluster* then select the *YAML* tab.
20+
. Configure the `FlowCollector` custom resource so that `spec.processor.logTypes`, `conversationEndTimeout`, and `conversationHeartbeatInterval` parameters are set according to your observation needs. A sample configuration is as follows:
21+
+
22+
[id="network-observability-flowcollector-configuring-conversations_{context}"]
23+
.Configure `FlowCollector` for conversation tracking
24+
[source, yaml]
25+
----
26+
apiVersion: flows.netobserv.io/v1alpha1
27+
kind: FlowCollector
28+
metadata:
29+
name: cluster
30+
spec:
31+
processor:
32+
conversationEndTimeout: 10s <1>
33+
logTypes: FLOWS <2>
34+
conversationHeartbeatInterval: 30s <3>
35+
----
36+
<1> The *Conversation end* event represents the point when the `conversationEndTimeout` is reached or the TCP flag is intercepted.
37+
<2> When `logTypes` is set to `FLOWS`, only the *Flow* event is exported. If you set the value to `ALL`, both conversation and flow events are exported and visible in the *Network Traffic* page. To focus only on conversation events, you can specify `CONVERSATIONS` which exports the *Conversation start*, *Conversation tick* and *Conversation end* events; or `ENDED_CONVERSATIONS` exports only the *Conversation end* events. Storage requirements are highest for `ALL` and lowest for `ENDED_CONVERSATIONS`.
38+
<3> The *Conversation tick* event represents each specified interval defined in the `FlowCollector` `conversationHeartbeatInterval` parameter while the network connection is active.
39+
+
40+
[NOTE]
41+
====
42+
If you update the `logType` option, the flows from the previous selection do not clear from the console plugin. For example, if you initially set `logType` to `CONVERSATIONS` for a span of time until 10 AM and then move to `ENDED_CONVERSATIONS`, the console plugin shows all conversation events before 10 AM and only ended conversations after 10 AM.
43+
====
44+
. Refresh the *Network Traffic* page on the *Traffic flows* tab. Notice there are two new columns, *Event/Type* and *Conversation Id*. All the *Event/Type* fields are `Flow` when *Flow* is the selected query option.
45+
. Select *Query Options* and choose the *Log Type*, *Conversation*. Now the *Event/Type* shows all of the desired conversation events.
46+
. Next you can filter on a specific conversation ID or switch between the *Conversation* and *Flow* log type options from the side panel.
47+

networking/network_observability/configuring-operator.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ You can update the Flow Collector API resource to configure the Network Observab
99

1010

1111
include::modules/network-observability-flowcollector-view.adoc[leveloffset=+1]
12+
13+
[role="_additional-resources"]
14+
.Additional resources
15+
For more information about conversation tracking, see xref:../../networking/network_observability/observing-network-traffic.adoc#network-observability-working-with-conversations_nw-observe-network-traffic[Working with conversations].
16+
1217
include::modules/network-observability-flowcollector-kafka-config.adoc[leveloffset=+1]
1318
include::modules/network-observability-configuring-FLP-sampling.adoc[leveloffset=+1]
1419
include::modules/network-observability-configuring-quickfilters-flowcollector.adoc[leveloffset=+1]

networking/network_observability/observing-network-traffic.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ include::modules/network-observability-configuring-options-overview.adoc[levelof
1717
include::modules/network-observability-trafficflow.adoc[leveloffset=+1]
1818
include::modules/network-observability-working-with-trafficflow.adoc[leveloffset=+2]
1919
include::modules/network-observability-configuring-options-trafficflow.adoc[leveloffset=+2]
20+
include::modules/network-observability-working-with-conversations.adoc[leveloffset=+2]
2021

2122
//Topology
2223
include::modules/network-observability-topology.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)