The "plt-service-monitor" package provides tools for tasks to register “heartbeat” activity to an AWS S3 bucket and for a periodic polling of heartbeats and HTTP sites.
The configuration of tasks, sites, and e-mail addresses to alert are stored in the S3 bucket in a "config.rktd" file. The plt-service-monitor/config module provides functions to adjusting the configuration.
If the region of s3-bucket is not supplied, it is determined through a query.
The plt-service-monitor/take-pulse module can be run from the command-line, in which case the S3 bucket name must be given as a command-line argument. In addition, --email-config can specify a file that contains a configuration hash table for sending e-mail alerts, and --no-email or --fail-email configure the e-mail alert mode.
The S3 bucket’s configuration file may specify e-mail addresses to receive the poll summary. If email-mode is 'always or it is 'failure and the health check fails, then e-mail is sent (although individual e-mail addresses can be configured to send mail only on failure). In that case, email-config configures the way that e-mail is sent through the following keys:
a string or #f (the default); if a string is provided then the SMTP protocol is used with the specified server, otherwise e-mail is sent through sendmail
an e-mail address for the sender; the default is the first e-mail address in the list of receivers
'connect (SMTP only) —
'plain, 'ssl, or 'tls
'user (SMTP only) —
a username string for authentication
'password (SMTP only) —
a password string for authentication
The hash table provided to set-task can have the following keys with the indicated contracts on the key values:
'period : exact-nonnegative-integer? —
the maximum number of seconds that should elapse between heartbeats for the task; the default is one day
The hash table provided to set-site can have the following keys with the indicated contracts on the key values:
'url : string? (required) —
the URL to poll
The hash table provided to set-email can have the following keys with the indicated contracts on the key values: