mon_filters(1)mon_filters(1)Namemon_filters - Filters for Monitor data
Syntax
mon_cpu [ options ] < input-data
mon_disk < input-data
mon_loadave < input-data
mon_memory < input-data
mon_netif < input-data
mon_queue < input-data
mon_times < input-data
mon_uptime [ -verbose ] < input-data
mon_users [ options ] < input-data
Description
These commands read monitor data and print simple summary reports.
Each one reads from standard input and writes to standard output. The
programs mon_cpu, mon_uptime and mon_users support command line options
that are described later. The programs mon_cpu, mon_memory and
mon_netif print a common header of the hostname, session start time and
session ending time.
The program mon_cpu summarizes CPU data records. For each CPU it
counts the amount of time spent in each CPU state. Once all the data
has been read it prints a summary for prime time, non-prime time and
the over-all usage. The default for prime time is from 7:00 a.m. to
5:00 p.m. Non-prime time are those hours outside prime time. The
upper and lower bound for prime time can be set from the command line.
The program mon_disk summarizes the transfer information in the DISK
data records. For each disk it counts the number of transfers, number
of kilobytes transfered. From this it calculates the percentage of
transfers and amount of data tranfered by each disk. It also calcu‐
lates the average transfer size. When complete it prints the total
number of transfers, amount of data transfered and overall average
transfer size.
The program mon_loadave finds the minimum and maximum load average of
all the load average data in the input file. It also calculates the
arithmetic mean of the load averages. It prints each of these for the
1, 5 and 15 minute periods for which the load averages are collected.
The program mon_memory finds the minimum, maximum and arithmetic mean
of each of the memory types in the collected data. The results are
printed as percentages of physical memory. In the case of the virtual
memory statistics, this will often give percentages greater than 100%.
For each network interface in the input data mon_netif finds the maxi‐
mum and arithmetic mean of the input and output packets, error packets
and number of collisions per second. It doesn't find the minimum for
these because I found that it tended to always be zero.
The program mon_queue calculates the average disk queue length for each
disk found in the data file. Only the disks with a non-zero average
are printed.
The program mon_times prints the boot and Monitor start time for each
FIRST record, and ending time for each LAST record found in the input.
The program mon_uptime attempts to determine the amount of uptime of
the system on which the data was collected. It calculates the uptime
for each session as the difference between the available time and the
amount of time monitor collected data. For the first session the
available time is the difference in the timestamp of the first record
and last record collected. For the other sessions it's the difference
in the boot time and last sample time.
The program mon_users examines all the user records and finds the
arithmetic mean. The options -hour and -day allow the data to be sum‐
marized on an hourly or daily basis. This data is written, one value
per line, to the specified output file.
Options-help The commands mon_cpu and mon_users support a help option
that prints a command summary.
These options are specific to the program mon_cpu.
-begin_prime number
Sets the beginning hour of Prime time.
-end_prime number
Sets the ending hour of Prime time.
-adjust_prime number
Changes both by the specified number of hours.
-start_prime number
Synonym for -begin_prime.
-low_prime number
Synonym for -begin_prime.
These options are specific to the program mon_users.
-hour file This option produces an hourly average of the number of
users and writes the results to the specified file.
-day file This option produces a daily average of the number of users
and writes the results to the specified file.
-mode {a | w}
This option applies to the -hour and -day options. If a is
given then then output is appended to the files. If w is
used then the file is overwritten. The default is to over‐
write.
All the options may be abbreviated.
Restrictions
None of the program may gracefully deal with data files which don't
contain data in which they are interested. They may also not grace‐
fully deal with data collected from multiple systems.
The program mon_uptime can be easily confused by timestamps that don't
progress in the normal fashion; it assumes sample N occurs before sam‐
ple N + 1. Or more importantly that session N occurs before session N
+ 1.
Most the programs attempt to remain optimistic in the face of command
line option errors and will print messages as warning, but still wait
for input. This gives the appearance of the command hanging.
Examples
The Monitor distribution includes two sample data files. One is a sin‐
gle session and the other consists of two sessions collect to the same
data file. The data was collected on a DEC 7000 running OSF/1 V1.1.
The filters were run on a DEC 3000 Model 500 also running OSF/1 V1.1.
In the examples below the file monitor.dat will be used.
robinton % mon_cpu < monitor.dat
This report is for desdra.cxo.dec.com.
This session started on Mon Jul 12 14:58:19 1993.
This session ended on Mon Jul 12 22:53:21 1993.
CPUs
Prime time.
CPU #1: 9.60% user, 20.61% system, 69.79% idle
Non-prime time.
CPU #1: 8.47% user, 18.38% system, 73.15% idle
All times.
CPU #1: 8.90% user, 19.23% system, 71.86% idle
For the remaining examples the "session started" and "session ended"
part of the report will be removed.
robinton % mon_loadave < monitor.dat
Load Averages
Minimum Average Maximum
1 minute 0.01 0.68 2.71
5 minutes 0.05 0.63 1.25
15 minutes 0.02 0.63 1.04
robinton % mon_memory < monitor.dat
Memory type Minimium Average Maximium
Free memory 67.49% 68.32% 71.30%
Active Virtual Memory 17.20% 18.91% 19.62%
Inactive virtual memory 0.00% 0.00% 0.00%
Wired Memory 7.84% 9.15% 9.28%
For this example the listing for only one network interface, the DEMNA
is included.
robinton % mon_netif < monitor.dat
Summary for xna0 Maximium Average.
I/O rate: 8.70 1.82 packets/sec.
Error rate: 0.00 0.00 errors/sec.
Collision rate: 0.01 -0.00 collisions/sec.
The mon_uptime report doesn't print the usual header of hostname and
time span.
robinton % mon_uptime < monitor.dat
Total uptime for desdra.cxo.dec.com is 100.00%.
This is 7:55:02 of 7:55:02.
In this example an hourly list of the number of users is being written
to hour.lis in addition to the short report to standard out.
robinton % mon_users -hour hour.lis < data
For the data collected there were an average of 1.01 users.
Diagnostics
In general the error messages of the filters follow the same pattern as
for Monitor itself. Most of the messages will be preceded by the pro‐
gram name and module name from where the error occurred. For example:
robinton % mon_cpu -fubar
mon_cpu: cpu_parse.c: This is an unrecognized option: -fubar.
%s is ambiguous.
Nearly all the programs will accept abbreviations of command line
options. When an option is presented to a program that is ambiguous,
this message is printed with the %s replaced by the option used. Some
programs may print a list of matching options.
This is an unrecognized option: %s.
When an unrecognized or unsupported option is presented to a program
this message is printed with the %s replaced by the option used.
This option need another argument: %s.
Some of the options require an additional argument. If one isn't
present this message is printed with %s replaced by the option. Exam‐
ples of this are -hour -adjust_prime.
Version number mismatch. Expected: %d.%d, Data: %d.%d.
As part of the utility functions, all the programs check the input data
to see if the expected version of monitor data is present. The %d's
are replaced by the expected data version and the one found.
Can't read record header: %s.
If the utility functions can't read a record header this message is
printed. The %s is replaced by a system error message that hopefully
describes the problem.
Can't read rest of record: %s.
If the utility functions encounter an error trying to read the rest of
the record after the header this message is printed. The %s is
replaced by a system error message that hopefully describes the prob‐
lem.
The End of File was reached before expected.
If the utility functions encounter EOF trying to read the rest of the
record after the header this message is printed.
See Alsomonitor(1), monitor(5), mon_tools(1)mon_filters(1)