configs/example.toml (410 lines of code) (raw):
# This example configuration covers detailed configuration for each sampler
# General configuration
[general]
# Sets the socket address for Rezolus to listen on. This is a required parameter
listen = "0.0.0.0:4242"
# Specify the logging level: error, info, debug, trace,
# logging = "info"
# The default interval, in milliseconds, for all samplers
# interval = 1000
# The default window for percentiles in seconds. Samples older than this will
# age-out of the histograms.
# window = 60
# The number of worker threads which are used to run samplers. This should be
# increased if the process is CPU bound and falling behind when running a large
# number of samplers. Individual samplers cannot be running concurrently on
# multiple workers, so increasing this will not help if a particular sampler is
# falling behind due to its interval being too short, but would allow for other
# samplers to run in parallel.
# threads = 1
# Control whether errors during initialization/sampling should be treated as
# critical errors and cause the program to exit. Typically, this would only be
# changed for development/CI purposes.
# fault_tolerant = true
# Specify a suffix that should be appended to counter/gauge readings. This may
# be set to an empty string to remove the suffix entirely.
# reading_suffix = "count"
# Per-sampler configuration sections
[samplers]
# The cpu sampler provides telemetry for CPU utilization, C-states, and
# processor performance telemetry.
[samplers.cpu]
# Controls whether to use this sampler
enabled = true
# Enable sampling performance counters
perf_events = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "cpu/cache/access",
# "cpu/cache/miss",
# "cpu/cycles",
# "cpu/instructions",
# "cpu/reference_cycles",
# "cpu/usage/user",
# "cpu/usage/system",
# "cpu/usage/idle",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The disk sampler provides telemetry about disk IO operations, bandwidth, and
# with BPF enabled, IO size and latency distributions.
[samplers.disk]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "disk/read/bytes",
# "disk/write/bytes",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The ext4 sampler provides telemetry about ext4 filesystem operations.
# Currently this sampler only provides telemetry from BPF. If you want to enable
# this sampler, you should also enable BPF.
[samplers.ext4]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "ext4/read/latency",
# "ext4/write/latency",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# This sampler reads from a JSON key-value http endpoint and can calculate
# percentile metrics for configured counters and gauges. It is intended to be
# used for host-local http endpoints to avoid introducing noise into the
# percentiles due to variable request service time.
# [samplers.http]
# Controls whether to use this sampler
# enabled = false
# Specify the full URL to read JSON metrics from
# url = "http://0.0.0.0:8080/vars.json"
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# Specify raw metric names that should be treated as counters and have
# percentile metrics calculated. The percentiles will be of secondly rates seen
# calculated from the difference in consecutive readings and the elapsed time
# between those readings.
# counters = [
# # "some_counter_metric",
# ]
# Specify raw metric names that should be treated as gauges and have percentile
# metrics calculated. The percentiles will be of instantaneous gauge values.
# gauges = [
# # "some_gauge_metric",
# ]
# Enable pass-through of raw metric readings. The names will have the reading
# suffix appended to them, see the general config section.
# passthrough = false
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The interrupt sampler provides telemetry about system interrupts
[samplers.interrupt]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "interrupt/total",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The krb5kdc sampler attaches user space probes to the krb5kdc binary distributed as part
# of MIT kerberos. It will interpret the krb5_error_codes for the functions as well and export
# the number of calls to each ticket processing function and its result. Specifically it will
# attach to: finish_process_as_req, finish_dispatch_cache, and process_tgs_request.
[samplers.krb5kdc]
# Controls whether to use this sampler
# enabled = true
# Path to the krb5kdc binary to probe
# path = "/usr/sbin/krb5kdc"
# The memory sampler provides telemetry for system memory utilization
[samplers.memory]
# Controls whether to use this sampler
enabled = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "memory/total",
# "memory/free",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The network sampler provides telemetry for network bandwidth, packet rates,
# errors, and optionally the distribution of transmit/receive sizes.
[samplers.network]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "network/receive/bytes",
# "network/transmit/bytes"
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The NTP sampler provides basic telemetry for the running network time protocol
# daemon.
[samplers.ntp]
# Controls wherther to use this sampler
enabled = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "network/receive/bytes",
# "network/transmit/bytes"
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The Nvidia sampler provides telemetry for Nvidia GPUs by using the NVML
# library.
[samplers.nvidia]
# Controls whether to use this sampler
enabled = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# NOTE: the lack of the 'nvidia' prefix. Exported stats will have the form of
# nvidia/gpu_[id]/...
# statistics = [
# "gpu/temperature",
# "power/usage",
# "power/limit",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The page cache sampler provides telemetry about page cache hits and misses
[samplers.page_cache]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling - required for this sampler
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "page_cache/hits",
# "page_cache/misses"
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The rezolus sampler provides telemetry about the CPU and memory utilization
# for Rezolus itself.
[samplers.process]
# Controls whether to use this sampler
enabled = true
# Specify the a file to read the PID to monitor
# pid_file = "/path/to/process.pid"
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The rezolus sampler provides telemetry about the CPU and memory utilization
# for Rezolus itself.
[samplers.rezolus]
# Controls whether to use this sampler
enabled = true
# The scheduler sampler provides telemetry about the system scheduler and number
# of running/blocked/created processes.
[samplers.scheduler]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Enable sampling performance counters
perf_events = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "scheduler/context_switches",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The softnet scheduler provides telemetry about kernel processing of network
# frames.
[samplers.softnet]
# Controls whether to use this sampler
enabled = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "softnet/processed",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The tcp sampler provides telemetry about tcp traffic
[samplers.tcp]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "tcp/receive/segment",
# "tcp/transmit/segment",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The udp sampler provides telemetry about udp traffic
[samplers.udp]
# Controls whether to use this sampler
enabled = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "udp/receive/datagrams",
# "udp/transmit/datagrams",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]
# The xfs sampler provides telemetry for xfs filesystem operations.
# Currently this sampler only provides telemetry from BPF. If you want to enable
# this sampler, you should also enable BPF.
[samplers.xfs]
# Controls whether to use this sampler
enabled = true
# Enable BPF sampling
bpf = true
# Sampling interval, in milliseconds, for this sampler
# interval = 1000
# The set of exported statistics may be limited by specifying them, otherwise
# the complete set of statistics will be exported.
# statistics = [
# "xfs/read/latency",
# "xfs/write/latency",
# ]
# The set of exported percentiles can be controlled by specifying them here
# percentiles = [
# 1.0,
# 10.0,
# 50.0,
# 90.0,
# 99.0,
# ]