Monitoring with Prometheus

Prometheus is an open-source project that is used for monitoring application state. See https://prometheus.io/ for detailed information on Prometheus and how to use it.

Standard correlator status

Apama exposes many internal correlator statistics as Prometheus metrics over HTTP on the /metrics endpoint. For the full list of built-in metric names, see List of correlator status statistics.

A sample demonstrating basic Prometheus usage, such as what metrics are exposed and how to define new metrics, can be found in the samples/prometheus/basic directory of your Apama installation.

User-defined status

In addition, any user-defined status can be exposed over Prometheus, provided the status name is acceptable and the value is lexically equivalent to a number. All user-defined status names first go through a simple escaping scheme where each comma (,), period (.) and hyphen (-) character is replaced by an underscore (_), and then checked against the Prometheus metric name regex. If this passes, the name is considered acceptable.

User status metrics with names containing labels in the form {keyA=valueA,keyB=valueB} are converted to Prometheus metrics with those labels in the Prometheus labels. For example, if you have somename{key=value} as part of the user status name, this is converted to a Prometheus label on the metric somename.

Note:

Each user-defined status that is exposed as a metric is of the gauge type.

See also User-defined status reporting from connectivity plug-ins.

Prometheus metadata metrics

The following Prometheus metrics use Prometheus labels attached to the metric to provide additional information:

  • sag_apama_correlator_licensedata

    This metric always returns a value of zero, but its labels give information about the status of the current license.

  • sag_apama_correlator_metadata

    This metric always returns a value of zero, but its labels give information about the current configuration.