Comment on page
The Prometheus provider collects metrics from a Prometheus instance and makes them available to Akamas.
This provider includes support for several technologies (Prometheus exporters). In any case, custom queries can be defined to gather the desired metrics.
This section provides the minimum requirements that you should match before using the Prometheus provider.
Akamas supports Prometheus starting from version
Using also the
prometheus-operatorrequires Prometheus 0.47 or greater. This version is bundled with the
Connectivity between the Akamas server and the Prometheus server is also required. By default, Prometheus is run on port 9090.
The Prometheus provider includes queries for most of the monitoring use cases these exporters cover. If you need to specify custom queries or make use of exporters not currently supported you can specify them as described in creating Prometheus telemetry instances.
- Kubernetes (Pod, Container, Workload, Namespace)
- Web Application
- Java (java-ibm-j9vm-6, java-ibm-j9vm-8, java-eclipse-openj9-11, java-openjdk-8, java-openjdk-11, java-openjdk-17)
- Linux (Ubuntu-16.04, Rhel-7.6)
Akamas reasons in terms of a system to be optimized and in terms of parameters and metrics of components of that system. To understand which metrics collected from Prometheus should be mapped to a component, the Prometheus provider looks up some properties in the components of a system grouped under
prometheusproperty. These properties depend on the exporter and the component type.
Nested under this property you can also include any additional field your use case may require to filter the imported metrics further. These fields will be appended in queries to the list of label matches in the form
field_name=~'field_value', and can specify either exact values or patterns.
It is important that you add
instanceand, optionally, the
jobproperties to the components of a system so that the Prometheus provider can gather metrics from them:
# Specification for a component, whose metrics should be collected by the Prometheus Provider
name: jvm1 # name of the component
description: jvm1 for payment services # description of the component
instance: service0001 # instance of the component: where the component is located relative to Prometheus
job: jmx # job of the component: which prom exporter is gathering metrics from the component
The Prometheus provider does not usually require a specific configuration of the Prometheus instance it uses.
When gathering metrics for hosts it's usually convenient to set the value of the
instancelabel so that it matches the value of the
instanceproperty in a component; in this way, the Prometheus provider knows which system component each data point refers to.
Here’s an example configuration for Prometheus that sets the
# Custom global config
scrape_interval: 5s # Set the scrape interval to every 15 seconds. The default is every 1 minute.
evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:
# Node Exporter
- job_name: 'node'
- targets: ["localhost:9100"]
- source_labels: ["__address__"]