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, # ]