Skip to main content

Upgrade to v0.19 from earlier versions

Before upgrading to v0.19, you need to run the migration script to sanitise the alerts and dashboards data.

Steps to run migration script

Command-Line Interface (CLI) Flags

There are is only one flag in the migrate binary:

  • --dataSource : Data Source path. default=signoz.db

For Docker

cd to SigNoz repository and run following commands:

cd deploy/docker/clickhouse-setup

docker run -it -v $PWD/data/signoz/signoz.db:/signoz.db signoz/migrate:0.19

Output should be similar as below:

Data Source path:  signoz.db
2023/05/20 15:28:22 Total Dashboard found: 2
2023/05/20 15:28:22 625fa391-d9d3-47c1-809a-1a147eea229d
2023/05/20 15:28:22 b05af383-23ec-4061-8f57-0765d45ccd51
2023/05/20 15:28:22 Dashboard 625fa391-d9d3-47c1-809a-1a147eea229d updated
2023/05/20 15:28:22 Dashboard b05af383-23ec-4061-8f57-0765d45ccd51 updated
2023/05/20 15:28:22 Dashboards migrated
2023/05/20 15:28:22 Migrating 1 rules
2023/05/20 15:28:22 Migrating rule 1
2023/05/20 15:28:22 Migrated 1 rules

At last, trigger a restart of the query-service container:

docker restart query-service

For Docker Swarm

cd to SigNoz repository and run following commands:

cd deploy/swarm/clickhouse-setup

docker run -it -v $PWD/data/signoz/signoz.db:/signoz.db signoz/migrate:0.19

Output should be similar as below:

Data Source path:  signoz.db
2023/05/20 15:28:22 Total Dashboard found: 2
2023/05/20 15:28:22 625fa391-d9d3-47c1-809a-1a147eea229d
2023/05/20 15:28:22 b05af383-23ec-4061-8f57-0765d45ccd51
2023/05/20 15:28:22 Dashboard 625fa391-d9d3-47c1-809a-1a147eea229d updated
2023/05/20 15:28:22 Dashboard b05af383-23ec-4061-8f57-0765d45ccd51 updated
2023/05/20 15:28:22 Dashboards migrated
2023/05/20 15:28:22 Migrating 1 rules
2023/05/20 15:28:22 Migrating rule 1
2023/05/20 15:28:22 Migrated 1 rules

At last, trigger a restart of the query-service container:

docker restart query-service
info

In case of multi node swarm cluster, run the above commands in the node where query-service is running. To find out which node: docker service ps query-service.

For Kubernetes

To download migrate binary:

wget https://github.com/signoz/signoz-db-migrations/releases/download/v0.19/migrate-v0.19-linux-amd64 -O migrate

sudo chmod +x migrate

To copy the binary in persistent volume path /var/lib/signoz in query-service:

kubectl cp -n platform ./migrate my-release-signoz-query-service-0:/var/lib/signoz/migrate

To exec into the query-service container:

kubectl -n platform exec -it pod/my-release-signoz-query-service-0 -- sh

Now, change directory to the /var/lib/signoz and run the migration script:

cd /var/lib/signoz

./migrate

You should see output similar to this:

Data Source path:  signoz.db
2023/05/20 15:28:22 Total Dashboard found: 3
2023/05/20 15:28:22 625fa391-d9d3-47c1-809a-1a147eea229d
2023/05/20 15:28:22 b05af383-23ec-4061-8f57-0765d45ccd51
2023/05/20 15:28:22 e730bcd5-5319-4cab-8de7-82edd5f48c72
2023/05/20 15:28:22 Dashboard 625fa391-d9d3-47c1-809a-1a147eea229d updated
2023/05/20 15:28:22 Dashboard b05af383-23ec-4061-8f57-0765d45ccd51 updated
2023/05/20 15:28:22 Dashboard e730bcd5-5319-4cab-8de7-82edd5f48c72 updated
2023/05/20 15:28:22 Dashboards migrated
2023/05/20 15:28:22 Migrating 1 rules
2023/05/20 15:28:22 Migrating rule 1
2023/05/20 15:28:22 Migrated 1 rules

Upgrade to v0.19

Follow the platform specific instructions to upgrade to 0.19 and above.

danger

Prior to upgrading to v0.19, you need to run the migration script.

In case you upgrade and don't run the migration script, you might run into query-service pod crash loop. To solve this, follow the instructions in the section below.

Issue - query-service pod is crashing (Kubernetes)

In case you upgraded to v0.19 prior to running the migration script in Kubernetes, you will see query-service pod is crashing due to invalid alerts data.

To solve this, you will have to use migration init container in query-service pod to run the migration script and then restart the pod.

Follow the steps below:

  1. Make sure you have latest chart information from the Helm repositories:

    helm repo update
  2. Include the following in override-values.yaml file:

    queryService:
    initContainers:
    migration:
    enabled: true
    command:
    - sh
    - -c
    - |
    echo "Running migration"
    wget https://github.com/signoz/signoz-db-migrations/releases/download/v0.19/migrate-v0.19-linux-amd64 -O migrate
    chmod +x migrate
    ./migrate --dataSource /var/lib/signoz/signoz.db
    echo "Migration completed"
  3. Run the following command to upgrade the chart:

    helm -n platform upgrade my-release signoz/signoz -f override-values.yaml
  4. Wait for the migration init container to complete and then restart the query-service pod:

    kubectl -n platform rollout restart sts -l app.kubernetes.io/component=query-service
  5. (Optional) Once the query-service pod is running, you can delete the migration init container from the override-values.yaml file which you added in step 2, followed by running the following command to upgrade the chart:

    helm -n platform upgrade my-release signoz/signoz -f override-values.yaml