Upgrade to Grafana v12.3

Warning

[ru] DOCS_SHARED: "docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md" ("/hugo/content/docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md:16:1") shared directory "docs/grafana/latest/shared" not found

Warning

[ru] DOCS_SHARED: "docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md" ("/hugo/content/docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md:18:1") shared directory "docs/grafana/latest/shared" not found

Warning

[ru] DOCS_SHARED: "docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md" ("/hugo/content/docs/grafana/latest/upgrade-guide/upgrade-v12.3/index.ru.md:20:1") shared directory "docs/grafana/latest/shared" not found

Technical notes

Миграция таблицы аннотаций

Запланируйте увеличение использования диска при обновлении с Grafana v11.x

Обновление с Grafana v11.x до Grafana v12.x запускает полное переписывание таблицы annotation. Миграция заполняет новый столбец dashboard_uid, из-за чего база данных переписывает всю таблицу и перестраивает её индексы.

В средах с большими наборами данных аннотаций может наблюдаться значительное временное увеличение использования диска, что может привести к:

  • Быстрому расходованию диска в томе данных базы данных
  • Сбоям миграции базы данных (например, “could not extend file: No space left on device”)
  • Сбоям запуска Grafana
  • Длительному простою в процессе обновления

Как узнать, затронут ли я?

Вы затронуты, если обновляетесь с Grafana v11.x до v12.x и в вашей базе данных есть большая таблица annotation.

Чтобы проверить размер таблицы аннотаций, подключитесь к своей базе данных и проверьте размер таблицы.

Для PostgreSQL выполните следующий запрос:

SQL
SELECT
    pg_size_pretty(pg_relation_size('annotation'))       AS table_size,
    pg_size_pretty(pg_indexes_size('annotation'))        AS indexes_size,
    pg_size_pretty(pg_total_relation_size('annotation')) AS total_size;

Для MySQL выполните следующий запрос:

SQL
SELECT
    ROUND(data_length / 1024 / 1024, 2) AS table_size_mb,
    ROUND(index_length / 1024 / 1024, 2) AS indexes_size_mb,
    ROUND((data_length + index_length) / 1024 / 1024, 2) AS total_size_mb
FROM information_schema.tables
WHERE table_schema = DATABASE()
    AND table_name = 'annotation';

Для SQLite проверьте размер файла базы данных напрямую, так как SQLite хранит все таблицы в одном файле. Вы можете выполнить следующую команду в терминале:

Bash
ls -lh <PATH/TO/GRAFANA.DB>

Если общий размер составляет несколько гигабайт или больше, вам следует заранее спланировать действия перед обновлением.

Что мне сделать перед обновлением?

Перед обновлением выполните следующие шаги:

  1. Проверьте доступное дисковое пространство: Убедитесь, что в томе данных вашей базы данных есть как минимум в 2–3 раза больше свободного дискового пространства, чем текущий размер таблицы annotation.

  2. Просмотрите свои данные аннотаций: Подумайте, нужно ли вам сохранять все исторические аннотации.

  3. Удалите старые аннотации (необязательно): Если у вас есть ненужные аннотации, удалите их перед обновлением.

  4. Создайте резервную копию базы данных: Всегда создавайте резервную копию базы данных Grafana перед выполнением обновления. Для получения дополнительной информации обратитесь к разделу Резервное копирование Grafana.

Что мне сделать после обновления?

После успешного обновления до Grafana v12.x вы можете вернуть дисковое пространство, выполнив операции обслуживания базы данных в окне технического обслуживания.

Для PostgreSQL выполните операцию VACUUM FULL для таблицы annotation:

SQL
VACUUM FULL annotation;

Для MySQL выполните операцию OPTIMIZE TABLE для таблицы annotation:

SQL
OPTIMIZE TABLE annotation;

Для SQLite выполните операцию VACUUM для базы данных:

SQL
VACUUM;

Эти операции требуют блокировки таблицы и могут занять значительное время в зависимости от размера таблицы. Планируйте выполнять их в период низкой нагрузки.