]>
git.ipfire.org Git - oddments/collecty.git/log
Michael Tremer [Wed, 22 Oct 2025 10:39:32 +0000 (10:39 +0000)]
jenkins: Install libudev-dev on Debian-based machines
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Oct 2025 10:37:37 +0000 (10:37 +0000)]
daemon: Release memory when the system is under pressure
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 19:25:52 +0000 (19:25 +0000)]
sources: disk: Read SMART data if available
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 18:05:52 +0000 (18:05 +0000)]
source: Implement actually migrating databases
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 17:36:40 +0000 (17:36 +0000)]
source: Check if RRD files need migration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 15:52:53 +0000 (15:52 +0000)]
sources: Add source to collect disk IO stats
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 15:52:26 +0000 (15:52 +0000)]
file: Return the error code if we could not read the file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 14:28:51 +0000 (14:28 +0000)]
daemon: Connect to udev
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 14:12:50 +0000 (14:12 +0000)]
colors: Define a special color for rx/tx traffic
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 14:10:10 +0000 (14:10 +0000)]
graphs: Add a graph to show rate information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 14:09:27 +0000 (14:09 +0000)]
sources: Correct rate information of hostapd stations
hostapd returns this in hundredth of kilobits. We will store it in bits.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 13:53:38 +0000 (13:53 +0000)]
graphs: Try to make the signal graph a bit more colourful
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 13:37:44 +0000 (13:37 +0000)]
graphs: Add bandwidth graphs for hostapd stations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 10:46:51 +0000 (10:46 +0000)]
graphs: Rename hostapd station signal graph
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 10:44:17 +0000 (10:44 +0000)]
po: Add telemetry.po to .gitignore
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 10:42:25 +0000 (10:42 +0000)]
graphs: hostapd: Add graph that shows the station signal
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 10:41:53 +0000 (10:41 +0000)]
graphs: Add some more macros
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 10:41:20 +0000 (10:41 +0000)]
sources: Take VDEFs from the graphs macros
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 07:26:25 +0000 (07:26 +0000)]
command: Cleanup events before closing file descriptors
This makes the trace slightly cleaner when FDs will be removed from the
event loop before they are closed and not the other way round.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Oct 2025 07:26:01 +0000 (07:26 +0000)]
command: Defer cleaning up the command to avoid zombies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 17:13:54 +0000 (17:13 +0000)]
graphs: Simplify headers by removing option to pass extra arguments
We should keep it so that the macros print simple things and we won't
have to deal with the extra arguments.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 17:10:11 +0000 (17:10 +0000)]
graphs: Add automatic field composition for objects
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 14:29:29 +0000 (14:29 +0000)]
sources: hostapd: Don't use colons
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 14:28:39 +0000 (14:28 +0000)]
queue: Don't allow colons in object names
This breaks generating graphs where colons are used as delimiter.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 14:23:02 +0000 (14:23 +0000)]
sources: hostapd: Zero-pad MAC addresses
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 14:16:56 +0000 (14:16 +0000)]
client: Pass the object in the options array
This makes it all a little bit easier
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 13:26:58 +0000 (13:26 +0000)]
sources: Add source for hostapd clients
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 13:25:37 +0000 (13:25 +0000)]
file: Only finish parsing when we have found enough fields
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 13:24:51 +0000 (13:24 +0000)]
file: There is no need to attempt to parse empty lines
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 13:23:29 +0000 (13:23 +0000)]
file: Add function to run the parser on a single line
This is useful if we want to use the parser when we cannot walk through
the file line by line.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 10:15:29 +0000 (10:15 +0000)]
daemon: Allow to select sources on the CLI
This is only useful for testing to basically disable all other sources
for better log readability.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 20 Oct 2025 09:04:06 +0000 (09:04 +0000)]
sources: Properly turn off the event when we disable a source
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 19 Oct 2025 13:40:14 +0000 (13:40 +0000)]
po: Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 19 Oct 2025 13:39:44 +0000 (13:39 +0000)]
Rename the entire project to "IPFire Telemetry"
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 19 Oct 2025 13:08:08 +0000 (13:08 +0000)]
source: Disable all sources that fail all the time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 19 Oct 2025 13:03:05 +0000 (13:03 +0000)]
graphs: Always show the top of the memory graph
I am not sure whether this is what I actually want but some members on
the team think that it should be this way. So I will commit this for
now and maybe later revert it again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Oct 2025 09:57:14 +0000 (09:57 +0000)]
sources: df: Cleanup /proc/self/mounts on error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Oct 2025 17:44:23 +0000 (17:44 +0000)]
command: Close the pidfd
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:46:13 +0000 (20:46 +0000)]
file: Reset the file pointer on error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:39:06 +0000 (20:39 +0000)]
file: Another attempt to make the static analyzer happy
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:33:15 +0000 (20:33 +0000)]
file: Try to make the static analyzer happy
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:30:24 +0000 (20:30 +0000)]
graphs: Add a memory graph
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:07:02 +0000 (20:07 +0000)]
proc: Also convert total memory to bytes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 20:06:35 +0000 (20:06 +0000)]
queue: Flush all data when we want to draw a graph
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:33:10 +0000 (16:33 +0000)]
graphs: Write title/vlabel to the stack
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:24:14 +0000 (16:24 +0000)]
po: Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:23:14 +0000 (16:23 +0000)]
configure: Add option to enable tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:10:12 +0000 (16:10 +0000)]
util: Remove the old file walking functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:07:13 +0000 (16:07 +0000)]
proc: Use the new parser to parse PSI information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 16:02:39 +0000 (16:02 +0000)]
file: Implement parsing multiple values per line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 15:49:02 +0000 (15:49 +0000)]
sources: unbound: Cleanup some code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 15:46:33 +0000 (15:46 +0000)]
command: Use the buffer implementation for internal buffering
In order to use the file parser, we convert the output of the command to
a file object which then provides a nice and simple parser.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 15:44:58 +0000 (15:44 +0000)]
file: Allow to open a buffer as a file object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 15:43:24 +0000 (15:43 +0000)]
file: Fix format string check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 15:42:55 +0000 (15:42 +0000)]
buffer: Add a buffer implementation to write larger data to
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 10:47:45 +0000 (10:47 +0000)]
file: Build a simple parser
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:57:46 +0000 (09:57 +0000)]
file: Add a function to read a single integer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:43:26 +0000 (09:43 +0000)]
sources: Rename collect() to heartbeat()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:35:40 +0000 (09:35 +0000)]
parse: Add custom functions to parse token and integers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:34:45 +0000 (09:34 +0000)]
string: Add function to strip non-whitespace
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:34:13 +0000 (09:34 +0000)]
string: Include <stdarg.h>
This was required for a while and when not included will break the
build.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Oct 2025 09:33:16 +0000 (09:33 +0000)]
string: Add function to copy strings of a set input length
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Oct 2025 10:07:02 +0000 (10:07 +0000)]
proc: Refatcor reading /proc/softirqs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Oct 2025 10:05:58 +0000 (10:05 +0000)]
file: Add an abstraction to read files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Oct 2025 08:11:24 +0000 (08:11 +0000)]
loadavg: Make the graph make sense
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Oct 2025 08:11:06 +0000 (08:11 +0000)]
graphs: Make it easier to compute custom CDEFs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 17:06:02 +0000 (17:06 +0000)]
source: Remove stepsize
We can fetch this from the heartbeat which is easier to understand in
its function.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 17:03:52 +0000 (17:03 +0000)]
source: Stagger sources to avoid load peaks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 16:59:01 +0000 (16:59 +0000)]
command: Kill commands after 30 seconds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 16:17:45 +0000 (16:17 +0000)]
sources: Add a source for Unbound stats
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 16:16:11 +0000 (16:16 +0000)]
command: Add a helper object to run a command
This is designed to run any shell commands and parse the output. This
has to be done asynchronously so that we won't block the event loop.
That slightly adds some complications.
The command will be executed and events will be installed with the event
loop to read any stdout/stderr and store it as well as receive a signal
when the process terminates.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 16:15:31 +0000 (16:15 +0000)]
util: Add a helper function to walk through a buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 14:29:16 +0000 (14:29 +0000)]
daemon: Mask SIGCHLD
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 14:28:01 +0000 (14:28 +0000)]
util: Add a helper function to iterate through file handles
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 11:42:26 +0000 (11:42 +0000)]
proto: Reduce the amount of logging
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Oct 2025 11:21:13 +0000 (11:21 +0000)]
queue: Actually store the object in the queue
This used to never happen which is why sources with multiple objects had
their data written into the main RRD file.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 15:16:39 +0000 (15:16 +0000)]
graphs: Add uptime graph
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 15:02:27 +0000 (15:02 +0000)]
string: Check format strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:37:12 +0000 (14:37 +0000)]
sources: Add source for the system's uptime
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:23:41 +0000 (14:23 +0000)]
string: Make all functions static
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:23:09 +0000 (14:23 +0000)]
string: Add formatting functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:08:53 +0000 (14:08 +0000)]
string: Add our string comparison function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:04:30 +0000 (14:04 +0000)]
util: Add macros for branch prediction
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 14:03:24 +0000 (14:03 +0000)]
sources: Add softirqs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 13:55:45 +0000 (13:55 +0000)]
queue: Fail if the object contains invalid characters
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 13:27:31 +0000 (13:27 +0000)]
sources: Add sources for IPv4 fragmentation information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 11:55:23 +0000 (11:55 +0000)]
Add source for memory usage
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Oct 2025 10:55:19 +0000 (10:55 +0000)]
daemon: Use macros to convert time
That way, I will hopefully not get the maths wrong all the time.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 16:07:06 +0000 (16:07 +0000)]
source: Complain if the heartbeat was called too late
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 16:02:24 +0000 (16:02 +0000)]
source: Complain if something stalls the event loop
This source will also be de-prioritized so that other sources can work
better.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 16:02:09 +0000 (16:02 +0000)]
sources: Add a test that stalls the event loop
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 15:19:11 +0000 (15:19 +0000)]
source: Lower the heartbeat if a source is in error state
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 15:09:15 +0000 (15:09 +0000)]
sources: Store result codes and check for patterns
That way we can disable any sources which constantly fail and we might
as well detect flapping.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 14:58:18 +0000 (14:58 +0000)]
sources: Add some tests
Oone constantly returns an error, the other one returns an error with a
probability of 50%. They are to test the internal error handling.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 13:26:55 +0000 (13:26 +0000)]
sources: Add source for disk usage
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 12:51:21 +0000 (12:51 +0000)]
po: Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 12:49:49 +0000 (12:49 +0000)]
sources: Add PSI for I/O
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 12:47:00 +0000 (12:47 +0000)]
sources: Add PSI for memory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 12:43:59 +0000 (12:43 +0000)]
sources: Add PSI for CPU
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Oct 2025 12:01:50 +0000 (12:01 +0000)]
graphs: Make it configurable if the graph is reversed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>