Night Watch (NiW) is a command-line tool for tracking a variety range of Linux-based system statistics that integrated into the Ingrow system. The statistics -based on your choice- includes information about the OS, CPU, disks, uptime, memory, load average, and networks.
Collected information on each plugin showed in this table.
| Plugin | Collected Information |
|---|---|
| OS | hostname |
| CPU | cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_io_wait, cpu_irq, cpu_soft_irq, cpu_steal, cpu_guest, cpu_guest_nice, cpu_interrupts, cpu_context_switches, cpu_boot_time, cpu_processes, cpu_processes_running, cpu_processes_blocked |
| Disks (name separated) | read_ios, read_merges, read_sectors, read_ticks, write_ios, write_merges, write_sectors, write_ticks, in_flight, io_ticks, time_in_queue |
| Uptime | uptime_total, uptime_idle |
| Memory | mem_total, mem_free, mem_available, mem_buffers, mem_cached, mem_swap_cached, mem_active, mem_inactive, mem_swap_total, mem_swap_free, mem_dirty |
| Load Average | loadavg_1min, loadavg_5min, loadavg_15min |
| Network (interface separated) | received_bytes, received_errs, received_drop, received_packets, transmitted_bytes, transmitted_errs, transmitted_drop, transmitted_packets |
To build, you need go 1.14+ installed in your system. The build process can be done with running go build -v on cmd
directory.
TODO
NiW can be configured with env variables. For this purpose, you can use this table to configure NiW.
| Variable | Description | Allowed Values | Default Value |
|---|---|---|---|
NIW_LOG_LEVEL |
Level of log verbosity | panic, fatal, error, warn, info, debug, trace |
info |
NIW_INGROW_PROJECT |
UID of project (required) | ||
NIW_INGROW_STREAM |
The Stream name (required) | ||
NIW_INGROW_APIKEY |
API key of the project (required) | ||
NIW_INGROW_URL |
API endpoint URL of Ingrow system (required) | ||
NIW_MAIN_INTERVAL |
Intervals of collecting and sending events | [number][unit:s,m,h] (s: seconds, m: minutes, h: hours) | 30s |
NIW_MAIN_PLUGINS |
List of plugins which must be used to collect data (comma separated) | os, cpu, disk, uptime, memory, loadavg, network |
os,cpu,disk,uptime,memory,loadavg,network |
NIW_LINUX_PATH_CPU |
Path of cpu stats proc file (see Note 1) | /proc/stat |
|
NIW_LINUX_PATH_MEMORY |
Path of memory stats proc file (see Note 1) | /proc/meminfo |
|
NIW_LINUX_PATH_NETWORK |
Path of network stats proc file (see Note 1) | /proc/net/dev |
|
NIW_LINUX_PATH_UPTIME |
Path of uptime stats proc file (see Note 1) | /proc/uptime |
|
NIW_LINUX_PATH_DISK |
Path of disk stats proc file (see Note 1) | /proc/diskstats |
|
NIW_LINUX_PATH_LOADAVG |
Path of load average stats proc file (see Note 1) | /proc/loadavg |
Note 1: See proc.txt for a guide of finding paths and interpretations about values.
A file named config.yaml, located on one of /etc/niw, $HOME/.config/niw and current directory (pwd) can be used to set
configurations. A configuration file has these contents:
log:
level: info
main:
interval: 30s
plugins:
- cpu
- disk
- loadavg
- memory
- network
- os
- uptime
linux:
path:
cpu: /proc/stat
loadavg: /proc/loadavg
disk: /proc/diskstats
memory: /proc/meminfo
network: /proc/net/dev
uptime: /proc/uptime
ingrow:
project:
stream:
apikey:
url: