Reporting, Monitoring and Logging
- Table of Contents
- How does GreenArrow software provide monitoring and observability into the email delivery processes?
- Are there built-in logging, tracing, or debugging features for troubleshooting?
- What processes are available to monitor the health and performance of the sending queues?
- Does GreenArrow offer detailed/configurable logging with different output formats (JSON, Text)?
- Is Prometheus supported?
How does GreenArrow software provide monitoring and observability into the email delivery processes?
GreenArrow has several reports that expose the delivery metrics you would need to monitor your delivery process.
GreenArrow’s hvmail_report command line tool allows you
to query the recent delivery reports on a given instance of GreenArrow.
The Event Notification System will also provide a significant amount of data about each delivery attempt, which can be logged to a centralized data store and then analyzed from there for any reporting/monitoring you need:
Both our Engine UI and our Engine API offer visibility into queues. There are also command line tools available.
These metrics (exported to Prometheus and/or statsd), in particular, are helpful for monitoring acceptance of emails by Mailbox Providers:
Are there built-in logging, tracing, or debugging features for troubleshooting?
There are a number of configuration directives that can be utilized here:
- log_smtp_connections, for information about connections being opened and closed
- log_smtp_commands, to see the full SMTP dialog between your server and the destination server
- log_smtp_hexdump, to see the raw bytes transmitted during the SMTP dialog
-
log_header, allows specification of arbitrary headers to include in
delivery_attemptevents from the Event Notification System - log_smtp_timings, which can be helpful in diagnosing things like tarpitting from a mailbox provider.
In addition to the above configuration directives, GreenArrow also has:
- The Remote Delivery Status Log, which shows how many delivery attempts are currently in each phase of processing, which can help debug performance issues (for example, this will show if a slow recursive DNS server is slowing things down).
- The Remote Connection Report, which shows all open connections to aid in troubleshooting.
What processes are available to monitor the health and performance of the sending queues?
First and foremost is the greenarrow_status command with a number
of options that provide health information not only about the queues, but also other critical GreenArrow
services and functions.
Additionally, we offer:
- statsd counters and gauges
- The Remote Delivery Status Log
- The following built-in commands:
- The GreenArrow Status command
- The Remote Connections command
- The Disk Queue Messages command
- The hvmail_report command
The above is just a subset of our reporting capabilities
Does GreenArrow offer detailed/configurable logging with different output formats (JSON, Text)?
GreenArrow is quite flexible here.
Our Event Notification System offers options for recording many different kinds of events, in many formats, to many different destination types.
One of those destination types is a local logfile, and there are quite a number of configuration directives that can be used to manage these logfiles just how you wish.
Is Prometheus supported?
GreenArrow supports exporting a large number of metrics to Prometheus and statsd, providing observability for both deliverability and Site Reliability Engineering.
The metrics are listed here.
