SLANT(1) General Commands Manual SLANT(1)

slant
client for remote system monitoring

slant [-f config] [-o order] [url...]

The slant utility displays system statistics gathered from resources listed in ~/.slantrc. These resource must be running slant-cgi(8). Its arguments are as follows:
config
Specify an alternate configuration location.
order
Default order of host listing. May be cmdline for natural order, host for hostname, cpu for immediate CPU, or mem for immediate memory.
url
Override the configuration's hosts with those provided. See URLs for details.

By default, hosts are ordered as given in the configuration and are queried every 60 seconds. If hosts are passed as arguments to slant, they are used instead of the configuration file's.

If not overridden in the configuration, host status is displayed as if given the following configuration:

layout {
  header ;
  errlog 10 ;
  host {
    cpu qmin_bars qmin hour ;
    mem qmin_bars qmin hour ;
    nprocs qmin_bars qmin hour ;
    net qmin hour ;
    disc qmin hour ;
    link ip state access ;
    rprocs qmin ;
    host record ;
  } ;
} ;

slant needs a minimum of about 90 columns to display data, plus more depending upon the length of the domain names. If the window isn't wide enough, the following are elided until the minimum size is reached:

  1. bar charts
  2. hourly records
  3. link IP and state

Data is not recorded to the local machine: it is “live”. So if the front-end is shut down and restarted with hosts that are unresponsive, their data will not be refreshed til the next access.

An error and debug log is shown below the table of all hosts. The log is saved to ~/.slant-errlog.

The configuration file, which defaults to ~/.slantrc, is structured with the following top-level nodes. All tokens are white-space separated, so “servers foo;” species a server named “foo;”. Literals are case sensitive.
"waittime" NUM ";"
"timeout" NUM ";"

The global waittime before each host is processed. The countdown for each host begins after its last disconnect. The minimum is 15 secons. Also the global timeout after which data transfers are terminated (following the last byte transferred). The minimum is 10 seconds.

"servers" url [url...] ["{"
  ["waittime" NUM ";" ]
  ["timeout" NUM ";" ]
"}"] ";"

There may be several servers sections, each with different server arguments overriding the globals. See URLs for details on the url field.

"layout" "{"
  ["header" ";"]
  ["host" "{" [column]+ "}" ";"
  ["errlog" NUM ";"]
"}" ";"

The layout block configures how host are displayed. If header is specified, a column header is shown at the top of the screen. If errlog is non-zero, it is the rows in the error/debug window. The host block consists of a series of column types and arguments. Each column may have up to six lines of content. If the column arguments do not have a line specification, they're assumed to be on the first line. In the event of duplicate lines, only the last is retained. A column for a host ends in a semicolon or the close-brace for the host layout block.

"host" "{"
 [ coltype
   [ "line1" "{" colargs "}" |
     "line2" "{" colargs "}" |
     "line3" "{" colargs "}" |
     "line4" "{" colargs "}" |
     "line5" "{" colargs "}" |
     "line6" "{" colargs "}" |
     colargs
   ] ";" ]+
"}" ";"]

The column types and arguments are as follows:

"cpu" [time_interval_bars|time_interval]+
"mem" [time_interval_bars|time_interval]+
"net" [time_interval]+
"disc" [time_interval]+
"link" ["ip"|"state"|"access"]+
"host" ["record"|"slant_version"|"uptime"|"clock_drift"|uname]+
"nprocs" [time_interval_bars|time_interval]+
"rprocs" [time_interval_bars|time_interval]+
"nfiles" [time_interval_bars|time_interval]+

The time_interval_bars fields draw coloured bar graph when specifying qmin_bars, for the quarter-minute summary; min_bars, the minute summary; hour_bars, the hourly summary; day_bars, the daily summary; week_bars, the weekly summary; and year_bars, the yearly summary. The time_interval writes a percentage when specifying qmin, for the quarter-minute summary; min, for the minute summary; hour, for the hourly summary; day, for the daily summary; week, for the weekly summary; or year, for the yearly summary. These summaries depend upon the category.

