Charmed MySQL K8s

Channel Revision Published Runs on
8.0/stable 180 02 Sep 2024
Ubuntu 22.04
8.0/stable 181 02 Sep 2024
Ubuntu 22.04
8.0/candidate 180 26 Aug 2024
Ubuntu 22.04
8.0/candidate 181 26 Aug 2024
Ubuntu 22.04
8.0/beta 181 20 Aug 2024
Ubuntu 22.04
8.0/beta 180 20 Aug 2024
Ubuntu 22.04
8.0/edge 189 05 Sep 2024
Ubuntu 22.04
8.0/edge 188 05 Sep 2024
Ubuntu 22.04
juju deploy mysql-k8s --channel 8.0/stable
Show information

Platform:

Note: All commands are written for juju >= v3.1

If you’re using juju 2.9, check the juju 3.0 Release Notes.

Enable Tracing

This guide contains the steps to enable tracing with Grafana Tempo for your MySQL K8s application.

To summarize:

Warning: This is feature is in development. It is not recommended for production environments.

This feature is available for Charmed MySQL K8s revision 146+ only.

Prerequisites

Enabling tracing with Tempo requires that you:


Deploy Tempo

First, switch to the Kubernetes controller where the COS model is deployed:

juju switch <k8s_controller_name>:<cos_model_name>

Then, deploy the tempo-k8s charm:

juju deploy -n 1 tempo-k8s --channel latest/edge

Integrate with the COS charms

Integrate tempo-k8s with the COS charms as follows:

juju integrate tempo-k8s:grafana-dashboard grafana:grafana-dashboard
juju integrate tempo-k8s:grafana-source grafana:grafana-source
juju integrate tempo-k8s:ingress traefik:traefik-route
juju integrate tempo-k8s:metrics-endpoint prometheus:metrics-endpoint
juju integrate tempo-k8s:logging loki:logging

If you would like to instrument traces from the COS charms as well, create the following integrations:

juju integrate tempo-k8s:tracing alertmanager:tracing
juju integrate tempo-k8s:tracing catalogue:tracing
juju integrate tempo-k8s:tracing grafana:tracing
juju integrate tempo-k8s:tracing loki:tracing
juju integrate tempo-k8s:tracing prometheus:tracing
juju integrate tempo-k8s:tracing traefik:tracing

Offer interfaces

Next, offer interfaces for cross-model integrations from the model where Charmed MySQL is deployed.

To offer the Tempo integration, run

juju offer tempo-k8s:tracing

Then, switch to the Charmed MySQL K8s model, find the offers, and integrate (relate) with them:

juju switch <k8s_controller_name>:<mysql_model_name>

juju find-offers <k8s_controller_name>:  

:exclamation: Do not miss the “:” in the command above.

Below is a sample output where k8s is the K8s controller name and cos is the model where cos-lite and tempo-k8s are deployed:

Store  URL                            Access  Interfaces
k8s    admin/cos.tempo-k8s            admin   tracing:tracing

Next, consume this offer so that it is reachable from the current model:

juju consume k8s:admin/cos.tempo-k8s

Relate Charmed MySQL K8s with the above consumed interface:

juju integrate mysql-k8s:tracing tempo-k8s:tracing

Wait until the model settles. The following is an example of the juju status --relations on the Charmed MySQL K8s model:

Model     Controller  Cloud/Region        Version  SLA          Timestamp
database  k8s         microk8s/localhost  3.4.3    unsupported  18:28:07Z

SAAS       Status  Store  URL
tempo-k8s  active  k8s    admin/cos.tempo-k8s

App        Version                  Status  Scale  Charm      Channel   Rev  Address        Exposed  Message
mysql-k8s  8.0.36-0ubuntu0.22.04.1  active      1  mysql-k8s  8.0/edge  150  10.152.183.17  no       

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

Integration provider      Requirer                  Interface    Type     Message
mysql-k8s:database-peers  mysql-k8s:database-peers  mysql_peers  peer     
mysql-k8s:restart         mysql-k8s:restart         rolling_op   peer     
mysql-k8s:upgrade         mysql-k8s:upgrade         upgrade      peer     
tempo-k8s:tracing         mysql-k8s:tracing         tracing      regular  

Note: All traces are exported to Tempo using HTTP. Support for sending traces via HTTPS is an upcoming feature.

View traces

After this is complete, the Tempo traces will be accessible from Grafana under the Explore section with tempo-k8s as the data source. You will be able to select mysql-k8s as the Service Name under the Search tab to view traces belonging to Charmed MySQL.

Below is a screenshot demonstrating a Charmed MySQL trace:

Feel free to read through the Tempo documentation at your leisure to explore its deployment and its integrations.