Integrate MLflow with the Canonical Observability Stack (COS)

This guide shows how to integrate MLflow with the Canonical Observability Stack (COS).

Prerequisites

This guide assumes:

  1. You have deployed the COS stack in the cos model. For steps on how to do this, see the MicroK8s tutorial.

  2. You have deployed the MLflow bundle in the kubeflow model. For steps on how to do this, see Get started with Charmed MLflow.

Deploy Grafana Agent

Deploy the Grafana Agent to your kubeflow model alongside the MLflow bundle. Run the following command:

juju deploy grafana-agent-k8s --channel=edge --trust

Relate MLflow Server Prometheus Metrics to Grafana Agent

Establish the relationship between the MLflow Server Prometheus metrics and the Grafana Agent. Use the following command:

juju add-relation mlflow-server:metrics-endpoint grafana-agent-k8s:metrics-endpoint

Relate Grafana Agent to Prometheus in the COS Model

Next, relate the Grafana Agent to Prometheus in the cos model. Execute the following command:

juju add-relation grafana-agent-k8s admin/cos.prometheus-receive-remote-write

Relate MLflow Server in the Kubeflow Model to Grafana Charm in the COS Model

Establish the relationship between the MLflow Server in the kubeflow model and the Grafana charm in the cos model. Run the following command:

juju add-relation mlflow-server admin/cos.grafana-dashboards

Obtain the Grafana Dashboard Admin Password

Switch the model to cos and retrieve the Grafana dashboard admin password. Execute the following commands:

juju switch cos
juju run-action grafana/0 get-admin-password --wait

Obtain the Grafana Dashboard URL

To access the Grafana dashboard, you need the URL. Run the following command to get the URLs for the COS endpoints:

juju show-unit catalogue/0 | grep url

You will see a list of endpoints similar to the following:

url: http://10.43.8.34:80/cos-catalogue
url: http://10.43.8.34/cos-grafana
url: http://10.43.8.34:80/cos-prometheus-0
url: http://10.43.8.34:80/cos-alertmanager

Choose the cos-grafana URL and access it in your browser.

Login to Grafana

Login to Grafana with the password obtained from the previous section. The username is admin.

Access the dashboard in the UI

Go to the left sidebar and choose the MLflow Dashboards from the list. From the General dashboards folder choose the MLflow metrics Dashboard. When accessing the dashboard for the first time, choose some reasonable time range from the top right dropdown.