# promstatsd¶

Cyrus Prometheus statistics collating daemon

## Synopsis¶

promstatsd [ -C config-file ] [ -v ] [ -f frequency ] [ -d ]

promstatsd [ -C config-file ] [ -v ] -c

promstatsd [ -C config-file ] [ -v ] -1


## Description¶

promstatsd is the Cyrus Prometheus statistics collating daemon.

When the prometheus_enabled imapd.conf(5) setting is true, various Cyrus service processes will count statistics as they run. promstatsd collates these statistics into a text-based report that Prometheus can ingest.

The report produced by promstatsd is served by httpd(8) at the "/metrics" URL, if "prometheus" has been set in httpmodules in imapd.conf(5).

promstatsd reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.

In the first synopsis, promstatsd will run as a daemon, updating the report at the specified frequency. If the optional -f frequency argument is not provided, the prometheus_update_freq from imapd.conf(5) will be used, which defaults to 10 seconds. This invocation should be run from the DAEMON section of cyrus.conf(5) (see Examples below).

In the second synopsis, promstatsd will clean up all statistics files and exit. The statistics Cyrus maintains are only valid while Cyrus is running, so this invocation must be run from the START section of cyrus.conf(5) (see Examples below) to clean up after the previous run, before new service processes are started.

In the third synopsis, promstatsd will immediately update the report once, and then exit. This can be safely used while another promstatsd process runs in daemon form. It is useful if you need to update the report now for some reason, rather than waiting for the daemon's next update.

## Options¶

-C config-file

Use the specified configuration file config-file rather than the default imapd.conf(5).

-D

Run the external debugger specified in the debug_command imapd.conf(5) option.

-1

Update the report once and exit.

-c

Clean up the stats directory and exit.

-d

Debug mode -- promstatsd will not background itself, for aid in debugging.

-f frequency

Update the report every frequency seconds. If not specified, the prometheus_update_freq from imapd.conf(5) will be used, which defaults to 10 seconds.

-v

Increase verbosity. Can be specified multiple times.

## Examples¶

To regularly produce a report that Prometheus can consume, promstatsd must be run from the DAEMON section of cyrus.conf(5) as per the first synopsis, like so:

DAEMON {
promstatsd    cmd="promstatsd"
}


To ensure a clean statistical state at startup, promstatsd must be run from the START section of cyrus.conf(5) as per the second synopsis, like so:

START {
statscleanup  cmd="promstatsd -c"
}