From 84265b1f014d8376c9c2a20208a3e5d548f7436e Mon Sep 17 00:00:00 2001 From: "Eric D. Schabell" Date: Mon, 24 Nov 2025 12:19:25 +0100 Subject: [PATCH 1/4] Updated to include new input plugin doc for Windows System Statistics. Applies to #2139. Signed-off-by: Eric D. Schabell --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 12245f3ba..fe8ecb414 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -125,6 +125,7 @@ * [Windows Event logs (winlog)](pipeline/inputs/windows-event-log.md) * [Windows Event logs (winevtlog)](pipeline/inputs/windows-event-log-winevtlog.md) * [Windows exporter metrics](pipeline/inputs/windows-exporter-metrics.md) + * [Windows System Statistics (winstat)](pipeline/inputs/windows-system-statistics.md) * [Parsers](pipeline/parsers.md) * [Configuring parsers](pipeline/parsers/configuring-parser.md) * [Decoders](pipeline/parsers/decoders.md) From 8b9641dec0b3d64aa6d3faf9d80564a96331d824 Mon Sep 17 00:00:00 2001 From: "Eric D. Schabell" Date: Mon, 24 Nov 2025 12:20:15 +0100 Subject: [PATCH 2/4] Updated to include new input plugin doc for Windows System Statistics. Applies to #2139. Signed-off-by: Eric D. Schabell --- pipeline/inputs/windows-system-statistics.md | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 pipeline/inputs/windows-system-statistics.md diff --git a/pipeline/inputs/windows-system-statistics.md b/pipeline/inputs/windows-system-statistics.md new file mode 100644 index 000000000..8a5344ee2 --- /dev/null +++ b/pipeline/inputs/windows-system-statistics.md @@ -0,0 +1,99 @@ +# Windows System Statistics (winstat) + +The _Windows System Statistics_ (`winstat`) input plugin collects system-level statistics from Windows environments, including CPU usage, memory consumption, disk I/O, and network activity. This plugin uses Windows Performance Counters to gather real-time system metrics. + +{% hint style="info" %} + +This plugin is only available on Windows operating systems and requires appropriate permissions to access Windows Performance Counters. + +{% endhint %} + +## Configuration parameters + +The plugin supports the following configuration parameters: + +| Key | Description | Default | +|:----------------|:--------------------------------------------------------------------------------------------------------|:--------| +| `Interval_Sec` | Polling interval in seconds. | `1` | +| `Interval_NSec` | Polling interval in nanoseconds. | `0` | +| `Threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` | + +## Metrics collected + +The `winstat` plugin collects the following system statistics: + +| Metric Category | Description | +|:----------------|:----------------------------------------------------------------------------| +| CPU | CPU usage percentage, including user and system time | +| Memory | Memory usage including total, available, and used memory | +| Disk | Disk I/O statistics including read/write operations and throughput | +| Network | Network interface statistics including bytes sent/received and packet counts | + +## Get started + +To collect Windows system statistics, you can run the plugin from the command line or through the configuration file: + +### Command line + +You can run the plugin from the command line: + +```shell +fluent-bit -i winstat -o stdout +``` + +Which returns information similar to the following: + +```text +... +[0] winstat: [1699123456.123456789, {"cpu.usage"=>15.3, "cpu.user"=>10.2, "cpu.system"=>5.1, "memory.total"=>8192, "memory.available"=>4096, "memory.used"=>4096, "disk.read_bytes"=>1024000, "disk.write_bytes"=>512000, "network.bytes_sent"=>2048000, "network.bytes_recv"=>1024000}] +[1] winstat: [1699123457.123456789, {"cpu.usage"=>16.1, "cpu.user"=>11.0, "cpu.system"=>5.1, "memory.total"=>8192, "memory.available"=>4080, "memory.used"=>4112, "disk.read_bytes"=>1025000, "disk.write_bytes"=>515000, "network.bytes_sent"=>2050000, "network.bytes_recv"=>1025000}] +... +``` + +### Configuration file + +In your main configuration file append the following: + +{% tabs %} +{% tab title="fluent-bit.yaml" %} + +```yaml +pipeline: + inputs: + - name: winstat + tag: winstat + interval_sec: 1 + interval_nsec: 0 + + outputs: + - name: stdout + match: '*' +``` + +{% endtab %} +{% tab title="fluent-bit.conf" %} + +```text +[INPUT] + Name winstat + Tag winstat + Interval_Sec 1 + Interval_NSec 0 + +[OUTPUT] + Name stdout + Match * +``` + +{% endtab %} +{% endtabs %} + +Total interval (sec) = `Interval_Sec` + (`Interval_NSec` / 1000000000) + +For example: `1.5s` = `1s` + `500000000ns` + +## Notes + +- The `winstat` plugin requires Windows Performance Counters access. Ensure Fluent Bit is running with appropriate permissions. +- This plugin is Windows-only and will not work on Linux, macOS, or other operating systems. +- For Prometheus-based metrics collection on Windows, consider using the [Windows Exporter Metrics](windows-exporter-metrics.md) input plugin instead. From 2bdfa9a414523e8b9e71df7c719f3fa71d838189 Mon Sep 17 00:00:00 2001 From: "Eric D. Schabell" Date: Mon, 24 Nov 2025 12:27:37 +0100 Subject: [PATCH 3/4] Lint fix for winstat input plugin doc fix. Signed-off-by: Eric D. Schabell --- pipeline/inputs/windows-system-statistics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/inputs/windows-system-statistics.md b/pipeline/inputs/windows-system-statistics.md index 8a5344ee2..963bf5c58 100644 --- a/pipeline/inputs/windows-system-statistics.md +++ b/pipeline/inputs/windows-system-statistics.md @@ -1,4 +1,4 @@ -# Windows System Statistics (winstat) +# Windows system statistics (winstat) The _Windows System Statistics_ (`winstat`) input plugin collects system-level statistics from Windows environments, including CPU usage, memory consumption, disk I/O, and network activity. This plugin uses Windows Performance Counters to gather real-time system metrics. @@ -95,5 +95,5 @@ For example: `1.5s` = `1s` + `500000000ns` ## Notes - The `winstat` plugin requires Windows Performance Counters access. Ensure Fluent Bit is running with appropriate permissions. -- This plugin is Windows-only and will not work on Linux, macOS, or other operating systems. +- This plugin is Windows-only and won't work on Linux, macOS, or other operating systems. - For Prometheus-based metrics collection on Windows, consider using the [Windows Exporter Metrics](windows-exporter-metrics.md) input plugin instead. From 1e1cf1d618a0daebcbe3df7f15732d9a6010510f Mon Sep 17 00:00:00 2001 From: "Eric D. Schabell" Date: Mon, 24 Nov 2025 16:48:37 +0100 Subject: [PATCH 4/4] Updated collectd input plugin docs with missing information. Fix #2196. Signed-off-by: Eric D. Schabell --- pipeline/inputs/collectd.md | 50 ++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/pipeline/inputs/collectd.md b/pipeline/inputs/collectd.md index 534207e53..bcf35ea15 100644 --- a/pipeline/inputs/collectd.md +++ b/pipeline/inputs/collectd.md @@ -1,6 +1,6 @@ # Collectd -The _Collectd_ input plugin lets you receive datagrams from the `collectd` service. +The _Collectd_ input plugin lets you receive datagrams from the `collectd` service over `UDP`. The plugin listens for collectd network protocol packets and converts them into Fluent Bit records. ## Configuration parameters @@ -8,14 +8,34 @@ The plugin supports the following configuration parameters: | Key | Description | Default | |:-----------|:--------------------------------------------------------------------------------------------------------|:-------------------------------| -| `Listen` | Set the address to listen to. | `0.0.0.0` | -| `Port` | Set the port to listen to. | `25826` | -| `TypesDB` | Set the data specification file. | `/usr/share/collectd/types.db` | -| `Threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` | +| `listen` | Set the address to listen to. | `0.0.0.0` | +| `port` | Set the port to listen to. | `25826` | +| `typesdb` | Set the data specification file. You can specify multiple files separated by commas. Later entries take precedence over earlier ones. | `/usr/share/collectd/types.db` | +| `threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` | -## Configuration examples +## Get started -Here is a basic configuration example: +To receive collectd datagrams, you can run the plugin from the command line or through the configuration file. + +### Command line + +From the command line you can let Fluent Bit listen for `collectd` datagrams with the following options: + +```shell +fluent-bit -i collectd -o stdout +``` + +By default, the service listens on all interfaces (`0.0.0.0`) using `UDP` port `25826`. You can change this directly: + +```shell +fluent-bit -i collectd -p listen=192.168.3.2 -p port=9090 -o stdout +``` + +In this example, collectd datagrams will only arrive through the network interface at `192.168.3.2` address and `UDP` port `9090`. + +### Configuration file + +In your main configuration file append the following: {% tabs %} {% tab title="fluent-bit.yaml" %} @@ -26,7 +46,7 @@ pipeline: - name: collectd listen: 0.0.0.0 port: 25826 - typesdb: '/user/share/collectd/types.db,/etc/collectd/custom.db' + typesdb: '/usr/share/collectd/types.db,/etc/collectd/custom.db' outputs: - name: stdout @@ -53,4 +73,16 @@ pipeline: With this configuration, Fluent Bit listens to `0.0.0.0:25826`, and outputs incoming datagram packets to `stdout`. -You must set the same `types.db` files that your `collectd` server uses. Otherwise, Fluent Bit might not be able to interpret the payload properly. \ No newline at end of file +## TypesDB configuration + +You must set the same `types.db` files that your `collectd` server uses. Otherwise, Fluent Bit might not be able to interpret the payload properly. + +The `TypesDB` parameter supports multiple files separated by commas. When multiple files are specified, later entries take precedence over earlier ones if there are duplicate type definitions. This allows you to override default types with custom definitions. + +For example: + +```yaml +typesdb: '/usr/share/collectd/types.db,/etc/collectd/custom.db' +``` + +In this configuration, custom type definitions in `/etc/collectd/custom.db` will override any matching definitions from `/usr/share/collectd/types.db`.