Vincent Bernat
1dc253764d
global: split Akvorado into 3 services
2022-04-01 20:21:53 +02:00
Vincent Bernat
a336370c05
web: frontend using Bootstrap
2022-03-31 20:56:14 +02:00
Vincent Bernat
de88cd92ae
core: do not make "no more flows available an error"
2022-03-31 08:14:34 +02:00
Vincent Bernat
9a8916b64e
clickhouse: move template rendering to Open()
...
This way, we got proper error reports. Read() cannot fail anymore.
2022-03-29 21:48:37 +02:00
Vincent Bernat
aa80787f53
build: update go.mod/go.sum
2022-03-29 21:43:47 +02:00
Vincent Bernat
38e3b790bc
clickhouse: enable logger to correctly log Clickhouse errors
2022-03-29 21:40:20 +02:00
Vincent Bernat
b8755808f1
clickhouse: fix typo in migration template
...
It seems go-migrate does not check for errors when reading files...
2022-03-29 21:40:20 +02:00
Vincent Bernat
e5c8988b43
http: add metrics and logs
2022-03-29 21:40:20 +02:00
Vincent Bernat
741543ddf4
clickhouse: use one kafka consumer per partition
2022-03-29 13:52:14 +02:00
Vincent Bernat
b38c974d0f
snmp: make refresh test more reliable by not jumping clock too fast
2022-03-29 13:30:49 +02:00
Vincent Bernat
b6a6a0392d
build: fix build on Gitlab
2022-03-29 13:22:49 +02:00
Vincent Bernat
6545ea91f6
clickhouse: fix 9th migration
v0.8
2022-03-29 13:02:25 +02:00
Vincent Bernat
41d3ee538f
global: rename sampler to exporter
...
This is the terminology for IPFix. With Netflow, sampler is ambiguous
as it can mean the exporter or the sampler inside the exporter.
2022-03-29 11:27:54 +02:00
Vincent Bernat
15627fe63b
web: add option to serve live filesystem instead of embedded one
2022-03-28 22:32:12 +02:00
Vincent Bernat
952cfabcbc
helpers: remove unneeded files
2022-03-28 22:11:40 +02:00
Vincent Bernat
ee6aeadbf1
clickhouse: alter codec of the TimeReceived column
...
This improves compression which should also improve reading time due
to less IO.
v0.7
2022-03-28 19:51:22 +02:00
Vincent Bernat
6d716e3e5b
doc: update documentation with a troubleshooting section
2022-03-28 12:52:51 +02:00
Vincent Bernat
b1890991cc
flow: make input overflow more reproducible
2022-03-28 11:49:52 +02:00
Vincent Bernat
3b0f6b5a27
flow: add a counter to monitor dropped packets
2022-03-28 09:52:17 +02:00
Vincent Bernat
ba99a50b43
flow: add option to set UDP receive buffer size
2022-03-28 09:11:48 +02:00
Vincent Bernat
120d9d3bd3
flow: don't use go-reuseport
...
It's a few lines to do that ourselves. This enables us to get control
of the socket.
2022-03-27 14:32:03 +02:00
Vincent Bernat
b086c9478a
flow: add IPFIX support
2022-03-26 21:25:19 +01:00
Vincent Bernat
1b4ba973a7
flow: make input decode flows
...
We cannot pass the payload around as we want to reuse it. We should
pass a copy, but this is a bit of a waste. Just do decoding during
input ingestion. The CPU usage should be small, this helps locality
and it avoids one channel.
v0.6.1
2022-03-26 15:18:52 +01:00
Vincent Bernat
176e4999b9
build: speed up linting by always using ./...
...
This is quite odd, but revive is super slow when providing many
directories. I suppose they are evaluated several times.
2022-03-26 15:15:25 +01:00
Vincent Bernat
1a022ce94d
snmp: use a per-sampler breaker logger
...
Otherwise, we may think there is an issue with only one sampler.
2022-03-26 13:20:41 +01:00
Vincent Bernat
794f9bf6e4
poller: specify number of OIDs we tried to get
2022-03-26 12:49:15 +01:00
Vincent Bernat
a5a8d8a55c
snmp: remove useless metrics
2022-03-26 12:46:54 +01:00
Vincent Bernat
47fe13a617
core: remove useless metrics
2022-03-26 12:46:53 +01:00
Vincent Bernat
cb35ebdcd7
snmp: remove debug code
v0.6
2022-03-26 12:24:41 +01:00
Vincent Bernat
c44434a8fa
cmd: allow to set arrays using environment variables
2022-03-26 12:21:03 +01:00
Vincent Bernat
43f58bde60
http: optionally enable profiler
2022-03-26 11:51:13 +01:00
Vincent Bernat
6899d65f15
flow: add a default value for inputs
2022-03-26 11:45:10 +01:00
Vincent Bernat
41fc4cb336
snmp: fix flaky test around coaelescing
...
We didn't block the dispatcher, but the poller. One more message was
needed to block the dispatcher. Let's simplify all that by
instrumenting the dispatcher to be blocked on demand.
2022-03-26 08:47:22 +01:00
Vincent Bernat
4eeb775b27
cmd: start flow component last to speedup stop and avoid clogging start
2022-03-26 08:01:21 +01:00
Vincent Bernat
d5ecc4d792
tests: use current source file to find testdata for helpers
2022-03-26 07:50:50 +01:00
Vincent Bernat
050ad03241
build: don't display color on dumb terminal
2022-03-26 07:50:50 +01:00
Vincent Bernat
c0fe3c5b75
doc: split design into two files
...
Most users won't care about the programming design.
2022-03-26 07:50:50 +01:00
Vincent Bernat
c54ecadae2
kafka: add a setting to tune internal queue sizes
2022-03-26 07:50:50 +01:00
Vincent Bernat
c256d3e097
reporter: use zerolog own rate limiter
2022-03-26 07:50:50 +01:00
Vincent Bernat
0abf71224c
flow: make inputs modular
2022-03-25 23:35:41 +01:00
Vincent Bernat
7aa75269bc
reporter: allow to declare several times the same metric
...
This will simplify the way we handle inputs.
2022-03-24 23:57:55 +01:00
Vincent Bernat
bdda4e3be3
flow: adopt a static approach to register decoders
...
This makes little sense to have something dynamic if all our decoders
are in the same codebase. Just register all decoders into a struct.
2022-03-24 22:41:42 +01:00
Vincent Bernat
537065db52
flow: make flow decoding modular
...
This is a preparation step to support multiple inputs and decoders.
2022-03-24 22:23:00 +01:00
Vincent Bernat
844e0b4b52
web: log HTTP proxy errors with zerolog
2022-03-24 18:44:04 +01:00
Vincent Bernat
41a704c044
snmp: try harder to ensure packets get queued for coalescing test
2022-03-24 16:21:06 +01:00
Vincent Bernat
ab6888d3e5
flow: don't reuse IP fields from the original protobuf message
...
For some reason, they may get modified. This is a bit unclear how and
when since the structure is not serialized at any point, but
otherwise, src/destination IPs may get randomly corrupted.
2022-03-24 15:21:45 +01:00
Vincent Bernat
50ad351e6a
doc: update SNMP design with latest commits
2022-03-23 18:22:13 +01:00
Vincent Bernat
29471c7073
snmp: lower even more the default value fo coalescing
...
If we assume a MTU of 1500, we may run into trouble with long
descriptions. Assume 50 bytes for description, 30 bytes for interface
name, plus 30 bytes for OIDs, it means we can only put 13 results in a
standard MTU.
At some point, we may try to be smarter and have per-sampler values?
2022-03-23 18:14:43 +01:00
Vincent Bernat
064d734d23
snmp: fix default value of poller-coalesce
...
Just one unit too big!
2022-03-23 18:03:13 +01:00
Vincent Bernat
3d6d28f15f
build: try twice test-race and test-coverage when test is successful
v0.5
2022-03-23 16:39:12 +01:00