config: stop shipping demo exporter configurations from orchestrator

This pollutes the configuration. We can just ask the demo exporters to
read directly their configuration files.
This commit is contained in:
Vincent Bernat
2025-10-05 09:21:16 +02:00
parent 7d2fe9dcbf
commit 145f86a17f
10 changed files with 358 additions and 355 deletions

View File

@@ -79,7 +79,3 @@ clickhouse:
inlet: !include "inlet.yaml"
outlet: !include "outlet.yaml"
console: !include "console.yaml"
# This line can be removed unless you have enabled the demo exporters with the
# "demo" profile.
demo-exporter: !include "demo.yaml"

11
config/demo-1.yaml Normal file
View File

@@ -0,0 +1,11 @@
---
snmp:
name: th2-edge1.example.com
interfaces:
10: "Transit: Telia"
11: "IX: AMSIX"
20: "core"
21: "core"
listen: :161
bmp: !include "demo-bmp.yaml"
flows: !include "demo-flows.yaml"

11
config/demo-2.yaml Normal file
View File

@@ -0,0 +1,11 @@
---
snmp:
name: th2-edge2.example.com
interfaces:
10: "Transit: Cogent"
11: "IX: DECIX"
20: "core"
21: "core"
listen: :161
bmp: !include "demo-bmp.yaml"
flows: !include "demo-flows.yaml"

11
config/demo-3.yaml Normal file
View File

@@ -0,0 +1,11 @@
---
snmp:
name: dc3-edge1.example.com
interfaces:
10: "Transit: Tata"
11: "Transit: Lumen"
20: "core"
21: "core"
listen: :161
bmp: !include "demo-bmp.yaml"
flows: !include "demo-flows.yaml"

11
config/demo-4.yaml Normal file
View File

@@ -0,0 +1,11 @@
---
snmp:
name: dc5-edge2.example.com
interfaces:
10: "IX: FranceIX"
11: "Transit: Cogent"
20: "core"
21: "core"
listen: :161
bmp: !include "demo-bmp.yaml"
flows: !include "demo-flows.yaml"

37
config/demo-bmp.yaml Normal file
View File

@@ -0,0 +1,37 @@
---
target: akvorado-outlet:10179
routes:
- prefixes: 192.0.2.0/24,2a01:db8:cafe:1::/64
aspath: 64501
communities: 65401:10,65401:12
large-communities: 65401:100:200,65401:100:201
- prefixes: 203.0.113.0/24,2a01:db8:cafe:2::/64
aspath: 65401
communities: 65401:10,65401:13
large-communities: 65401:100:200,65401:100:213
- prefixes: 216.58.206.0/24,2a00:1450:4007:807::2000/124
aspath: 174,1299,15169
communities: 174:22004,174:21100
- prefixes: 179.60.192.0/24,2a03:2880:f130:83:face:b00c:0::/112
aspath: 1299,1299,32934
communities: 1299:30000,1299:30220
- prefixes: 198.38.120.0/23,2a00:86c0:115:115::/112
aspath: 5511,1299,1299,32934
communities: 1299:30000,1299:30310
- prefixes: 23.33.27.0/24,2a02:26f0:9100:28:0:17c0::/112
aspath: 174,174,174,20940
communities: 174:22002,174:21200
- prefixes: 52.84.175.0/24,2600:9000:218d:4a00:15:74db::/112
aspath: 16509
- prefixes: 199.232.178.0/29,2a04:4e42:1d::/126
aspath: 1299,54113
communities: 1299:35000,1299:35200
- prefixes: 52.223.202.128/27
aspath: 16509,46489
- prefixes: 138.231.0.0/16
aspath: 1299,174,2269,2269
communities: 1299:30000,1299:30400
- prefixes: 0.0.0.0/0
aspath: 174
- prefixes: ::/0
aspath: 1299

261
config/demo-flows.yaml Normal file
View File