The uname fields may be machine, for host hardware; osversion, for OS-specific version; osrelease, for OS-specific release; and osname, for operating system name.

CPU time averaged across all cores/CPUs on the system. Summaries are shown as percentages. Percentages more than 80% are coloured red; more than 50%, yellow. The bar graph of the instantaneous view coloured in the same way.
Memory usage (all active memory over all pages). Summaries are shown as percentage. Percentages more than 80% are coloured red; more than 50%, yellow. The bar graph of the instantaneous view coloured in the same way.
Data received and transmitted as averaged over all network devices. Summaries are in human-readable scaled units (e.g., KB/s).
Data read and written as averaged over all configured devices. This is shown as an average over two intervals: in the last 15 Summaries are in human-readable scaled units (e.g., KB/s).
If requesting ip, the IP address (IPV4 or IPV6) of the host and the connection state. If state, may be one of strt, startup; rslv, resolving; idle, waiting for next connection; cnrd, ready to connect; cnct, connecting; cldn, connection finished (success); cler, connection finished (error); wrte, writing request; or read, reading response. Lastly, access is the time since last ping. Shown as hours, minutes, seconds elapsed. If a worrying amount of elapsed time has shown, the time will be shown in yellow. If the amount indicates problems, it will be shown in red.
If record, the last data collection time as recorded by the remote host's collection system. Shown as hours, minutes, seconds elapsed. If a worrying amount of elapsed time has shown, the time will be shown in yellow. If the amount indicates problems, it will be shown in red. The last connection time as recorded by the local host's Shown as hours, minutes, seconds elapsed. If a worrying amount of elapsed time has shown, the time will be shown in yellow. If the amount indicates problems, it will be shown in red. The slant_version, column argument prints the collector version. Lastly, uptime prints the uptime in days, hours, and minutes.
The number of running processes over the maximum configured amount. Summaries are in percentages. Percentages more than 80% are coloured red; more than 50%, yellow. The bar graph of the instantaneous view is coloured in the same way.
Of the commands given to the collector for monitoring, the percentage that are running. Summaries are in percentages. If no commands were given, is always 100%. If less than 100%, shown in red.
The number of open files over the maximum possible amount. Summaries are in percentages. Percentages more than 80% are coloured red; more than 50%, yellow. The bar graph of the instantaneous view is coloured in the same way.

The hostname (domain name) is always shown first.

The URLs passed on the command line or in the configuration file are in the following format:
[https://|http://][username:password@]host[:port][/path][?query]

If the schema is not provided, HTTP is used regardless of the port (if given). The username and password should only be used with HTTPS, but this is not mandated.

To query the localhost and a remote machine:
% slant -o host

With the following configuration file:

waittime 60 ;
servers
  https://remote/slant-cgi
  ;
servers
  localhost/cgi-bin/slant-cgi
  { waittime 15 } ;

This establishes a default wait time of 60 seconds. This value is used by the remote host. The local host has its wait time overriden at 15 seconds. It uses the default node display.

The following is optimised for a quick look at memory and CPU usage of many hosts, so the error log and header are suppressed.

waittime 60 ;
servers
  https://remote1/slant-cgi
  https://remote2/slant-cgi
  https://remote3/slant-cgi
  ;
servers
  localhost/cgi-bin/slant-cgi
  { waittime 15 } ;
layout {
  host {
    cpu qmin_bars qmin min hour day ;
    mem qmin_bars qmin min hour day ;
    link access ;
  }
} ;

A more vertical layout for the same is as follows. This stacks information using the multi-line features.

layout {
  host {
    cpu
      line1 { qmin_bars qmin }
      line2 { min_bars min }
      line3 { hour_bars hour }
      line4 { day_bars day }
      line5 { week_bars week }
      line6 { year_bars year } ;
    mem
      line1 { qmin_bars qmin }
      line2 { min_bars min }
      line3 { hour_bars hour }
      line4 { day_bars day }
      line5 { week_bars week }
      line6 { year_bars year } ;
    link
      line1 { access state }
      line2 { ip } ;
  }
} ;

slant-collectd(8)
May 13, 2019 OpenBSD 6.5