Charmed MySQL K8s

Channel Revision Published Runs on
8.0/stable 127 22 Mar 2024
Ubuntu 22.04
8.0/candidate 138 02 May 2024
Ubuntu 22.04
8.0/beta 147 13 Jun 2024
Ubuntu 22.04
8.0/edge 149 14 Jun 2024
Ubuntu 22.04
juju deploy mysql-k8s --channel 8.0/stable
Show information


Enable monitoring

:information_source: Hint: Use Juju 3. Otherwise replace juju run ... with juju run-action --wait ... and juju integrate with juju relate for Juju 2.9.

Enable monitoring requires that you:

Switch to COS K8s environment and offer COS interfaces to be cross-model related with Charmed MySQL K8s model:

# Switch to Kubernetes controller, for the cos model.
juju switch <k8s_cos_controller>:<cos_model_name>

juju offer grafana:grafana-dashboard
juju offer loki:logging
juju offer prometheus:receive-remote-write

Switch to Charmed MySQL K8s model, find offers and consume them:

# We are on the Kubernetes controller, for the cos model. Switch to mysql model
juju switch <k8s_db_controller>:<mysql_model_name>

juju find-offers <k8s_cos_controller>: # Do not miss ':' here!

A similar output should appear, if k8s is the k8s controller name and cos the model where cos-lite has been deployed:

Store  URL                    Access  Interfaces
k8s    admin/cos:grafana      admin   grafana:grafana-dashboard
k8s    admin/cos.loki         admin   loki:logging
k8s    admin/cos.prometheus   admin   prometheus:receive-remote-write

Consume offers to be reachable in the current model:

juju consume k8s:admin/cos.grafana
juju consume k8s:admin/cos.loki
juju consume k8s:admin/cos.prometheus

Now, deploy ‘grafana-agent-k8s’ and integrate (relate) it with Charmed MySQL K8s, later integrate (relate) grafana-agent-k8s with consumed COS offers:

juju deploy grafana-agent-k8s --trust

juju relate grafana-agent-k8s grafana
juju relate grafana-agent-k8s loki
juju relate grafana-agent-k8s prometheus

juju relate grafana-agent-k8s mysql-k8s:grafana-dashboard
juju relate grafana-agent-k8s mysql-k8s:logging
juju relate grafana-agent-k8s mysql-k8s:metrics-endpoint

After this is complete, Grafana will show the new dashboards: MySQL Exporter and allows access for Charmed MySQL logs on Loki.

The example of juju status on Charmed MySQL K8s model:

Model  Controller   Cloud/Region        Version  SLA          Timestamp
mysql  charmed-dev  microk8s/localhost  3.1.6    unsupported  02:20:09+02:00

SAAS        Status  Store        URL
grafana     active  charmed-dev  admin/cos.grafana
loki        active  charmed-dev  admin/cos.loki
prometheus  active  charmed-dev  admin/cos.prometheus

App        Version                  Status  Scale  Charm      Channel     Rev  Address         Exposed  Message
mysql-k8s  8.0.32-0ubuntu0.22.04.2  active      1  mysql-k8s  8.0/stable   61  no       Primary

Unit          Workload  Agent  Address      Ports  Message
mysql-k8s/0*  active    idle         Primary

The example of juju status on COS K8s model:

Model  Controller   Cloud/Region        Version  SLA          Timestamp
cos    charmed-dev  microk8s/localhost  3.1.6    unsupported  02:20:11+02:00

App           Version  Status  Scale  Charm             Channel  Rev  Address         Exposed  Message
alertmanager  0.23.0   active      1  alertmanager-k8s  stable    47  no       
catalogue              active      1  catalogue-k8s     stable    13  no       
grafana       9.2.1    active      1  grafana-k8s       stable    64  no       
loki          2.4.1    active      1  loki-k8s          stable    60  no       
prometheus    2.33.5   active      1  prometheus-k8s    stable   103  no       
traefik       2.9.6    active      1  traefik-k8s       stable   110   no       

Unit             Workload  Agent  Address      Ports  Message
alertmanager/0*  active    idle         
catalogue/0*     active    idle         
grafana/0*       active    idle          
loki/0*          active    idle          
prometheus/0*    active    idle          
traefik/0*       active    idle         

Offer       Application  Charm           Rev  Connected  Endpoint              Interface                Role
grafana     grafana      grafana-k8s     64   1/1        grafana-dashboard     grafana_dashboard        requirer
loki        loki         loki-k8s        60   1/1        logging               loki_push_api            provider
prometheus  prometheus   prometheus-k8s  103  1/1        receive-remote-write  prometheus_scrape        requirer

To connect Grafana WEB interface, follow the COS section “Browse dashboards”:

juju run grafana/leader get-admin-password --model <k8s_controller>:<cos_model_name>


Help improve this document in the forum (guidelines). Last updated 8 months ago.