Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/flowcollector/v1beta2/flowcollector_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ type MetricsServerConfig struct {
}

// Metric name. More information in https://github.com/netobserv/network-observability-operator/blob/main/docs/Metrics.md.
// +kubebuilder:validation:Enum:="namespace_egress_bytes_total";"namespace_egress_packets_total";"namespace_ingress_bytes_total";"namespace_ingress_packets_total";"namespace_flows_total";"node_egress_bytes_total";"node_egress_packets_total";"node_ingress_bytes_total";"node_ingress_packets_total";"node_flows_total";"workload_egress_bytes_total";"workload_egress_packets_total";"workload_ingress_bytes_total";"workload_ingress_packets_total";"workload_flows_total";"namespace_drop_bytes_total";"namespace_drop_packets_total";"node_drop_bytes_total";"node_drop_packets_total";"workload_drop_bytes_total";"workload_drop_packets_total";"namespace_rtt_seconds";"node_rtt_seconds";"workload_rtt_seconds";"namespace_dns_latency_seconds";"node_dns_latency_seconds";"workload_dns_latency_seconds";"node_network_policy_events_total";"namespace_network_policy_events_total";"workload_network_policy_events_total";"node_ipsec_flows_total";"node_to_node_ingress_flows_total"
// +kubebuilder:validation:Enum:="namespace_egress_bytes_total";"namespace_egress_packets_total";"namespace_ingress_bytes_total";"namespace_ingress_packets_total";"namespace_flows_total";"node_egress_bytes_total";"node_egress_packets_total";"node_ingress_bytes_total";"node_ingress_packets_total";"node_flows_total";"workload_egress_bytes_total";"workload_egress_packets_total";"workload_ingress_bytes_total";"workload_ingress_packets_total";"workload_flows_total";"network_egress_bytes_total";"network_egress_packets_total";"network_ingress_bytes_total";"network_ingress_packets_total";"network_flows_total";"namespace_drop_bytes_total";"namespace_drop_packets_total";"node_drop_bytes_total";"node_drop_packets_total";"workload_drop_bytes_total";"workload_drop_packets_total";"network_drop_bytes_total";"network_drop_packets_total";"namespace_rtt_seconds";"node_rtt_seconds";"workload_rtt_seconds";"network_rtt_seconds";"namespace_dns_latency_seconds";"node_dns_latency_seconds";"workload_dns_latency_seconds";"network_dns_latency_seconds";"node_network_policy_events_total";"namespace_network_policy_events_total";"workload_network_policy_events_total";"node_ipsec_flows_total";"workload_ipsec_flows_total";"network_ipsec_flows_total";"node_to_node_ingress_flows_total"
type FLPMetric string

// `FLPMetrics` define the desired FLP configuration regarding metrics
Expand Down
11 changes: 11 additions & 0 deletions bundle/manifests/flows.netobserv.io_flowcollectors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5978,22 +5978,33 @@ spec:
- workload_ingress_bytes_total
- workload_ingress_packets_total
- workload_flows_total
- network_egress_bytes_total
- network_egress_packets_total
- network_ingress_bytes_total
- network_ingress_packets_total
- network_flows_total
- namespace_drop_bytes_total
- namespace_drop_packets_total
- node_drop_bytes_total
- node_drop_packets_total
- workload_drop_bytes_total
- workload_drop_packets_total
- network_drop_bytes_total
- network_drop_packets_total
- namespace_rtt_seconds
- node_rtt_seconds
- workload_rtt_seconds
- network_rtt_seconds
- namespace_dns_latency_seconds
- node_dns_latency_seconds
- workload_dns_latency_seconds
- network_dns_latency_seconds
- node_network_policy_events_total
- namespace_network_policy_events_total
- workload_network_policy_events_total
- node_ipsec_flows_total
- workload_ipsec_flows_total
- network_ipsec_flows_total
- node_to_node_ingress_flows_total
type: string
type: array
Expand Down
11 changes: 11 additions & 0 deletions config/crd/bases/flows.netobserv.io_flowcollectors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5530,22 +5530,33 @@ spec:
- workload_ingress_bytes_total
- workload_ingress_packets_total
- workload_flows_total
- network_egress_bytes_total
- network_egress_packets_total
- network_ingress_bytes_total
- network_ingress_packets_total
- network_flows_total
- namespace_drop_bytes_total
- namespace_drop_packets_total
- node_drop_bytes_total
- node_drop_packets_total
- workload_drop_bytes_total
- workload_drop_packets_total
- network_drop_bytes_total
- network_drop_packets_total
- namespace_rtt_seconds
- node_rtt_seconds
- workload_rtt_seconds
- network_rtt_seconds
- namespace_dns_latency_seconds
- node_dns_latency_seconds
- workload_dns_latency_seconds
- network_dns_latency_seconds
- node_network_policy_events_total
- namespace_network_policy_events_total
- workload_network_policy_events_total
- node_ipsec_flows_total
- workload_ipsec_flows_total
- network_ipsec_flows_total
- node_to_node_ingress_flows_total
type: string
type: array
Expand Down
11 changes: 11 additions & 0 deletions helm/crds/flows.netobserv.io_flowcollectors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5534,22 +5534,33 @@ spec:
- workload_ingress_bytes_total
- workload_ingress_packets_total
- workload_flows_total
- network_egress_bytes_total
- network_egress_packets_total
- network_ingress_bytes_total
- network_ingress_packets_total
- network_flows_total
- namespace_drop_bytes_total
- namespace_drop_packets_total
- node_drop_bytes_total
- node_drop_packets_total
- workload_drop_bytes_total
- workload_drop_packets_total
- network_drop_bytes_total
- network_drop_packets_total
- namespace_rtt_seconds
- node_rtt_seconds
- workload_rtt_seconds
- network_rtt_seconds
- namespace_dns_latency_seconds
- node_dns_latency_seconds
- workload_dns_latency_seconds
- network_dns_latency_seconds
- node_network_policy_events_total
- namespace_network_policy_events_total
- workload_network_policy_events_total
- node_ipsec_flows_total
- workload_ipsec_flows_total
- network_ipsec_flows_total
- node_to_node_ingress_flows_total
type: string
type: array
Expand Down
2 changes: 2 additions & 0 deletions internal/pkg/dashboards/dashboard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ func TestCreateFlowMetricsDashboard_DefaultList(t *testing.T) {
"TCP latencies",
"Byte and packet drops",
"DNS",
"IPsec",
}, d.Titles())

