Prometheus metrics under Quay Enterprise

Quay Enterprise exports a Prometheus-compatible endpoint on each instance to allow for easy monitoring and alerting.

Exposing the prometheus endpoint

The Prometheus-compatible endpoint on the Quay Enterprise instance can be found at port 9092. Simply add -p 9092:9092 to the docker run command (or expose the port via the Pod configuration in Kubernetes).

Setting up Prometheus to consume metrics

Prometheus needs a way to access all Quay Enterprise instances running in a cluster. In the typical setup, this is done by listing all the Quay Enterprise instances in a single named DNS entry, which is then given to Prometheus.

DNS configuration under Kubernetes

A simple Kubernetes service can be configured to provide the DNS entry for Prometheus. Details on running Prometheus under Kubernetes can be found at Prometheus and Kubernetes and Monitoring Kubernetes with Prometheus.

DNS configuration for a manual cluster

SkyDNS is a simple solution for managing this DNS record when not using Kubernetes. SkyDNS can run atop an etcd cluster. Entries for each Quay Enterprise instance in the cluster can be added and removed in the etcd store. SkyDNS will regularly read them from there and update the list of Quay instances in the DNS record accordingly.