Observability of Trilio with Prometheus and Grafana

Learn how to consume and visualize performance metrics from the Trilio Metrics Exporter for Prometheus.

About the Trilio Metrics Exporter for Prometheus

The Trilio Metrics Exporter is installed as a component of Trilio for Kubernetes. It exports Trilio performance metrics in the Prometheus format, which your existing Prometheus monitoring can consume. The exporter is based on the official Prometheus client library.

For details on the Prometheus formatted metrics provided by the Trilio Metrics Exporter, check the Exported Prometheus Metrics page.

In this How-to, we'll show you how to use your existing Prometheus installation to consume performance metrics from the Trilio Metrics Exporter.

In order to leverage the OpenShift built-in Prometheus instance hosted in the openshift-monitoring namespace, extra permissions will be required for the service account (openshift-monitoring:prometheus-k8s) to pull metrics from the openshift-operators namespace, where Trilio is deployed.

Consuming Metrics - Inside the Cluster

There are two methods to scrape the metrics from Trilio Exporter:

Using Annotations

Prometheus can discover any metric in the cluster exporter using the standard annotation set on the exporter pod.

The annotations are described below:

  • prometheus.io/scrape: The default configuration will scrape all pods; if this annotation is set to false, it will exclude a pod from the scraping process.

  • prometheus.io/path: If the metrics path is not /metrics, define it with this annotation.

  • prometheus.io/port: Scrape the pod on the indicated port instead of its declared ports. Here, it is 8080.

Using Scrape Job

You will need to configure a Prometheus server to scrape the metrics from your newly running exporter. Add the following scrape job to your prometheus.yml configuration file.

  - job_name: trilio_exporter
    scrape_interval: 30s
    file_sd_configs:
    static_configs:
      - targets: ['EXPORTER_ADDRESS:8080']

EXPORTER_ADDRESS is the IP of the Prometheus exporter pod, which can be found by running the following

#kubectl get pod -o wide |grep -i export
k8s-triliovault-exporter-787c7dd446-bcgkr            1/1   Running   0     6d4h  192.168.140.126  slave2  <none>      <none>

Using ServiceMonitor

  • To enable ServiceMonitor

   apiVersion: triliovault.trilio.io/v1
   kind: TrilioVaultManager
   metadata:
     labels:
       triliovault: k8s
     name: sample-triliovaultmanager
   spec:
     helmValues:
       urlPath: "/"
     applicationScope: Cluster
     tvkInstanceName: "tvk"
     componentConfiguration:
        exporter:
          serviceMonitor:
            enabled: true

Once the configuration is completed. You can find k8s-triliovault-exporter active targets in Prometheus UI.

Please wait a couple of minutes for Prometheus to start scraping metrics. Access Prometheus console at http://<prometheus-server-ip>/graph

Trilio Prometheus Metrics

If you leverage the Prometheus Operator stack, configure the ServiceMonitor the same way as the above configurations.

Consuming Metrics - Outside the cluster

To expose T4K metrics outside the cluster, perform the following two steps.

  1. Expose Trilio Exporter: Trilio metrics can be exposed outside the cluster via a LoadBalancer Service. Leverage kubectl to create a service for k8s-triliovault-exporter

kubectl expose deployment k8s-triliovault-exporter --type=LoadBalancer --name=exporter --namespace triliovault-integration

OR you can create a LoadBalancer Service using a .yaml file

kind: Service
apiVersion: v1
metadata:
  name: k8s-triliovault-exporter
  labels:
    app: k8s-triliovault-exporter
spec:
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
  selector:
    app: k8s-triliovault-exporter
  type: LoadBalancer

Once the Service is available, capture the Public IP for k8s-triliovault-exporter-service, this will be used in the second step.

  1. Scrape Job: You will need to configure a Prometheus server to scrape the metrics from your newly running exporter. Add the following scrape job to your prometheus.yml configuration file.

      - job_name: trilio_exporter
        scrape_interval: 30s
        file_sd_configs:
        static_configs:
          - targets: ['EXPORTER_PUBLIC_IP:8080']

Visualizing Metrics with Grafana

Metrics from Prometheus can be visualized leveraging Grafana. Dashboards can be created in Grafana with the Trilio metrics exposed through Prometheus.

Trilio Grafana Dashboards

Trilio provides pre-created Grafana dashboards to make monitoring and observing your backup landscape accessible.

Grafana dashboards are pivoted on the following themes and provide a high-level overview, summary, and details around each theme.

  1. Backups

  2. Restores

  3. Targets

  4. BackupPlans/Application

Import Grafana Dashboards

T4K dashboards can be found on the Grafana within the Trilio org page.

  1. The dashboards can be imported into a Grafana instance following instructions from the Grafana project page.

  2. Instructions for downloading and importing are provided with the dashboards.

Grafana Dashboard Example

Last updated

Was this helpful?