@@ -0,0 +1,261 @@
---
.demo-exporter-flows:
- &http-src
src-port: [80, 443]
dst-port: 0
protocol: tcp
size: 1300
- &http-dst
src-port: 0
dst-port: [80, 443]
protocol: tcp
size: 1300
- &quic-src
src-port: 443
dst-port: 0
protocol: udp
size: 1200
- &ssh-src
src-port: 22
dst-port: 0
protocol: tcp
size: 200
- &ssh-dst
src-port: 0
dst-port: 22
protocol: tcp
size: 300
- &to-v4-customers
dst-net: 192.0.2.0/24
dst-as: 64501
- &to-v6-customers
dst-net: 2a01:db8:cafe:1::/64
dst-as: 64501
- &to-v4-servers
dst-net: 203.0.113.0/24
dst-as: 64501
- &to-v6-servers
dst-net: 2a01:db8:cafe:2::/64
dst-as: 64501
- &from-v4-google
src-net: 216.58.206.0/24
src-as: 15169
- &from-v6-google
src-net: 2a00:1450:4007:807::2000/124
src-as: 15169
- &from-v4-facebook
src-net: 179.60.192.0/24
src-as: 32934
- &from-v6-facebook
src-net: 2a03:2880:f130:83:face:b00c:0::/112
src-as: 32934
- &from-v4-netflix
src-net: 198.38.120.0/23
src-as: 2906
- &from-v6-netflix
src-net: 2a00:86c0:115:115::/112
src-as: 2906
- &from-v4-akamai
src-net: 23.33.27.0/24
src-as: 20940
- &from-v6-akamai
src-net: 2a02:26f0:9100:28:0:17c0::/112
src-as: 20940
- &from-v4-amazon
src-net: 52.84.175.0/24
src-as: 16509
- &from-v6-amazon
src-net: 2600:9000:218d:4a00:15:74db::/112
src-as: 16509
- &from-v4-fastly
src-net: 199.232.178.0/29
src-as: 54113
- &from-v6-fastly
src-net: 2a04:4e42:1d::/126
src-as: 54113
- &from-v4-twitch
src-net: 52.223.202.128/27
src-as: 46489
- &from-v4-renater
src-net: 138.231.0.0/16
src-as: 2269
- &from-v4-random
src-net: 92.0.0.0/8
src-as: [12322, 3215, 3303, 15557, 3320, 13335, 6185, 202818, 60068, 16276, 8075, 32590]
- &from-v6-random
src-net: 2a01:cb00::/32
src-as: [12322, 3215, 3303, 15557, 3320, 13335, 6185, 202818, 60068, 16276, 8075, 32590]
samplingrate: 100000
target: akvorado-inlet:2055
flows:
# Google
- per-second: 0.5
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.1
<<: [*from-v4-google, *to-v4-customers, *http-src]
- per-second: 0.25
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 5.5
reverse-direction-ratio: 0.1
<<: [*from-v4-google, *to-v4-customers, *quic-src]
- per-second: 0.7
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 3.3
reverse-direction-ratio: 0.1
<<: [*from-v6-google, *to-v6-customers, *http-src]
- per-second: 0.4
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 5.5
reverse-direction-ratio: 0.1
<<: [*from-v6-google, *to-v6-customers, *quic-src]
# Facebook
- per-second: 0.55
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v4-facebook, *to-v4-customers, *http-src]
- per-second: 0.1
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v4-facebook, *to-v4-customers, *quic-src]
- per-second: 0.9
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v6-facebook, *to-v6-customers, *http-src]
- per-second: 0.1
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 20h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v6-facebook, *to-v6-customers, *quic-src]
# Netflix
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 22h
multiplier: 22
reverse-direction-ratio: 0.1
<<: [*from-v4-netflix, *to-v4-customers, *http-src]
- per-second: 0.35
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 22h
multiplier: 22
reverse-direction-ratio: 0.1
<<: [*from-v6-netflix, *to-v6-customers, *http-src]
# Twitch
- per-second: 0.6
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 20
reverse-direction-ratio: 0.4
<<: [*from-v4-twitch, *to-v4-customers, *http-src]
# Akamai
- per-second: 0.7
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v4-akamai, *to-v4-customers, *http-src]
- per-second: 0.4
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v6-akamai, *to-v6-customers, *http-src]
# Fastly
- per-second: 0.2
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v4-fastly, *to-v4-customers, *http-src]
- per-second: 0.35
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 14h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v6-fastly, *to-v6-customers, *http-src]
# Amazon
- per-second: 0.15
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.15
<<: [*from-v4-amazon, *to-v4-customers, *http-src]
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.15
<<: [*from-v6-amazon, *to-v6-customers, *http-src]
# Random SSH
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.5
<<: [*from-v4-renater, *to-v4-customers, *ssh-src]
# Servers
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.2
<<: [*from-v4-renater, *to-v4-servers, *ssh-dst]
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.15
<<: [*from-v4-random, *to-v4-servers, *http-dst]
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.1
<<: [*from-v6-random, *to-v6-servers, *http-dst]
# Noise
- &random-flow
per-second: 0.5
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 20h
multiplier: 1.1
protocol: [tcp, udp]
srcport: [80, 443, 22, 25461, 8080, 4500, 993, 8801]
reverse-direction-ratio: 0.25
<<: [*from-v4-random, *to-v4-customers]
- <<: [*from-v6-random, *to-v6-customers, *random-flow]