topRow := d.FindRow("")
Expand All @@ -115,6 +116,7 @@ func TestCreateFlowMetricsDashboard_DefaultList(t *testing.T) {
"Drops",
"DNS latency, p99",
"DNS error rate",
"IPsec encrypted traffic",
}, topRow.Titles())

trafficRow := d.FindRow("Traffic rates per node")
Expand Down
1 change: 1 addition & 0 deletions internal/pkg/helper/otel/otel-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"TimeFlowRttNs": "tcp.rtt",
"Interfaces": "interface.names",
"IfDirections": "interface.directions",
"IPSecStatus": "ipsec.status",
"FlowDirection": "host.direction",
"DnsErrno": "dns.errno",
"DnsFlags": "dns.flags",
Expand Down
1 change: 1 addition & 0 deletions internal/pkg/helper/otel/otel_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func TestOtelTransformConfig(t *testing.T) {
{Input: "DstSubnetLabel", Output: "destination.subnet.label", Multiplier: 0},
{Input: "Flags", Output: "tcp.flags", Multiplier: 0},
{Input: "FlowDirection", Output: "host.direction", Multiplier: 0},
{Input: "IPSecStatus", Output: "ipsec.status", Multiplier: 0},
{Input: "IcmpCode", Output: "icmp.code", Multiplier: 0},
{Input: "IcmpType", Output: "icmp.type", Multiplier: 0},
{Input: "IfDirections", Output: "interface.directions", Multiplier: 0},
Expand Down
17 changes: 11 additions & 6 deletions internal/pkg/metrics/predefined_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const (
tagNamespaces = "namespaces"
tagNodes = "nodes"
tagWorkloads = "workloads"
tagNetworks = "networks"
tagIngress = "ingress"
tagEgress = "egress"
tagBytes = "bytes"
Expand All @@ -26,6 +27,7 @@ var (
tagNodes: {"K8S_ClusterName", "SrcK8S_Zone", "DstK8S_Zone", "SrcK8S_HostName", "DstK8S_HostName"},
tagNamespaces: {"K8S_ClusterName", "SrcK8S_Zone", "DstK8S_Zone", "SrcK8S_Namespace", "DstK8S_Namespace", "K8S_FlowLayer", "SrcSubnetLabel", "DstSubnetLabel"},
tagWorkloads: {"K8S_ClusterName", "SrcK8S_Zone", "DstK8S_Zone", "SrcK8S_Namespace", "DstK8S_Namespace", "K8S_FlowLayer", "SrcSubnetLabel", "DstSubnetLabel", "SrcK8S_OwnerName", "DstK8S_OwnerName", "SrcK8S_OwnerType", "DstK8S_OwnerType", "SrcK8S_Type", "DstK8S_Type"},
tagNetworks: {"K8S_ClusterName", "SrcK8S_Zone", "DstK8S_Zone", "SrcK8S_NetworkName", "DstK8S_NetworkName", "K8S_FlowLayer"},
}
mapValueFields = map[string]string{
tagBytes: "Bytes",
Expand All @@ -44,7 +46,7 @@ type taggedMetricDefinition struct {
}

func init() {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// Bytes / packets metrics
Expand Down Expand Up @@ -88,7 +90,7 @@ func init() {
tags: []string{group, group + "-flows", "flows"},
})
}
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// RTT metrics
Expand All @@ -109,7 +111,7 @@ func init() {
tags: []string{group, "rtt"},
})
}
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// Drops metrics
Expand Down Expand Up @@ -144,7 +146,7 @@ func init() {
tags: []string{group, tagBytes, "drop"},
})
}
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// DNS metrics
Expand All @@ -168,7 +170,7 @@ func init() {
})
}

for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// Netpol metrics
Expand All @@ -195,7 +197,7 @@ func init() {
})
}

for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads} {
for _, group := range []string{tagNodes, tagNamespaces, tagWorkloads, tagNetworks} {
groupTrimmed := strings.TrimSuffix(group, "s")
labels := mapLabels[group]
// IPSEC
Expand Down Expand Up @@ -321,6 +323,9 @@ func GetDefinitions(fc *flowslatest.FlowCollectorSpec, allMetrics bool) []metric
if !fc.Processor.IsMultiClusterEnabled() {
labelsToRemove = append(labelsToRemove, "K8S_ClusterName")
}
if !fc.Agent.EBPF.IsUDNMappingEnabled() && !fc.Processor.HasSecondaryIndexes() {
labelsToRemove = append(labelsToRemove, "SrcK8S_NetworkName", "DstK8S_NetworkName")
}

var filterRecordType *metricslatest.MetricFilter
if fc.Processor.LogTypes != nil {
Expand Down
Loading