From 7121d67184441822b0bc8d5aaa7b4281f59c799b Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 5 Dec 2024 19:53:17 -0800 Subject: [PATCH] feat(compose): update docker-compose (#361) --- compose/kcg/README.md | 3 + compose/kcg/clickhouse/create.sh | 1 + compose/kcg/clickhouse/flow.proto | 123 + compose/kcg/clickhouse/protocols.csv | 2 +- compose/kcg/docker-compose.yml | 44 +- compose/kcg/grafana/dashboards/perfs.json | 4737 ++++++++++++--------- compose/kcg/prometheus/prometheus.yml | 2 +- 7 files changed, 2846 insertions(+), 2066 deletions(-) create mode 100644 compose/kcg/clickhouse/flow.proto diff --git a/compose/kcg/README.md b/compose/kcg/README.md index 17959d65..51bd96f5 100644 --- a/compose/kcg/README.md +++ b/compose/kcg/README.md @@ -26,3 +26,6 @@ using `MATERIALIZED TABLES` and `VIEWS` defined in a [schema file](./clickhouse/ You can visualize the data in Grafana at http://localhost:3000 (credentials: admin/admin) with the pre-made dashboards. + +Note: if you are using Colima as the engine, it does not support UDP port forwarding. Flows won't be collected. +It is possible to run GoFlow2 locally and feed into kafka if you add an `/etc/hosts` entry `127.0.0.1 kafka`. diff --git a/compose/kcg/clickhouse/create.sh b/compose/kcg/clickhouse/create.sh index 2cd59adc..7879be95 100755 --- a/compose/kcg/clickhouse/create.sh +++ b/compose/kcg/clickhouse/create.sh @@ -41,6 +41,7 @@ clickhouse client -n <<-EOSQL ) ENGINE = Kafka() SETTINGS kafka_broker_list = 'kafka:9092', + kafka_num_consumers = 1, kafka_topic_list = 'flows', kafka_group_name = 'clickhouse', kafka_format = 'Protobuf', diff --git a/compose/kcg/clickhouse/flow.proto b/compose/kcg/clickhouse/flow.proto new file mode 100644 index 00000000..662ef304 --- /dev/null +++ b/compose/kcg/clickhouse/flow.proto @@ -0,0 +1,123 @@ +syntax = "proto3"; +package flowpb; +option go_package = "github.com/netsampler/goflow2/pb;flowpb"; + +message FlowMessage { + + enum FlowType { + FLOWUNKNOWN = 0; + SFLOW_5 = 1; + NETFLOW_V5 = 2; + NETFLOW_V9 = 3; + IPFIX = 4; + } + FlowType type = 1; + + uint64 time_received_ns = 110; + uint32 sequence_num = 4; + uint64 sampling_rate = 3; + + //uint32 flow_direction = 42; + + // Sampler information + bytes sampler_address = 11; + + // Found inside packet + uint64 time_flow_start_ns = 111; + uint64 time_flow_end_ns = 112; + + // Size of the sampled packet + uint64 bytes = 9; + uint64 packets = 10; + + // Source/destination addresses + bytes src_addr = 6; + bytes dst_addr = 7; + + // Layer 3 protocol (IPv4/IPv6/ARP/MPLS...) + uint32 etype = 30; + + // Layer 4 protocol + uint32 proto = 20; + + // Ports for UDP and TCP + uint32 src_port = 21; + uint32 dst_port = 22; + + // Interfaces + uint32 in_if = 18; + uint32 out_if = 19; + + // Ethernet information + uint64 src_mac = 27; + uint64 dst_mac = 28; + + // Vlan + uint32 src_vlan = 33; + uint32 dst_vlan = 34; + // 802.1q VLAN in sampled packet + uint32 vlan_id = 29; + + // IP and TCP special flags + uint32 ip_tos = 23; + uint32 forwarding_status = 24; + uint32 ip_ttl = 25; + uint32 ip_flags = 38; + uint32 tcp_flags = 26; + uint32 icmp_type = 31; + uint32 icmp_code = 32; + uint32 ipv6_flow_label = 37; + // Fragments (IPv4/IPv6) + uint32 fragment_id = 35; + uint32 fragment_offset = 36; + + // Autonomous system information + uint32 src_as = 14; + uint32 dst_as = 15; + + bytes next_hop = 12; + uint32 next_hop_as = 13; + + // Prefix size + uint32 src_net = 16; + uint32 dst_net = 17; + + // BGP information + bytes bgp_next_hop = 100; + repeated uint32 bgp_communities = 101; + repeated uint32 as_path = 102; + + // MPLS information + repeated uint32 mpls_ttl = 80; + repeated uint32 mpls_label = 81; + repeated bytes mpls_ip = 82; + + uint32 observation_domain_id = 70; + uint32 observation_point_id = 71; + + // Encapsulation + enum LayerStack { + Ethernet = 0; + IPv4 = 1; + IPv6 = 2; + TCP = 3; + UDP = 4; + MPLS = 5; + Dot1Q = 6; + ICMP = 7; + ICMPv6 = 8; + GRE = 9; + IPv6HeaderRouting = 10; + IPv6HeaderFragment = 11; + Geneve = 12; + Teredo = 13; + Custom = 99; + // todo: add nsh + } + repeated LayerStack layer_stack = 103; + repeated uint32 layer_size = 104; + + repeated bytes ipv6_routing_header_addresses = 105; // SRv6 + uint32 ipv6_routing_header_seg_left = 106; // SRv6 + +} diff --git a/compose/kcg/clickhouse/protocols.csv b/compose/kcg/clickhouse/protocols.csv index 20065a9d..702ab3c8 100644 --- a/compose/kcg/clickhouse/protocols.csv +++ b/compose/kcg/clickhouse/protocols.csv @@ -27,4 +27,4 @@ proto,name,description 94,IPIP,IP-within-IP Encapsulation Protocol 97,ETHERIP,Ethernet-within-IP Encapsulation 98,ENCAP,Encapsulation Header -112,VRRP,Virtual Router Redundancy Protocol \ No newline at end of file +112,VRRP,Virtual Router Redundancy Protocol diff --git a/compose/kcg/docker-compose.yml b/compose/kcg/docker-compose.yml index 858b71b6..2232ef5c 100644 --- a/compose/kcg/docker-compose.yml +++ b/compose/kcg/docker-compose.yml @@ -1,23 +1,27 @@ version: "3" services: - zookeeper: - image: bitnami/zookeeper:3.7.1 - ports: - - 2181:2181 - environment: - - ALLOW_ANONYMOUS_LOGIN=yes - restart: always kafka: - image: bitnami/kafka:3.4.0 + image: bitnami/kafka:3.9.0 ports: - 9092:9092 environment: - - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_DELETE_TOPIC_ENABLE=true + - KAFKA_ENABLE_KRAFT=true + - KAFKA_KRAFT_CLUSTER_ID=AAAAAAAAAAAAAAAAAAAAAA # uuid encoded in base64 + # dd if=/dev/zero of=/dev/stdout count=16 bs=1 | openssl enc -A -a + # head -c 20 /dev/zero | base64 + - KAFKA_CFG_BROKER_ID=1 + - KAFKA_CFG_NODE_ID=1 + - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093 + - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER + - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=IB + - KAFKA_CFG_PROCESS_ROLES=broker,controller + - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,BROKER:PLAINTEXT,IB:PLAINTEXT + - KAFKA_CFG_LISTENERS=CONTROLLER://:9093,BROKER://:9092,IB://:9094 + - KAFKA_ADVERTISED_LISTENERS=BROKER://kafka:9092,IB://:9094 + - BITNAMI_DEBUG=yes restart: always - depends_on: - - zookeeper grafana: image: grafana/grafana:9.4.3 environment: @@ -32,7 +36,7 @@ services: - ./grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yml - ./grafana/dashboards:/var/lib/grafana/dashboards prometheus: - image: prom/prometheus:v2.37.6 + image: prom/prometheus:v3.0.1 ports: - 9090:9090 restart: always @@ -53,18 +57,20 @@ services: - 6343:6343/udp - 2055:2055/udp restart: always - command: - - -transport.kafka.brokers=kafka:9092 - - -transport=kafka - - -transport.kafka.topic=flows - - -format=bin + command: + - -transport.kafka.brokers=kafka:9092 + - -transport=kafka + - -transport.kafka.topic=flows + - -format=bin db: - image: clickhouse/clickhouse-server:22.8.14.53-alpine + image: clickhouse/clickhouse-server:24.11.1.2557-alpine ports: - 8123:8123 volumes: - ./clickhouse:/docker-entrypoint-initdb.d/ - - ../../pb/flow.proto:/var/lib/clickhouse/format_schemas/flow.proto + #- ../../pb/flow.proto:/var/lib/clickhouse/format_schemas/flow.proto + # the following files have 101:101 as owner + - ./clickhouse/flow.proto:/var/lib/clickhouse/format_schemas/flow.proto - ./clickhouse/protocols.csv:/var/lib/clickhouse/user_files/protocols.csv depends_on: - kafka diff --git a/compose/kcg/grafana/dashboards/perfs.json b/compose/kcg/grafana/dashboards/perfs.json index 957b6904..6bdb8899 100644 --- a/compose/kcg/grafana/dashboards/perfs.json +++ b/compose/kcg/grafana/dashboards/perfs.json @@ -1,2106 +1,2753 @@ { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "description": "Metrics about the NetFlow+sFlow collector", - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 2, - "links": [], - "panels": [ + "annotations": { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 53, - "panels": [], - "repeat": null, - "title": "Totals", - "type": "row" + "list": + [ + { + "builtIn": 1, + "datasource": + { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": + { + "limit": 100, + "matchAny": false, + "tags": + [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "Prometheus", - "format": "pps", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 1 - }, - "id": 9, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "description": "Metrics about the NetFlow+sFlow collector", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "links": + [], + "liveNow": false, + "panels": + [ + { + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 53, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "Totals", + "type": "row" }, { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(rate(flow_process_nf_flowset_records_sum[5m]))", - "format": "time_series", - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "NetFlows Total", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "Prometheus", - "format": "pps", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 1 - }, - "id": 10, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "color": + { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "mappings": + [ + { + "options": + { + "match": "null", + "result": + { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": + { + "mode": "absolute", + "steps": + [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": + [] + }, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 9, + "links": + [], + "maxDataPoints": 100, + "options": + { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": + { + "calcs": + [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.3", + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_flowset_records_total[5m]))", + "format": "time_series", + "intervalFactor": 1, + "range": true, + "refId": "A" + } + ], + "title": "NetFlows Total", + "type": "stat" }, { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(rate(flow_process_sf_samples_sum[5m]))", - "format": "time_series", - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "sFlows Total", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 54, - "panels": [], - "repeat": null, - "title": "Flows UDP Metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 51, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(udp_traffic_bytes[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "color": + { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "mappings": + [ + { + "options": + { + "match": "null", + "result": + { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": + { + "mode": "absolute", + "steps": + [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": + [] + }, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 10, + "links": + [], + "maxDataPoints": 100, + "options": + { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": + { + "calcs": + [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.3", + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_sf_samples_total[5m]))", + "format": "time_series", + "intervalFactor": 1, + "range": true, + "refId": "A" + } + ], + "title": "sFlows Total", + "type": "stat" }, { - "expr": "sum(rate(udp_traffic_bytes[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Total", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "UDP2Kafka Bandwidth", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 54, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "Flows UDP Metrics", + "type": "row" }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 52, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(udp_traffic_packets[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 9 + }, + "hiddenSeries": false, + "id": 51, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_bytes_total[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_bytes_total[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Total", + "range": true, + "refId": "B" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "UDP2Kafka Bandwidth", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "expr": "sum(rate(udp_traffic_packets[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Total", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "UDP2Kafka packets", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 9 + }, + "hiddenSeries": false, + "id": 52, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_packets_total[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_packets_total[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Total", + "range": true, + "refId": "B" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "UDP2Kafka packets", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 1, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_traffic_bytes{type=\"sFlow\"}[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 16 + }, + "hiddenSeries": false, + "id": 1, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_sum{type=\"sflow\"}[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "aggregator": "sum", + "alias": "$tag_type | Total", + "currentTagKey": "", + "currentTagValue": "", + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "downsampleAggregator": "avg", + "downsampleFillPolicy": "none", + "downsampleInterval": "", + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_sum{type=\"sflow\"}[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "sFlow | Total", + "metric": "goflow.flow_traffic_bytes", + "range": true, + "refId": "B", + "shouldComputeRate": true, + "tags": + { + "type": "sFlow" + } + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlow UDP Bandwidth", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "aggregator": "sum", - "alias": "$tag_type | Total", - "currentTagKey": "", - "currentTagValue": "", - "downsampleAggregator": "avg", - "downsampleFillPolicy": "none", - "downsampleInterval": "", - "expr": "sum(rate(flow_traffic_bytes{type=\"sFlow\"}[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "sFlow | Total", - "metric": "goflow.flow_traffic_bytes", - "refId": "B", - "shouldComputeRate": true, - "tags": { - "type": "sFlow" - } - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlow UDP Bandwidth", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 16 + }, + "hiddenSeries": false, + "id": 2, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_count{type=\"sflow\"}[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "aggregator": "sum", + "alias": "$tag_type | Total", + "currentTagKey": "", + "currentTagValue": "", + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "downsampleAggregator": "avg", + "downsampleFillPolicy": "none", + "downsampleInterval": "", + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_count{type=\"sflow\"}[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "sFlow | Total", + "metric": "goflow-kafka.flow_traffic_packets", + "range": true, + "refId": "B", + "shouldComputeRate": true, + "tags": + { + "type": "sFlow" + } + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlow UDP Packets", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 2, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_traffic_packets{type=\"sFlow\"}[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 23 + }, + "hiddenSeries": false, + "id": 48, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_sum{type=\"netflow\"}[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_sum{type=\"netflow\"}[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "NetFlow | Total", + "range": true, + "refId": "B" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow UDP Bandwidth", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "aggregator": "sum", - "alias": "$tag_type | Total", - "currentTagKey": "", - "currentTagValue": "", - "downsampleAggregator": "avg", - "downsampleFillPolicy": "none", - "downsampleInterval": "", - "expr": "sum(rate(flow_traffic_packets{type=\"sFlow\"}[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "sFlow | Total", - "metric": "goflow-kafka.flow_traffic_packets", - "refId": "B", - "shouldComputeRate": true, - "tags": { - "type": "sFlow" - } - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlow UDP Packets", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 10, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 23 + }, + "hiddenSeries": false, + "id": 47, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [ + { + "alias": "/Total*/", + "color": "#DEDAF7", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_count{type=\"netflow\"}[5m])) by (remote_ip)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ remote_ip }}", + "range": true, + "refId": "A" + }, + { + "aggregator": "sum", + "alias": "$tag_type | Total", + "currentTagKey": "", + "currentTagValue": "", + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "downsampleAggregator": "avg", + "downsampleFillPolicy": "none", + "downsampleInterval": "", + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_traffic_size_bytes_count{type=\"netflow\"}[5m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "NetFlow | Total", + "metric": "goflow-kafka.flow_traffic_packets", + "range": true, + "refId": "B", + "shouldComputeRate": true, + "tags": + { + "type": "NetFlow" + } + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow UDP Packets", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 48, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_traffic_bytes{type=\"NetFlow\"}[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 55, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "NetFlow metrics", + "type": "row" }, { - "expr": "sum(rate(flow_traffic_bytes{type=\"NetFlow\"}[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "NetFlow | Total", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow UDP Bandwidth", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 31 + }, + "hiddenSeries": false, + "id": 3, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_flowset_records_total[5m])) by (version,type)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ version }} | {{ type }} ", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlows by type and version", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 10, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 23 - }, - "id": 47, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "/Total*/", - "color": "#DEDAF7", - "fill": 0, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_traffic_packets{type=\"NetFlow\"}[5m])) by (remote_ip)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ remote_ip }}", - "refId": "A" + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 1, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 31 + }, + "hiddenSeries": false, + "id": 4, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_errors_total[5m])) by (error)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ error }}", + "metric": "goflow-kafka.flow_process_nf_errors_count", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlows errors", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "hertz", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "aggregator": "sum", - "alias": "$tag_type | Total", - "currentTagKey": "", - "currentTagValue": "", - "downsampleAggregator": "avg", - "downsampleFillPolicy": "none", - "downsampleInterval": "", - "expr": "sum(rate(flow_traffic_packets{type=\"NetFlow\"}[5m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "NetFlow | Total", - "metric": "goflow-kafka.flow_traffic_packets", - "refId": "B", - "shouldComputeRate": true, - "tags": { - "type": "NetFlow" - } - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow UDP Packets", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 38 + }, + "hiddenSeries": false, + "id": 6, + "legend": + { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_templates_total[5m])) by (version,router,type)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ version }} | {{ router }} | {{ type }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow templates", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 55, - "panels": [], - "repeat": null, - "title": "NetFlow metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 31 - }, - "id": 3, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_nf_flowset_records_sum[5m])) by (version,type)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ version }} | {{ type }} ", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlows by type and version", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 38 + }, + "hiddenSeries": false, + "id": 7, + "legend": + { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_templates_total[5m])) by (router,version)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ router }} | {{ version }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlows - DataFlowSets by router and version", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 31 - }, - "id": 4, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_nf_errors_count[5m])) by (error)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ error }}", - "metric": "goflow-kafka.flow_process_nf_errors_count", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlows errors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "hertz", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 24, + "x": 0, + "y": 45 + }, + "hiddenSeries": false, + "id": 14, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_nf_delay_seconds[5m])) by (quantile,router,version)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Q{{ quantile }} | {{ router }} | {{ version }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "Time between flow and processing", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 38 - }, - "id": 6, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_nf_templates_count[5m])) by (version,router,type)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ version }} | {{ router }} | {{ type }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow templates", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 52 + }, + "id": 56, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "sFlow metrics", + "type": "row" }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 38 - }, - "id": 7, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_nf_flowset_records_sum[5m])) by (router,version)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ router }} | {{ version }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlows - DataFlowSets by router and version", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 0, + "y": 53 + }, + "hiddenSeries": false, + "id": 5, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_sf_samples_records_total[5m])) by (version,type)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ version }} | {{ type }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlows by type", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 45 - }, - "id": 14, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_nf_delay_summary_seconds[5m])) by (quantile,router,version)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Q{{ quantile }} | {{ router }} | {{ version }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Time between flow and processing", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 12, + "x": 12, + "y": 53 + }, + "hiddenSeries": false, + "id": 8, + "legend": + { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_process_sf_samples_records_total{type=\"FlowSample\"}[5m])) by (agent,version)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ agent }} | {{ version }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlows Flow records by agent and version", + "tooltip": + { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "pps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 52 - }, - "id": 56, - "panels": [], - "repeat": null, - "title": "sFlow metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 53 - }, - "id": 5, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_sf_samples_sum[5m])) by (version,type)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ version }} | {{ type }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlows by type", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 60 + }, + "id": 57, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "NetFlow decoder metrics", + "type": "row" }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 53 - }, - "id": 8, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_process_sf_samples_records_sum{type=\"FlowSample\"}[5m])) by (agent,version)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{ agent }} | {{ version }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlows Flow records by agent and version", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 0, + "y": 61 + }, + "hiddenSeries": false, + "id": 11, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "avg(goflow2_flow_decoding_time_seconds{name=\"netflow\"}) by (quantile)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Q{{ quantile }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow decoding time quantiles", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 60 - }, - "id": 57, - "panels": [], - "repeat": null, - "title": "NetFlow decoder metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 61 - }, - "id": 11, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg(flow_summary_decoding_time_us{name=\"NetFlow\"}) by (quantile)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Q{{ quantile }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow decoding time quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "µs", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 8, + "y": 61 + }, + "hiddenSeries": false, + "id": 12, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "avg(goflow2_flow_decoding_time_seconds{name=\"netflow\"}) by (quantile)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Q{{ quantile }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow processing time quantiles", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 61 - }, - "id": 12, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg(flow_summary_processing_time_us{name=\"NetFlow\"}) by (quantile)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Q{{ quantile }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow processing time quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "µs", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 16, + "y": 61 + }, + "hiddenSeries": false, + "id": 13, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_decoding_time_seconds{name=\"netflow\"}[5m])) by (worker)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Worker {{ worker }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "NetFlow worker rate", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 61 - }, - "id": 13, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": null, - "sortDesc": null, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ + "collapsed": false, + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "gridPos": + { + "h": 1, + "w": 24, + "x": 0, + "y": 68 + }, + "id": 58, + "panels": + [], + "targets": + [ + { + "datasource": + { + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" + }, + "refId": "A" + } + ], + "title": "sFlow decoder metrics", + "type": "row" + }, { - "expr": "sum(rate(flow_decoder_count{name=\"NetFlow\"}[5m])) by (worker)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Worker {{ worker }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NetFlow worker rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 0, + "y": 69 + }, + "hiddenSeries": false, + "id": 15, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "avg(goflow2_flow_decoding_time_seconds{name=\"sflow\"}) by (quantile)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Q{{ quantile }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlow decoding time quantiles", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } + }, { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 8, + "y": 69 + }, + "hiddenSeries": false, + "id": 16, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "avg(goflow2_flow_decoding_time_seconds{name=\"sflow\"}) by (quantile)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Q{{ quantile }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlow processing time quantiles", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } }, { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "aliasColors": + {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": + { + "defaults": + { + "unit": "s" + }, + "overrides": + [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": + { + "h": 7, + "w": 8, + "x": 16, + "y": 69 + }, + "hiddenSeries": false, + "id": 17, + "legend": + { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": + [], + "nullPointMode": "null", + "options": + { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.3", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": + [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": + [ + { + "datasource": + { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(rate(goflow2_flow_decoding_time_seconds{name=\"sflow\"}[5m])) by (worker)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Worker {{ worker }}", + "range": true, + "refId": "A" + } + ], + "thresholds": + [], + "timeRegions": + [], + "title": "sFlow worker rate", + "tooltip": + { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": + { + "mode": "time", + "show": true, + "values": + [] + }, + "yaxes": + [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": + { + "align": false + } } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": + [], + "templating": { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 68 - }, - "id": 58, - "panels": [], - "repeat": null, - "title": "sFlow decoder metrics", - "type": "row" + "list": + [] }, + "time": { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 69 - }, - "id": 15, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg(flow_summary_decoding_time_us{name=\"sFlow\"}) by (quantile)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Q{{ quantile }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlow decoding time quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "µs", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "from": "now-30m", + "to": "now" }, + "timepicker": { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 69 - }, - "id": 16, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg(flow_summary_decoding_time_us{name=\"sFlow\"}) by (quantile)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Q{{ quantile }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlow processing time quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "µs", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "refresh_intervals": + [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": + [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 69 - }, - "id": 17, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": null, - "sortDesc": null, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(flow_decoder_count{name=\"sFlow\"}[5m])) by (worker)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Worker {{ worker }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "sFlow worker rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "pps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": false, - "schemaVersion": 16, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-24h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "utc", - "title": "GoFlow - Internals", - "uid": "4U5xQZPmz", - "version": 2 + "timezone": "utc", + "title": "GoFlow - Internals", + "uid": "4U5xQZPmz", + "version": 1, + "weekStart": "" } \ No newline at end of file diff --git a/compose/kcg/prometheus/prometheus.yml b/compose/kcg/prometheus/prometheus.yml index b7745309..270ab852 100644 --- a/compose/kcg/prometheus/prometheus.yml +++ b/compose/kcg/prometheus/prometheus.yml @@ -11,4 +11,4 @@ rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - - targets: ['localhost:9090', 'goflow2:8080'] \ No newline at end of file + - targets: ['localhost:9090', 'goflow2:8080', 'host.docker.internal:8080']