SNMP & Prometheus Metrics

Reporting & Monitoring

SNMP Parameters

Axigen exposes a number of SNMP parameters, monitored by the reporting service, through a dedicated MIB file.

Prometheus Exporter

Starting with X3 Update 2 (10.3.2), Axigen also includes a dedicated HTTP endpoint used for exporting data in Prometheus format.

Provided that the Reporting service is up and running, the Prometheus endpoint is available at https://<your-webadmin-url>/metrics. It requires basic HTTP authentication using a reporting enabled admin account.

Metrics

The metrics exposed by Axigen are available both as SNMP values and as Prometheus metrics. Some are global (server-wide), some are per service or grouped in other fashion (i.e. per domain, per filter, etc).

Global / Server-wide Counters

Prometheus metric

SNMP

Type

Description

queue_size

itemsCount

Gauge

Number of messages in the server queue

load_average

loadAverage1

Gauge

1 minute system Load Average

uptime

N/A

Counter

System uptime in seconds

users_count

N/A

Gauge

Total number of accounts

Note: the users_count metric has multiple instances, one without label (total number of accounts in the server) and the other having the label domain=<domainname>, providing the number of accounts each domain on the server.

Filter Metrics

The measurement unit for all the filter specific metrics is message. Each metric counts messages for per outcome (e.g. total messages through the filter, total messages without error through the filter, etc).

For SNMP, the OID provided in the table below is relative to Axigen’s OID (1.3.6.1.4.1.29463). Filter metrics are found in the .2 relative OID. Since each filter is represented by an index in the MIB, 1.3.6.1.4.1.29463.2.N. The .1 and .2 entries represent the Axigen internal filter index and the filter’s name.

For Prometheus, a label is added to each metric with the filter name (filter_name=<filter_name>); all filter metrics described below are labeled (i.e. there will be none without a label).

Prometheus metric

SNMP OID

Description

N/A

.2.N.1

Filter index (SNMP only)

N/A

.2.N.2

Filter name (SNMP only)

filter_total_messages

.2.N.3

Messages through the filter

filter_successful_messages

.2.N.4

Without error

filter_messages_match

.2.N.5

Triggering the filter

filter_errors

.2.N.6

Messages causing errors

filter_passes

.2.N.7

Messages checked and passed

filter_discards

.2.N.8

Messages checked and discarded

filter_spam

.2.N.9

Messages deemed spam

filter_virus

.2.N.10

Messages deemed virus

Service Metrics

The metrics for the services are further split into two categories: metrics that are available for all the services and metrics that are specific to some services. They will be listed separately

In Prometheus, service metrics (both all service and service specific) are labeled the with the service=<service_name> label.

In SNMP, service metrics are found under the OID 1.3.6.1.4.1.29463.1; in the tables below, the relative OID will be provided.

All Services

The table below lists the metrics available for all the services.

Prometheus metric

Prometheus “service” label

SNMP OID

connection_count

smtpin

.1.1.1.1

connection_count

smtpout

.1.1.2.1

connection_count

imap

.1.2.1

connection_count

pop

.1.3.1

connection_count

webmail

.1.4.1

connection_count

proxyimap

.1.5.1

connection_count

proxypop3

.1.6.1

connection_count

proxywebmail

.1.7.1

succeeded_authentications

smtpin

.1.1.1.2

succeeded_authentications

smtpin

.1.1.1.2

succeeded_authentications

imap

.1.2.4

succeeded_authentications

pop

.1.3.3

succeeded_authentications

webmail

.1.4.3

succeeded_authentications

proxyimap

.1.5.4

succeeded_authentications

proxypop3

.1.6.4

succeeded_authentications

proxywebmail

.1.7.4

failed_authentications

smtpin

.1.1.1.3

failed_authentications

imap

.1.2.3

failed_authentications

pop

.1.3.2

failed_authentications

webmail

.1.4.2

failed_authentications

proxyimap

.1.5.3

failed_authentications

proxypop3

.1.6.3

failed_authentications

proxywebmail

.1.7.3

In Prometheus, if the Enable Domain Collecting option is enabled, an additional instance of the succeeded_authentication metric with an extra label, domain=<domainname> exists to allow more granular filtering for all except the proxy services.

Service Specific

The below metrics are specific to each service and are listed as such.

In Prometheus, since the metric name itself includes the service name, there is no service label attached. However, for each metric, if the Enable Domain Collecting option is enabled, multiple instance exist; one without a label (counting totals per service) and one with a domain=<domainname> label which provides the count for a specific domain.

SMTPOUT

Prometheus metric

SNMP OID

smtpout_messages_sent

.1.1.2.5

smtpout_messages_rejected

.1.1.2.6

SMTPIN

Prometheus metric

SNMP OID

smtpin_messages_received

.1.1.1.5

smtpin_messages_rejected

.1.1.1.6

IMAP

Prometheus metric

SNMP OID

imap_connection_timeout

.1.2.2

imap_succeded_fetch

.1.2.5

imap_failed_fetch

.1.2.6

imap_timespend_fetch

.1.2.7

imap_totaldownload_fetch

.1.2.8

imap_succeded_search

.1.2.9

imap_failed_search

.1.2.10

imap_timespend_search

.1.2.11

imap_succeded_append

.1.2.12

imap_failed_append

.1.2.13

imap_timespend_append

.1.2.14

imap_totalupload_append

.1.2.15

POP3

Prometheus metric

SNMP OID

pop3_total_retreive

.1.3.4

pop3_total_dele

.1.3.5

WEBMAIL

Prometheus metric

SNMP OID

webmail_total_messages_read

.1.4.4

webmail_messages_submit

.1.4.5

Storage Metrics

This category of metrics relates to sizes in the server storage and are used to monitor the storage usage. There are three types of Axigen storage files:

  • domain

  • object

  • messages

They will be described separately below.

For Prometheus, all metrics include a domain=<domainname> label, and a type<domain|object|message> label to identify the storage type the metric refers to.

The storage_path, max_file_count, and max_file_size are actually Axigen configuration parameters and are provided in order to assist with decorating the reports.

Domain Storage

Prometheus metric

Prometheus “type” label

OID

storage_path

“domain”

.3.1.5.1.1

max_file_count

“domain”

.3.1.5.1.2

max_file_size

“domain”

.3.1.5.1.3

disk_size

“domain”

.3.1.5.1.4

used_size

“domain”

.3.1.5.1.5

Object Storage

Prometheus metric

Prometheus “type” label

OID

storage_path

“object”

.3.1.5.2.1

max_file_count

“object”

.3.1.5.2.2

max_file_size

“object”

.3.1.5.2.3

disk_size

“object”

.3.1.5.2.4

used_size

“object”

.3.1.5.2.5

Message Storage

While, for each domain, a single domain and object storage instance exists, multiple message storages are allowed, thus an index=<storage-index> label is added tot he prometheus metrics.

For SNMP, an element of the OID (N in the table below) identifies the storage index

Prometheus metric

Prometheus “type” label

OID

N/A

N/A

.3.1.5.3.Y.1

storage_path

“message”

.3.1.5.3.Y.2

max_file_count

“message”

.3.1.5.3.Y.3

max_file_size

“message”

.3.1.5.3.Y.4

disk_size

“message”

.3.1.5.3.Y.5

used_size

“message”

.3.1.5.3.Y.6

The .3.1.5.3.Y.1 OID is the storage index, provided as label in Prometheus.

For more details about leveraging the Prometheus exported, here’s a more detailed tutorial on how to integrate Axigen with Prometheus and Grafana.