# https://docs.fluentbit.io/manual/pipeline/inputs/cpu-metrics # https://docs.fluentbit.io/manual/pipeline/inputs/memory-metrics # https://docs.fluentbit.io/manual/pipeline/inputs/disk-io-metrics # https://docs.fluentbit.io/manual/pipeline/inputs/network-io-metrics # https://github.com/sysstat/sysstat # https://docs.fluentbit.io/manual/pipeline/filters/log_to_metrics # # INDENTATION WITH SPACES NOT TABS # # change # cpu_total # eth0 # output & add_label # flb cpu [INPUT] name cpu tag hw.cpu interval_sec 5 # hard-code total cpu for better load avgs (check /proc/cpuinfo) [FILTER] name modify match hw.cpu add cpu_total 1 # sysstat load [INPUT] name exec tag hw.load interval_sec 5 command sar -q 0 [FILTER] name grep match hw.load regex exec [0-9.,]+$ [FILTER] name parser match hw.load key_name exec parser load_avg preserve_key false reserve_data false # flb mem required for swap [INPUT] name mem tag hw.mem interval_sec 5 # sysstat ram [INPUT] name exec tag hw.ram interval_sec 5 command sar -r 0 [FILTER] name grep match hw.ram regex exec [0-9.,]+$ [FILTER] name parser match hw.ram key_name exec parser ram_used_percent preserve_key false reserve_data false # flb i/o [INPUT] name disk tag hw.disk interval_sec 5 # sysstat i/o [INPUT] name exec tag hw.io interval_sec 5 command sar -d 0 [FILTER] name grep match hw.io regex exec [0-9.,]+$ [FILTER] name parser match hw.io key_name exec parser io_used_percent preserve_key false reserve_data false # flb tx/rx [INPUT] name netif tag hw.netif interval_sec 5 interface eth0 # sysstat DEV eth0 [INPUT] name exec tag hw.iface interval_sec 5 command sar -n DEV --iface=eth0 0 [FILTER] name grep match hw.iface regex exec [0-9.,]+$ [FILTER] name parser match hw.iface key_name exec parser iface_p preserve_key false reserve_data false # https://docs.fluentbit.io/manual/pipeline/filters/log_to_metrics # CPU [FILTER] name log_to_metrics match hw.cpu tag hw_metrics metric_mode gauge metric_name cpu_p value_field cpu_p metric_description CPU usage % [FILTER] name log_to_metrics match hw.cpu tag hw_metrics metric_mode gauge metric_name cpu_total value_field cpu_total metric_description total amount of CPU cores # SYSTEM LOAD [FILTER] name log_to_metrics match hw.load tag hw_metrics metric_mode gauge metric_name ldavg1 value_field ldavg1 metric_description system load 1 minute [FILTER] name log_to_metrics match hw.load tag hw_metrics metric_mode gauge metric_name ldavg5 value_field ldavg5 metric_description system load 5 minutes [FILTER] name log_to_metrics match hw.load tag hw_metrics metric_mode gauge metric_name ldavg15 value_field ldavg15 metric_description system load 15 minutes # RAM [FILTER] name log_to_metrics match hw.ram tag hw_metrics metric_mode gauge metric_name ram_used_percent value_field ram_used_percent metric_description RAM usage % excl. buff/cache # SWAP [FILTER] name log_to_metrics match hw.mem tag hw_metrics metric_mode gauge metric_name swap.used value_field Swap.used metric_description used SWAP bytes [FILTER] name log_to_metrics match hw.mem tag hw_metrics metric_mode gauge metric_name swap.total value_field Swap.total metric_description total SWAP bytes # DISK I/O [FILTER] name log_to_metrics match hw.disk tag hw_metrics metric_mode gauge metric_name write_size value_field write_size metric_description disk output [FILTER] name log_to_metrics match hw.disk tag hw_metrics metric_mode gauge metric_name read_size value_field read_size metric_description disk input [FILTER] name log_to_metrics match hw.io tag hw_metrics metric_mode gauge metric_name io_used_percent value_field io_used_percent metric_description disk i/o # IFACE USAGE [FILTER] name log_to_metrics match hw.iface tag hw_metrics.iface metric_mode gauge metric_name iface_p value_field iface_p metric_description network tx/rx # TX/RX [FILTER] name log_to_metrics match hw.netif tag hw_metrics.netif metric_mode gauge metric_name eth0.tx.bytes value_field eth0.tx.bytes metric_description TX bytes [FILTER] name log_to_metrics match hw.netif tag hw_metrics.netif metric_mode gauge metric_name eth0.rx.bytes value_field eth0.rx.bytes metric_description RX bytes [FILTER] name log_to_metrics match hw.netif tag hw_metrics.netif metric_mode gauge metric_name eth0.tx.packets value_field eth0.tx.packets metric_description TX pkts [FILTER] name log_to_metrics match hw.netif tag hw_metrics.netif metric_mode gauge metric_name eth0.rx.packets value_field eth0.rx.packets metric_description RX pkts #[OUTPUT] # name file # match hw_metrics.iface # path /var/log # file fluent-bit.log [OUTPUT] name prometheus_remote_write match hw_metrics* host ... port 443 tls on tls.verify off http_user ... http_passwd ... # standalone uri /api/v1/write # cluster #uri /insert/0/prometheus/api/v1/write log_response_payload true add_label sensor flb@HOSTNAME