Обратно несовместимые изменения в Grafana v11.0
Ниже перечислены обратно несовместимые изменения, о которых следует знать при обновлении до Grafana v11.0.
Для наших целей обратно несовместимым изменением является любое изменение, требующее от пользователей или операторов каких-либо действий. К ним относятся:
- Изменения в одной части системы, которые могут привести к сбою других компонентов
- Признание функции устаревшей или её удаление
- Изменения в API, которые могут нарушить работу автоматизации
- Изменения, затрагивающие некоторые плагины или функции Grafana
- Миграции, которые невозможно откатить
Для каждого изменения приведённая информация:
- Помогает определить, затронуты ли вы
- Описывает изменение или соответствующую предысторию
- Подсказывает, как смягчить последствия изменения или выполнить миграцию
- Предоставляет дополнительные материалы для изучения
О ключевых нововведениях и устаревших функциях см. Что нового в v11.0. Конкретные шаги, которые мы рекомендуем при обновлении до v11.0, описаны в нашем руководстве по обновлению.
Пользователи и операторы
Поддержка AngularJS по умолчанию отключена
Описание
В Grafana v11 поддержка устаревшего фреймворка AngularJS по умолчанию отключена для всех самостоятельно размещённых (on-premise) и облачных экземпляров Grafana. Это не позволяет загружать любой источник данных или визуализацию панели, которые полагаются на AngularJS, и, следовательно, может серьёзно нарушить работу ваших дашбордов. Поддержка будет полностью удалена в следующем мажорном релизе Grafana.
Миграция/смягчение
Чтобы избежать сбоев, убедитесь, что все плагины обновлены, и перейдите с оставшихся плагинов на AngularJS на альтернативы на основе React. Если плагин полагается на AngularJS, в
каталоге плагинов в Grafana и в любой панели дашборда, где он используется, будет отображаться значок и сообщение с предупреждением. Кроме того, в затронутых дашбордах появится предупреждающий баннер. Список всех затронутых дашбордов также можно сформировать с помощью инструмента detect-angular-dashboards.
В нашей документации перечислены все известные публичные плагины и, где это возможно, приведены рекомендации по миграции.
Для пользователей самостоятельно размещённой Grafana и существующих облачных экземпляров Grafana Cloud можно временно повторно включить поддержку с помощью
параметра конфигурации angular_support_enabled=false. Однако плагины на основе AngularJS больше не будут получать обновления, и мы настоятельно рекомендуем как можно скорее выполнить миграцию. Этот параметр конфигурации также будет удалён в следующем мажорном релизе после Grafana v11.
Новые пользователи Grafana Cloud не смогут запросить добавление поддержки в свой экземпляр.
Дополнительные материалы
Дополнительную информацию см. в этой публикации в блоге.
Grafana Enterprise: анонимные устройства тарифицируются как пользователи
Описание
Начиная с Grafana v11 анонимные пользователи учитываются и тарифицируются как пользователи в Grafana Enterprise. При обновлении до v11 анонимные пользователи будут автоматически учитываться как активные пользователи в рамках вашей лицензии Grafana Enterprise.
Миграция/смягчение
Отключите анонимный доступ и рассмотрите возможность использования публичных дашбордов, чтобы предоставлять доступ только для просмотра к общедоступным дашбордам.
Дополнительные материалы
Документация по анонимному доступу
Устаревшая система оповещений полностью удалена
Устаревшая система оповещений достигла конца своего жизненного цикла. В Grafana v11 вы больше не можете включить устаревшую систему оповещений, и Grafana не запустится, если настройки не будут обновлены для работы новой системы оповещений Grafana Alerting. Это также означает, что начиная с Grafana v11 миграция с устаревшей системы оповещений на нашу новую систему оповещений становится невозможной. Grafana v10.4.x — последняя версия, в которой доступна миграция, поэтому обязательно выполните миграцию на новую систему Grafana Alerting до обновления до Grafana v11. Подробнее о Grafana Alerting и преимуществах новой системы см. в документации по устареванию устаревшей системы оповещений. Подробнее о миграции см. в документации по обновлению оповещений.
Более подробную информацию об удалении кода можно найти в следующих PR:
Удалены устаревшие конечные точки и поля в Reporting
Описание
В Grafana v11 поддержка устаревших конечных точек и полей в Reporting, связанных со старым форматом расписания, электронной почтой и дашбордом, полностью удалена. Это исключает любые вызовы устаревших конечных точек и передачу значений в устаревшие поля. Эта функция затрагивает только клиентов Cloud и Enterprise, которые используют API для создания отчётов.
Миграция/смягчение
Убедитесь, что устаревшие конечные точки заменены новыми соответствующими конечными точками, а устаревшие поля удалены и заменены новыми соответствующими полями.
Дополнительные материалы
В документации по Reporting API перечислены все поддерживаемые конечные точки и поля.
Изменено поведение нижнего колонтитула публичного дашборда при пользовательском брендинге
Описание
В Grafana v11 поведение нижнего колонтитула публичного дашборда при пользовательском брендинге изменено: теперь по умолчанию используется логотип Grafana, если не задан логотип или текст нижнего колонтитула. Возможности скрыть нижний колонтитул публичного дашборда больше нет. Эта функция затрагивает только клиентов Cloud Advanced и Enterprise.
Миграция/смягчение
Убедитесь, что у вас задан логотип или текст нижнего колонтитула публичного дашборда, если вы не хотите отображать нижний колонтитул Grafana по умолчанию.
Дополнительные материалы
Документация по настройке пользовательского брендинга для публичных дашбордов
Подпапки вызывают очень редкие проблемы с папками, в именах которых есть прямые слэши
Описание и миграция/смягчение
Обновление для включения подпапок в некоторых случаях может вызвать проблемы с оповещениями. Если вы ранее создали папку, в имени которой используется прямой слэш, у вас есть правило оповещения в этой папке, а политика уведомлений настроена на совпадение с именем этой папки, уведомления будут отправляться получателю по умолчанию вместо настроенного получателя.
В таких случаях мы рекомендуем выполнить следующие шаги до обновления для включения подпапок:
- Создайте копию затронутых маршрутов и перепишите сопоставители (matchers) для новой копии. Например, если исходный сопоставитель был
grafana_folder=MyFolder/sub-folder, то новый сопоставитель маршрута будетgrafana_folder=MyFolder\/sub-folder. - После включения подпапок вы можете удалить старые маршруты.
Обратите внимание: если вы используете провизионирование через файлы, вы можете обновить и изменить маршруты одновременно.
Дополнительные материалы
PR: провизионирование дашбордов в подпапки
Источник данных Input удалён
Плагин источника данных прямого ввода (direct input) был удалён в Grafana v11. Он находился в альфа-версии четыре года, и его заменил TestData, который поставляется вместе с Grafana. Это небольшое устаревание.
Подробности см. в этом PR.
Источники данных: изменения в фильтрации запросов
Кнопка Disable query в строке редактора запросов вызвала много путаницы среди разработчиков источников данных и конечных пользователей. До сих пор фильтрация скрытых запросов до или после их выполнения была задачей разработчиков источников данных. Начиная с Grafana v11 подсказка этой кнопки меняется с Disable query на Hide response/Show response. Ответы, связанные со скрытыми запросами, будут удаляться Grafana до того, как они будут переданы панели.
Пользователи плагинов источников данных, которые ранее не удаляли скрытые запросы (до или после их выполнения), заметят изменение поведения: раньше нажатие кнопки Disable query не влияло на результат запроса. Начиная с Grafana v11 ответы, связанные со скрытыми запросами, больше не возвращаются панели.
Мы также переносим вызов метода datasource.filterQuery в исполнитель запросов (query runner). Это означает, что источники данных, работающие только на фронтенде (или любой источник данных, который не расширяет класс DataSourceWithBackend), могут реализовать этот метод. Это упорядочивает поведение плагинов источников данных, обеспечивая одинаковую работу фильтрации для всех видов плагинов источников данных.
Миграция/смягчение
Если в панелях отсутствуют данные, убедитесь, что кнопка Hide response в редакторе запросов не нажата.
Для источников данных, расширяющих DataSourceWithBackend, метод filterQuery теперь вызывается до метода запроса источника данных. Если метод filterQuery предполагает, что перед его вызовом происходит какая-либо миграция запроса, теперь вам нужно выполнять эту миграцию и внутри этого метода.
Дополнительные материалы
Chore: получение информации oauth из нового экземпляра
Мы добавили проверку между ответом параметра HD ID-токена и списком разрешённых доменов в качестве дополнительного уровня безопасности. В случае, если параметр HD не совпадает со списком разрешённых доменов, мы отказываем в доступе к Grafana.
Если вы настраиваете конфигурацию Google OAuth с помощью api_url, вы, возможно, используете устаревшую реализацию OAuth, в которой нет параметра HD, описывающего организацию, из которой получен утверждённый токен. Это может нарушить ваш процесс входа.
Вы можете отключить эту функцию с помощью параметра конфигурации validate_hd . Всем, кто использует устаревшую конфигурацию Google OAuth, следует отключить эту проверку, если в ответе ID Token нет параметра HD.
Изменения в формировании URL просмотра панели для повторяющихся панелей
Описание
С появлением библиотеки Scenes в дашбордах изменился URL, который формируется при просмотре отдельной повторяющейся панели. Мы изменили способ ссылки на такие панели: то, что раньше было &viewPanel=panel-5, теперь стало &viewPanel=panel-3-clone1.
Это означает, что прежние URL больше не будут работать: вместо этого вы будете перенаправлены на просмотр дашборда и получите ошибку Panel not found. После этого дашборд продолжит работать как ожидается.
Миграция/смягчение
Снова откройте панель в режиме просмотра, и вы получите новый URL.
Разработчики плагинов
React Router устарел
Описание
В Grafana v11 мы помечаем react-router v5 как устаревший. Плагинам приложений следует начать миграцию на использование react-router v6.
Миграция/смягчение
Полное руководство см. в нашей документации по миграции на портале для разработчиков.
Дополнительные материалы
- Руководство по миграции Grafana v9.x → v10.x
- Официальное руководство по миграции react-router v5 → v6
- Тема на форуме сообщества Grafana
Инструмент тестирования grafana/e2e устарел
Описание
Инструмент сквозного (end-to-end) тестирования grafana/e2e на основе Cypress теперь устарел.
Миграция/смягчение
Мы рекомендуем всем авторам плагинов перенести свои сквозные тесты на новый пакет grafana/plugin-e2e на основе Playwright. Подробности о том, как перейти с grafana/e2e на grafana/plugin-e2e, см. в руководстве по миграции.
Chore: помечаем ArrayVector как never для дополнительного противодействия использованию
Интерфейс Vector, устаревший в Grafana v10, помечен как устаревший в ещё большей степени. Теперь его использование вызывает ошибки TypeScript на этапе сборки, но при этом он продолжает работать во время выполнения. Если вы всё ещё используете ArrayVector в своём коде, вам следует немедленно удалить его и заменить обычными массивами. Плагины, скомпилированные против более старых версий и зависящие от вызовов get/set, продолжат работать, поскольку прототип Array по-прежнему изменён. Это будет удалено в будущем.
Chore: удалены peer-зависимости React 17
Мы удалили React 17 как peer-зависимость из наших пакетов. Всем, кто использует новые версии этих пакетов, следует убедиться, что они обновились до React 18, следуя шагам по обновлению.
Chore: удалён SystemJS из Grafana/Runtime
SystemJS больше не экспортируется из @grafana/runtime. Разработчикам плагинов вместо этого следует импортировать модули/пакеты с помощью стандартного синтаксиса импорта TypeScript и использовать npm/yarn для установки пакетов.