diff --git a/.mk/development.mk b/.mk/development.mk index 7eb8f8278..429f39d60 100644 --- a/.mk/development.mk +++ b/.mk/development.mk @@ -151,7 +151,7 @@ set-agent-image: ifeq ("", "$(CSV)") kubectl set env -n $(NAMESPACE) deployment netobserv-controller-manager -c "manager" RELATED_IMAGE_EBPF_AGENT=quay.io/$(USER)/netobserv-ebpf-agent:$(VERSION) else - ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) ebpf_agent RELATED_IMAGE_EBPF_AGENT quay.io/$(USER)/netobserv-ebpf-agent:$(VERSION) + ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) ebpf-agent RELATED_IMAGE_EBPF_AGENT quay.io/$(USER)/netobserv-ebpf-agent:$(VERSION) endif @echo -e "\n==> Redeploying..." kubectl rollout status -n $(OPERATOR_NS) --timeout=60s deployment netobserv-controller-manager @@ -163,7 +163,7 @@ set-flp-image: ifeq ("", "$(CSV)") kubectl set env -n $(NAMESPACE) deployment netobserv-controller-manager -c "manager" RELATED_IMAGE_FLOWLOGS_PIPELINE=quay.io/$(USER)/flowlogs-pipeline:$(VERSION) else - ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) flowlogs_pipeline RELATED_IMAGE_FLOWLOGS_PIPELINE quay.io/$(USER)/flowlogs-pipeline:$(VERSION) + ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) flowlogs-pipeline RELATED_IMAGE_FLOWLOGS_PIPELINE quay.io/$(USER)/flowlogs-pipeline:$(VERSION) endif @echo -e "\n==> Redeploying..." kubectl rollout status -n $(OPERATOR_NS) --timeout=60s deployment netobserv-controller-manager @@ -175,7 +175,7 @@ set-plugin-image: ifeq ("", "$(CSV)") kubectl set env -n $(NAMESPACE) deployment netobserv-controller-manager -c "manager" RELATED_IMAGE_CONSOLE_PLUGIN=quay.io/$(USER)/network-observability-console-plugin:$(VERSION) else - ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) console_plugin RELATED_IMAGE_CONSOLE_PLUGIN quay.io/$(USER)/network-observability-console-plugin:$(VERSION) + ./hack/swap-image-csv.sh $(CSV) $(OPERATOR_NS) console-plugin RELATED_IMAGE_CONSOLE_PLUGIN quay.io/$(USER)/network-observability-console-plugin:$(VERSION) endif @echo -e "\n==> Redeploying..." kubectl rollout status -n $(OPERATOR_NS) --timeout=60s deployment netobserv-controller-manager diff --git a/controllers/flowlogspipeline/metrics_definitions/namespace_flows_total.yaml b/controllers/flowlogspipeline/metrics_definitions/namespace_flows_total.yaml index c169cf188..f30cdf7b8 100644 --- a/controllers/flowlogspipeline/metrics_definitions/namespace_flows_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/namespace_flows_total.yaml @@ -20,9 +20,16 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,rate(netobserv_namespace_flows_total[1m]))' - legendFormat: '{{pod}} : ({{SrcK8S_Namespace}}) -> ({{DstK8S_Namespace}})' + - expr: | + label_replace( + label_replace( + topk(5,sum(rate(netobserv_namespace_flows_total[1m])) by (SrcK8S_Namespace, DstK8S_Namespace)), + "SrcK8S_Namespace", "(not namespaced)", "SrcK8S_Namespace", "()" + ), + "DstK8S_Namespace", "(not namespaced)", "DstK8S_Namespace", "()" + ) + legendFormat: '{{SrcK8S_Namespace}} -> {{DstK8S_Namespace}}' type: graphPanel dashboard: netobserv title: - Top 5 flows rates per minute per Namespace + Top flow rates per source and destination namespaces (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/node_egress_bytes_total.yaml b/controllers/flowlogspipeline/metrics_definitions/node_egress_bytes_total.yaml index 0b77acf9b..8d71b7dca 100644 --- a/controllers/flowlogspipeline/metrics_definitions/node_egress_bytes_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/node_egress_bytes_total.yaml @@ -25,9 +25,16 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,rate(netobserv_node_egress_bytes_total[1m]))' - legendFormat: '{{pod}} : ({{SrcK8S_HostName}}) -> ({{DstK8S_HostName}})' + - expr: | + label_replace( + label_replace( + topk(5,sum(rate(netobserv_node_egress_bytes_total[1m])) by (SrcK8S_HostName, DstK8S_HostName)), + "SrcK8S_HostName", "(unknown)", "SrcK8S_HostName", "()" + ), + "DstK8S_HostName", "(unknown)", "DstK8S_HostName", "()" + ) + legendFormat: '{{SrcK8S_HostName}} -> {{DstK8S_HostName}}' type: graphPanel dashboard: netobserv title: - Top 5 Flows rate egress per source and destination nodes + Top byte rates emitted per source and destination nodes (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/node_ingress_bytes_total.yaml b/controllers/flowlogspipeline/metrics_definitions/node_ingress_bytes_total.yaml index a2f34d4a1..dc951f45d 100644 --- a/controllers/flowlogspipeline/metrics_definitions/node_ingress_bytes_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/node_ingress_bytes_total.yaml @@ -25,9 +25,16 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,rate(netobserv_node_ingress_bytes_total[1m]))' - legendFormat: '{{pod}} : ({{SrcK8S_HostName}}) -> ({{DstK8S_HostName}})' + - expr: | + label_replace( + label_replace( + topk(5,sum(rate(netobserv_node_ingress_bytes_total[1m])) by (SrcK8S_HostName, DstK8S_HostName)), + "SrcK8S_HostName", "(unknown)", "SrcK8S_HostName", "()" + ), + "DstK8S_HostName", "(unknown)", "DstK8S_HostName", "()" + ) + legendFormat: '{{SrcK8S_HostName}} -> {{DstK8S_HostName}}' type: graphPanel dashboard: netobserv title: - Top 5 Ingress Bandwidth per source and destination nodes + Top byte rates received per source and destination nodes (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/workload_egress_bytes_total.yaml b/controllers/flowlogspipeline/metrics_definitions/workload_egress_bytes_total.yaml index be6d90601..f67e44739 100644 --- a/controllers/flowlogspipeline/metrics_definitions/workload_egress_bytes_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/workload_egress_bytes_total.yaml @@ -29,9 +29,20 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,rate(netobserv_workload_egress_bytes_total[1m]))' - legendFormat: '{{pod}} : ({{SrcK8S_Namespace}},{{SrcK8S_OwnerName}}) -> ({{DstK8S_Namespace}},{{DstK8S_OwnerName}})' + - expr: | + label_replace( + label_replace( + topk(5, sum( + rate(netobserv_workload_egress_bytes_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_egress_bytes_total{SrcK8S_OwnerType=~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_egress_bytes_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType=~"|Node"}[1m]) + ) by (SrcK8S_Namespace, SrcK8S_OwnerName, DstK8S_Namespace, DstK8S_OwnerName)), + "SrcK8S_Namespace", "non pods", "SrcK8S_Namespace", "()" + ), + "DstK8S_Namespace", "non pods", "DstK8S_Namespace", "()" + ) + legendFormat: '{{SrcK8S_OwnerName}} ({{SrcK8S_Namespace}}) -> {{DstK8S_OwnerName}} ({{DstK8S_Namespace}})' type: graphPanel dashboard: netobserv title: - Top 5 Egress Bandwidth per source and destination namespaces and owners + Top byte rates emitted per source and destination workloads (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/workload_egress_packets_total.yaml b/controllers/flowlogspipeline/metrics_definitions/workload_egress_packets_total.yaml index 5257bcaec..fe225b736 100644 --- a/controllers/flowlogspipeline/metrics_definitions/workload_egress_packets_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/workload_egress_packets_total.yaml @@ -29,9 +29,20 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,netobserv_workload_egress_packets_total)' - legendFormat: '{{pod}} : (({{SrcK8S_Namespace}},{{SrcK8S_OwnerName}}) -> ({{DstK8S_Namespace}},{{DstK8S_OwnerName}})' + - expr: | + label_replace( + label_replace( + topk(5, sum( + rate(netobserv_workload_egress_packets_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_egress_packets_total{SrcK8S_OwnerType=~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_egress_packets_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType=~"|Node"}[1m]) + ) by (SrcK8S_Namespace, SrcK8S_OwnerName, DstK8S_Namespace, DstK8S_OwnerName)), + "SrcK8S_Namespace", "non pods", "SrcK8S_Namespace", "()" + ), + "DstK8S_Namespace", "non pods", "DstK8S_Namespace", "()" + ) + legendFormat: '{{SrcK8S_OwnerName}} ({{SrcK8S_Namespace}}) -> {{DstK8S_OwnerName}} ({{DstK8S_Namespace}})' type: graphPanel dashboard: netobserv title: - Top 5 Egress packets per source and destination namespaces and owners + Top packet rates emitted per source and destination workloads (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/workload_ingress_bytes_total.yaml b/controllers/flowlogspipeline/metrics_definitions/workload_ingress_bytes_total.yaml index 26d888b79..0af7b5af0 100644 --- a/controllers/flowlogspipeline/metrics_definitions/workload_ingress_bytes_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/workload_ingress_bytes_total.yaml @@ -29,9 +29,20 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,rate(netobserv_workload_ingress_bytes_total[1m]))' - legendFormat: '{{pod}} : ({{SrcK8S_Namespace}},{{SrcK8S_OwnerName}}) -> ({{DstK8S_Namespace}},{{DstK8S_OwnerName}})' + - expr: | + label_replace( + label_replace( + topk(5, sum( + rate(netobserv_workload_ingress_bytes_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_ingress_bytes_total{SrcK8S_OwnerType=~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_ingress_bytes_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType=~"|Node"}[1m]) + ) by (SrcK8S_Namespace, SrcK8S_OwnerName, DstK8S_Namespace, DstK8S_OwnerName)), + "SrcK8S_Namespace", "non pods", "SrcK8S_Namespace", "()" + ), + "DstK8S_Namespace", "non pods", "DstK8S_Namespace", "()" + ) + legendFormat: '{{SrcK8S_OwnerName}} ({{SrcK8S_Namespace}}) -> {{DstK8S_OwnerName}} ({{DstK8S_Namespace}})' type: graphPanel dashboard: netobserv title: - Top 5 Ingress Bandwidth per source and destination namespaces and owners + Top byte rates received per source and destination workloads (1-min rates) diff --git a/controllers/flowlogspipeline/metrics_definitions/workload_ingress_packets_total.yaml b/controllers/flowlogspipeline/metrics_definitions/workload_ingress_packets_total.yaml index eabc0f258..2bf8bd8fc 100644 --- a/controllers/flowlogspipeline/metrics_definitions/workload_ingress_packets_total.yaml +++ b/controllers/flowlogspipeline/metrics_definitions/workload_ingress_packets_total.yaml @@ -29,9 +29,20 @@ encode: visualization: type: grafana grafana: - - expr: 'topk(5,netobserv_workload_ingress_packets_total)' - legendFormat: '{{pod}} : ({{SrcK8S_Namespace}},{{SrcK8S_OwnerName}}) -> ({{DstK8S_Namespace}},{{DstK8S_OwnerName}})' + - expr: | + label_replace( + label_replace( + topk(5, sum( + rate(netobserv_workload_ingress_packets_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_ingress_packets_total{SrcK8S_OwnerType=~"|Node",DstK8S_OwnerType!~"|Node"}[1m]) + or rate(netobserv_workload_ingress_packets_total{SrcK8S_OwnerType!~"|Node",DstK8S_OwnerType=~"|Node"}[1m]) + ) by (SrcK8S_Namespace, SrcK8S_OwnerName, DstK8S_Namespace, DstK8S_OwnerName)), + "SrcK8S_Namespace", "non pods", "SrcK8S_Namespace", "()" + ), + "DstK8S_Namespace", "non pods", "DstK8S_Namespace", "()" + ) + legendFormat: '{{SrcK8S_OwnerName}} ({{SrcK8S_Namespace}}) -> {{DstK8S_OwnerName}} ({{DstK8S_Namespace}})' type: graphPanel dashboard: netobserv title: - Top 5 Ingress Packets Total per source and destination namespaces and owners + Top packet rates received per source and destination workloads (1-min rates)