View File

@@ -1,347 +0,0 @@
---
.demo-exporter-flows:
- &http-src
src-port: [80, 443]
dst-port: 0
protocol: tcp
size: 1300
- &http-dst
src-port: 0
dst-port: [80, 443]
protocol: tcp
size: 1300
- &quic-src
src-port: 443
dst-port: 0
protocol: udp
size: 1200
- &ssh-src
src-port: 22
dst-port: 0
protocol: tcp
size: 200
- &ssh-dst
src-port: 0
dst-port: 22
protocol: tcp
size: 300
- &to-v4-customers
dst-net: 192.0.2.0/24
dst-as: 64501
- &to-v6-customers
dst-net: 2a01:db8:cafe:1::/64
dst-as: 64501
- &to-v4-servers
dst-net: 203.0.113.0/24
dst-as: 64501
- &to-v6-servers
dst-net: 2a01:db8:cafe:2::/64
dst-as: 64501
- &from-v4-google
src-net: 216.58.206.0/24
src-as: 15169
- &from-v6-google
src-net: 2a00:1450:4007:807::2000/124
src-as: 15169
- &from-v4-facebook
src-net: 179.60.192.0/24
src-as: 32934
- &from-v6-facebook
src-net: 2a03:2880:f130:83:face:b00c:0::/112
src-as: 32934
- &from-v4-netflix
src-net: 198.38.120.0/23
src-as: 2906
- &from-v6-netflix
src-net: 2a00:86c0:115:115::/112
src-as: 2906
- &from-v4-akamai
src-net: 23.33.27.0/24
src-as: 20940
- &from-v6-akamai
src-net: 2a02:26f0:9100:28:0:17c0::/112
src-as: 20940
- &from-v4-amazon
src-net: 52.84.175.0/24
src-as: 16509
- &from-v6-amazon
src-net: 2600:9000:218d:4a00:15:74db::/112
src-as: 16509
- &from-v4-fastly
src-net: 199.232.178.0/29
src-as: 54113
- &from-v6-fastly
src-net: 2a04:4e42:1d::/126
src-as: 54113
- &from-v4-twitch
src-net: 52.223.202.128/27
src-as: 46489
- &from-v4-renater
src-net: 138.231.0.0/16
src-as: 2269
- &from-v4-random
src-net: 92.0.0.0/8
src-as: [12322, 3215, 3303, 15557, 3320, 13335, 6185, 202818, 60068, 16276, 8075, 32590]
- &from-v6-random
src-net: 2a01:cb00::/32
src-as: [12322, 3215, 3303, 15557, 3320, 13335, 6185, 202818, 60068, 16276, 8075, 32590]
"":
- snmp:
name: th2-edge1.example.com
interfaces:
10: "Transit: Telia"
11: "IX: AMSIX"
20: "core"
21: "core"
listen: :161
bmp: &bmp
target: akvorado-outlet:10179
routes:
- prefixes: 192.0.2.0/24,2a01:db8:cafe:1::/64
aspath: 64501
communities: 65401:10,65401:12
large-communities: 65401:100:200,65401:100:201
- prefixes: 203.0.113.0/24,2a01:db8:cafe:2::/64
aspath: 65401
communities: 65401:10,65401:13
large-communities: 65401:100:200,65401:100:213
- prefixes: 216.58.206.0/24,2a00:1450:4007:807::2000/124
aspath: 174,1299,15169
communities: 174:22004,174:21100
- prefixes: 179.60.192.0/24,2a03:2880:f130:83:face:b00c:0::/112
aspath: 1299,1299,32934
communities: 1299:30000,1299:30220
- prefixes: 198.38.120.0/23,2a00:86c0:115:115::/112
aspath: 5511,1299,1299,32934
communities: 1299:30000,1299:30310
- prefixes: 23.33.27.0/24,2a02:26f0:9100:28:0:17c0::/112
aspath: 174,174,174,20940
communities: 174:22002,174:21200
- prefixes: 52.84.175.0/24,2600:9000:218d:4a00:15:74db::/112
aspath: 16509
- prefixes: 199.232.178.0/29,2a04:4e42:1d::/126
aspath: 1299,54113
communities: 1299:35000,1299:35200
- prefixes: 52.223.202.128/27
aspath: 16509,46489
- prefixes: 138.231.0.0/16
aspath: 1299,174,2269,2269
communities: 1299:30000,1299:30400
- prefixes: 0.0.0.0/0
aspath: 174
- prefixes: ::/0
aspath: 1299
flows: &flows1
samplingrate: 100000
target: akvorado-inlet:2055
flows:
# Google
- per-second: 0.5
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.1
<<: [*from-v4-google, *to-v4-customers, *http-src]
- per-second: 0.25
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 5.5
reverse-direction-ratio: 0.1
<<: [*from-v4-google, *to-v4-customers, *quic-src]
- per-second: 0.7
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 3.3
reverse-direction-ratio: 0.1
<<: [*from-v6-google, *to-v6-customers, *http-src]
- per-second: 0.4
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 5.5
reverse-direction-ratio: 0.1
<<: [*from-v6-google, *to-v6-customers, *quic-src]
# Facebook
- per-second: 0.55
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v4-facebook, *to-v4-customers, *http-src]
- per-second: 0.1
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 16h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v4-facebook, *to-v4-customers, *quic-src]
- per-second: 0.9
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v6-facebook, *to-v6-customers, *http-src]
- per-second: 0.1
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 20h
multiplier: 3.3
reverse-direction-ratio: 0.2
<<: [*from-v6-facebook, *to-v6-customers, *quic-src]
# Netflix
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 22h
multiplier: 22
reverse-direction-ratio: 0.1
<<: [*from-v4-netflix, *to-v4-customers, *http-src]
- per-second: 0.35
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 22h
multiplier: 22
reverse-direction-ratio: 0.1
<<: [*from-v6-netflix, *to-v6-customers, *http-src]
# Twitch
- per-second: 0.6
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 21h
multiplier: 20
reverse-direction-ratio: 0.4
<<: [*from-v4-twitch, *to-v4-customers, *http-src]
# Akamai
- per-second: 0.7
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v4-akamai, *to-v4-customers, *http-src]
- per-second: 0.4
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v6-akamai, *to-v6-customers, *http-src]
# Fastly
- per-second: 0.2
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v4-fastly, *to-v4-customers, *http-src]
- per-second: 0.35
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 14h
multiplier: 1.5
reverse-direction-ratio: 0.1
<<: [*from-v6-fastly, *to-v6-customers, *http-src]
# Amazon
- per-second: 0.15
in-if-index: [10, 11]
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.15
<<: [*from-v4-amazon, *to-v4-customers, *http-src]
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 18h
multiplier: 1.5
reverse-direction-ratio: 0.15
<<: [*from-v6-amazon, *to-v6-customers, *http-src]
# Random SSH
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.5
<<: [*from-v4-renater, *to-v4-customers, *ssh-src]
# Servers
- per-second: 0.05
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.2
<<: [*from-v4-renater, *to-v4-servers, *ssh-dst]
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.15
<<: [*from-v4-random, *to-v4-servers, *http-dst]
- per-second: 0.1
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 15h
multiplier: 1.4
reverse-direction-ratio: 0.1
<<: [*from-v6-random, *to-v6-servers, *http-dst]
# Noise
- &random-flow
per-second: 0.5
in-if-index: 10
out-if-index: [20, 21]
peak-hour: 20h
multiplier: 1.1
protocol: [tcp, udp]
srcport: [80, 443, 22, 25461, 8080, 4500, 993, 8801]
reverse-direction-ratio: 0.25
<<: [*from-v4-random, *to-v4-customers]
- <<: [*from-v6-random, *to-v6-customers, *random-flow]
- snmp:
name: th2-edge2.example.com
interfaces:
10: "Transit: Cogent"
11: "IX: DECIX"
20: "core"
21: "core"
listen: :161
bmp:
<<: *bmp
flows:
<<: *flows1
seed: 100
- snmp:
name: dc3-edge1.example.com
interfaces:
10: "Transit: Tata"
11: "Transit: Lumen"
20: "core"
21: "core"
listen: :161
bmp:
<<: *bmp
flows:
<<: *flows1
seed: 200
- snmp:
name: dc5-edge2.example.com
interfaces:
10: "IX: FranceIX"
11: "Transit: Cogent"
20: "core"
21: "core"
listen: :161
bmp:
<<: *bmp
flows:
<<: *flows1
seed: 300

