Prometheus-scrape-target-k8s-operator - usage

Usage

Installation

Since this Charmed Operator is an auxiliary charm for Prometheus, you need to deploy both charms and relate them.

juju deploy prometheus-k8s
juju deploy prometheus-scrape-target-k8s
juju relate prometheus-k8s prometheus-scrape-target-k8s

Once both charms are deployed and related you can check this situation by running:

juju status --relations --color
Model  Controller  Cloud/Region        Version  SLA          Timestamp
cos    charm-dev   microk8s/localhost  2.9.32   unsupported  12:07:32-03:00

App                           Version  Status  Scale  Charm                         Channel  Rev  Address         Exposed  Message
prometheus-k8s                2.33.5   active      1  prometheus-k8s                edge      55  10.152.183.199  no       
prometheus-scrape-target-k8s           active      1  prometheus-scrape-target-k8s  edge      19  10.152.183.207  no       

Unit                             Workload  Agent  Address      Ports  Message
prometheus-k8s/0*                active    idle   10.1.157.94         
prometheus-scrape-target-k8s/0*  active    idle   10.1.157.98         

Relation provider                              Requirer                         Interface          Type     Message
prometheus-k8s:prometheus-peers                prometheus-k8s:prometheus-peers  prometheus_peers   peer     
prometheus-scrape-target-k8s:metrics-endpoint  prometheus-k8s:metrics-endpoint  prometheus_scrape  regular 

Adding targets and labels

Now it is time to add a new scrape target to Prometheus that is outside any Juju model by running:

juju config prometheus-scrape-target-k8s targets=192.168.5.2:7000

After running this command you can verify that the new target is added to Prometheus by running:

juju ssh --container prometheus prometheus-k8s/0 \                                                                   
cat /etc/prometheus/prometheus.yml | grep -B1 -A3  "external_jobs
- honor_labels: true
  job_name: juju_cos_bf6a531_prometheus-scrape-target-k8s_external_jobs
  static_configs:
  - targets:
    - 192.168.5.2:7000

But this new target is not labeled, to add labels to it:

juju config prometheus-scrape-target-k8s labels=label1:LABEL1,label2:LABEL2

You can verify that the new labels are added to Prometheus by running:

juju ssh --container prometheus prometheus-k8s/0 \                                                                   
cat /etc/prometheus/prometheus.yml | grep -B1 -A6  "external_jobs
- honor_labels: true
  job_name: juju_cos_bf6a531_prometheus-scrape-target-k8s_external_jobs
  static_configs:
  - labels:
      label1: LABEL1
      label2: LABEL2
    targets:
    - 192.168.5.2:7000

Removing targets and labels

To remove the targets and labels added we need to run:

juju config prometheus-scrape-target-k8s labels=""
juju config prometheus-scrape-target-k8s targets=""

And now we can check this target is no longer in Prometheus config by running again:

juju ssh --container prometheus prometheus-k8s/0 \                                                                   
cat /etc/prometheus/prometheus.yml | grep -B1 -A6  "external_jobs

After removing targets and labels Prometheus scrape target charm ends in a blocked status waiting for adding new targets.