Prometheus Trait

The Prometheus trait configures a Prometheus-compatible endpoint. It also exposes the integration with a Service and a ServiceMonitor resources, so that the endpoint can be scraped automatically, when using the Prometheus operator.

The metrics exposed vary depending on the configured runtime. With Quarkus, the metrics are exposed using MicroProfile Metrics. While with the default runtime, they are exposed using the Prometheus JMX exporter.

The creation of the ServiceMonitor resource requires the Prometheus Operator custom resource definition to be installed. You can set service-monitor to false for the Prometheus trait to work without the Prometheus operator.

It’s disabled by default.

This trait is available in the following profiles: Kubernetes, Knative, OpenShift.

Configuration

Trait properties can be specified when running any integration with the CLI:

kamel run --trait prometheus.[key]=[value] --trait prometheus.[key2]=[value2] integration.groovy

The following configuration options are available:

Property Type Description

prometheus.enabled

bool

Can be used to enable or disable a trait. All traits share this common property.

prometheus.port

int

The Prometheus endpoint port (default 9779, or 8080 with Quarkus).

prometheus.service-monitor

bool

Whether a ServiceMonitor resource is created (default true).

prometheus.service-monitor-labels

[]string

The ServiceMonitor resource labels, applicable when service-monitor is true.

prometheus.configmap

string

To use a custom ConfigMap containing the Prometheus JMX exporter configuration (under the content ConfigMap key). When this property is left empty (default), Camel K generates a standard Prometheus configuration for the integration. It is not applicable when using Quarkus.