How it works
AAGM already ships a Prometheus and its Push-Gateway. https://apiida.atlassian.net/wiki/spaces/AAGM/pages/7760183321/Installation#Install-using-Docker-Compose
Once set up successfully, everything should connect automatically and start collecting metrics from APIs registered in AAGM.
Here is a diagram of how the individual components work together.
Prometheus Configuration
This configuration is already integrated in the supplied Prometheus.
https://prometheus.io/docs/prometheus/latest/configuration/configuration/
Prometheus automatically pulls the metrics of all its targets every few seconds.
global: scrape_interval: 15s external_labels: monitor: 'codelab-monitor' scrape_configs: - job_name: 'prometheus' static_configs: - targets: [ 'host.docker.internal:9090' ] - job_name: 'aagmdb' static_configs: - targets: [ 'host.docker.internal:9104' ] - job_name: 'prometheus-pushgateway' scrape_interval: 1s honor_labels: true static_configs: - targets: [ 'host.docker.internal:9091' ]
Using an external Prometheus
The url of Prometheus and the Prometheus Pushgateway must be stored in the configuration of AAGM under general settings.
Prometheus must receive the push gateway as target as in line 16 above. Optionally, the database of AAGM can also be added. https://grafana.com/oss/prometheus/exporters/mysql-exporter/
View metrics directly in Prometheus
Here are a few examples of how to retrieve metrics directly in Prometheus.
Nodes:
cpuLoadPercentage{name="Docker GW 1"}
memoryLoadPercentage{hostPort="host.docker.internal:8444"}
cpuLoadPercentage
APIs:
allRequestsCount{name="APIIDA Metrics API"}
allRequestsCount{job="Docker GW 1 APIIDA Metrics API"}
allRequestsCount{nodeID="2"}
More filters can be added in the PrometheusPushGateway class. All possible filters can also be viewed there or directly on the PushGateway.
Useful
Grafan user: admin pass: admin
Links
https://github.com/prometheus/pushgateway
https://packagist.org/packages/promphp/prometheus_push_gateway_php