View File

@@ -10,6 +10,10 @@ identified with a specific icon:
- 🩹: bug fix
- 🌱: miscellaneous change
## Unreleased
- 💥 *config*: stop shipping demo exporter configurations from the orchestrator
## 2.0.1 - 2025-10-02
- 🩹 *inlet*: disable kernel timestamping on Linux kernel older than 5.1

View File

@@ -6,7 +6,9 @@ services:
service: akvorado
profiles: [ demo ]
restart: unless-stopped
command: demo-exporter http://akvorado-orchestrator:8080#0
command: demo-exporter /etc/akvorado/demo-1.yaml
volumes:
- ../config:/etc/akvorado:ro
depends_on:
akvorado-inlet:
condition: service_healthy
@@ -17,10 +19,16 @@ services:
- metrics.path=/api/v0/metrics
akvorado-exporter-2:
<<: *exporter
command: demo-exporter http://akvorado-orchestrator:8080#1
command: demo-exporter /etc/akvorado/demo-2.yaml
environment:
AKVORADO_CFG_DEMOEXPORTER_FLOWS_SEED: 100
akvorado-exporter-3:
<<: *exporter
command: demo-exporter http://akvorado-orchestrator:8080#2
command: demo-exporter /etc/akvorado/demo-3.yaml
environment:
AKVORADO_CFG_DEMOEXPORTER_FLOWS_SEED: 200
akvorado-exporter-4:
<<: *exporter
command: demo-exporter http://akvorado-orchestrator:8080#3
command: demo-exporter /etc/akvorado/demo-4.yaml
environment:
AKVORADO_CFG_DEMOEXPORTER_FLOWS_SEED: 300