Последнее обновление: августа 4, 2026

Устранение неполадок источника данных InfluxDB

В этом документе собраны решения распространённых проблем, с которыми можно столкнуться при настройке или использовании источника данных InfluxDB. Проблемы упорядочены в соответствии с типичным процессом настройки и использования. Инструкции по настройке см. в разделе Настройка источника данных InfluxDB.

Ошибки подключения

Следующие ошибки возникают, когда Grafana не может установить или поддерживать соединение с InfluxDB.

«Plugin health check failed» или «An error occurred within the plugin»

Симптомы:

  • Все панели, использующие InfluxDB, возвращают «An error occurred within the plugin»
  • Добавление нового источника данных InfluxDB завершается ошибкой «Plugin health check failed»
  • В интерфейсе параметры соединения отображаются пустыми

Возможные причины и решения:

Причина Решение
Сбой платформы Если все панели InfluxDB перестали работать одновременно, прежде чем искать проблему в собственной конфигурации, проверьте страницу состояния Grafana Cloud на наличие активных инцидентов. Проблема может быть временным сбоем платформы, который устраняется без действий со стороны пользователя.
Сбой аутентификации Проверьте журналы сервера Grafana на наличие ошибок, связанных с аутентификацией. Убедитесь, что ваши учётные данные не истекли и не были заменены.
Временная проблема с сетью Ошибка может исчезнуть сама. Подождите несколько минут и повторите Save & test. Если проблема сохраняется, проверьте сетевое взаимодействие между Grafana и InfluxDB.

Не удалось подключиться к InfluxDB

Сообщение об ошибке: error performing influxQL query или error performing flux query или error performing sql query

Причина: Grafana не может установить сетевое соединение с сервером InfluxDB.

Решение:

  1. Проверьте, что URL InfluxDB указан правильно в конфигурации источника данных.
  2. Проверьте, что InfluxDB запущен и доступен с сервера Grafana.
  3. Убедитесь, что URL содержит протокол (http:// или https://).
  4. Проверьте, что порт указан правильно (порт API InfluxDB по умолчанию — 8086).
  5. Убедитесь, что нет правил брандмауэра, блокирующих соединение.
  6. Для Grafana Cloud убедитесь, что вы настроили Private data source connect, если ваш экземпляр InfluxDB не доступен публично.

Подключение PDC завершается ошибкой «no such host»

Сообщение об ошибке: socks connect tcp ... -> influxdb.host:8086: dial tcp: lookup ... no such host

Причина: При использовании Private data source connect (PDC) URL InfluxDB не удаётся разрешить через туннель SOCKS-прокси.

Решение:

  1. Не используйте 127.0.0.1 или localhost в качестве URL InfluxDB. PDC передаёт трафик через SOCKS-прокси, который не может разрешить адреса обратной петли (loopback).
  2. Вместо этого используйте LAN-адрес машины или разрешаемое имя хоста.
  3. Убедитесь, что имя хоста разрешается из сети, в которой работает агент PDC.
  4. Если ошибка появилась внезапно без изменений конфигурации, проверьте страницу состояния Grafana Cloud на наличие активных инцидентов.

Подключение PDC перестаёт работать после сбоя продления сертификата

Симптомы:

  • Ранее работавший источник данных с подключением через PDC перестаёт работать
  • В журналах агента PDC видны ошибки продления или подписи SSH-сертификата
  • Запросы завершаются ошибками подключения через SOCKS-прокси

Причина: Агент PDC использует токен API Grafana Cloud, чтобы периодически продлевать свой SSH-сертификат. Если токен неверный, истёк или был удалён, продление сертификата завершается ошибкой, и соединение перестаёт работать, когда истекает текущий сертификат.

Решение:

  1. Проверьте журналы агента PDC на наличие ошибок аутентификации или подписи сертификата.
  2. Проверьте, что токен API в конфигурации агента PDC действителен. Если токен истёк или был удалён, создайте новый на странице подключения PDC в Grafana Cloud и обновите конфигурацию агента.
  3. Перезапустите агент PDC после обновления токена.
  4. Обратитесь к разделу Troubleshoot PDC issues за информацией о кодах ошибок агента, интерпретации журналов и управлении токенами.

Ошибки TLS-сертификатов

Сообщение об ошибке: x509: certificate signed by unknown authority или аналогичные ошибки проверки TLS

Причина: InfluxDB предъявляет TLS-сертификат, который не подписан центром сертификации (CA), которому доверяет сервер Grafana. Это часто встречается с самоподписанными сертификатами и внутренними корпоративными центрами сертификации. Проверка TLS применяется от начала до конца, поэтому эта ошибка возникает и при подключении через PDC.

Решение:

  1. Источник данных InfluxDB поддерживает конфигурацию TLS для каждого экземпляра источника данных. В настройках источника данных разверните Auth and TLS/SSL Settings, включите CA cert и вставьте свой сертификат CA. Подробности см. в разделе Auth and TLS/SSL settings.
  2. Если ваш сервер InfluxDB требует клиентских сертификатов, включите TLS client auth и укажите имя сервера, клиентский сертификат и клиентский ключ.
  3. В крайнем случае можно включить Skip TLS verify, чтобы обойти проверку сертификата. Grafana не рекомендует это для production, поскольку такая настройка отключает защиту от атак «человек посередине» (man-in-the-middle).

Истёк тайм-аут запроса

Сообщение об ошибке: context deadline exceeded или request timeout или dial tcp <IP>:<port>: i/o timeout

Причина: Соединение с InfluxDB истекло по тайм-ауту до получения ответа. Это часто происходит после обновлений Grafana, когда одновременно происходят изменения инфраструктуры (например, миграция хоста базы данных).

Решение:

  1. Проверьте сетевое взаимодействие между сервером Grafana и вашим эндпоинтом InfluxDB. Проверьте разрешение DNS, правила брандмауэра и доступ к порту.
  2. Убедитесь, что IP-адрес или имя хоста InfluxDB не изменились. Это особенно важно после миграций инфраструктуры или обновлений Grafana.
  3. Проверьте сетевую задержку между Grafana и InfluxDB.
  4. Убедитесь, что InfluxDB не перегружен и не испытывает проблем с производительностью.
  5. Увеличьте значение тайм-аута в конфигурации источника данных в разделе Advanced HTTP Settings.
  6. Уменьшите временной диапазон или сложность запроса.

Ошибки аутентификации

Следующие ошибки возникают при проблемах с учётными данными или разрешениями.

Unauthorized (401)

Сообщение об ошибке: «401 Unauthorized» или «authorization failed»

Причина: Учётные данные аутентификации недействительны или отсутствуют. Временные проблемы с сетью также могут проявляться как ошибки аутентификации, даже если ваши учётные данные верны.

Решение:

  1. Если ошибка появляется периодически или возникла без изменения конфигурации, подождите несколько минут и повторите Save & test, чтобы исключить временную проблему с сетью, прежде чем менять учётные данные.
  2. Проверьте, что токен или пароль указаны правильно в конфигурации источника данных.
  3. Для Flux и SQL убедитесь, что токен не истёк.
  4. Для InfluxQL с InfluxDB 2.x проверьте, что токен задан как заголовок Authorization со значением Token <your-token>.
  5. Для InfluxDB 1.x проверьте, что имя пользователя и пароль указаны правильно.
  6. Убедитесь, что у токена есть необходимые разрешения для доступа к указанному бакету (bucket) или базе данных.

Forbidden (403)

Сообщение об ошибке: «403 Forbidden» или «access denied»

Причина: У аутентифицированного пользователя или токена нет прав на доступ к запрошенному ресурсу.

Решение:

  1. Проверьте, что у токена есть доступ на чтение к указанному бакету или базе данных.
  2. Проверьте разрешения токена в интерфейсе InfluxDB в разделе API Tokens.
  3. Для запросов Flux убедитесь, что идентификатор организации (organization ID) указан правильно.
  4. Для InfluxQL с InfluxDB 2.x проверьте, что сопоставление DBRP настроено правильно.

Ошибки конфигурации

Следующие ошибки возникают, когда источник данных настроен неправильно.

URL не настроен

Сообщение об ошибке: missing URL from datasource configuration

Причина: Поле URL источника данных пустое.

Решение:

  1. Откройте конфигурацию источника данных в Grafana.
  2. Введите полный URL вашего экземпляра InfluxDB в поле URL, включая протокол и порт (например, http://localhost:8086).
  3. Нажмите Save & test, чтобы проверить соединение.

Неизвестная версия InfluxDB

Сообщение об ошибке: «unknown influx version»

Причина: Язык запросов настроен неправильно в параметрах источника данных.

Решение:

  1. Откройте конфигурацию источника данных в Grafana.
  2. Убедитесь, что выбран допустимый язык запросов: Flux, InfluxQL или SQL.
  3. Приведите язык запросов в соответствие с вашей версией InfluxDB:
Версия InfluxDB Рекомендуемый язык запросов Примечания
1.x InfluxQL Flux доступен начиная с 1.8+, но основным языком является InfluxQL.
2.x (OSS/Cloud) Flux InfluxQL также доступен через API совместимости v1, но требует сопоставления DBRP.
3.x / Cloud Dedicated / Cloud Serverless SQL или InfluxQL Flux не поддерживается на InfluxDB 3.x.

Каждый язык запросов использует свой эндпоинт API. Если выбрать неподходящий язык для вашей версии InfluxDB, проверки работоспособности и запросы будут завершаться ошибками.

Получена недействительная информация об источнике данных

Сообщение об ошибке: invalid data source info received

Причина: Конфигурация источника данных неполна или повреждена.

Решение:

  1. Удалите и создайте источник данных заново.
  2. Убедитесь, что все обязательные поля заполнены с учётом вашего языка запросов:
    • Flux: URL, Organization, Token, Default Bucket
    • InfluxQL: URL, Database, User, Password
    • SQL: URL, Database, Token

Требуется сопоставление DBRP

Сообщение об ошибке: «database not found» или запросы возвращают пустые результаты при использовании InfluxQL на InfluxDB 2.x

Причина: Запросы InfluxQL на InfluxDB 2.x требуют сопоставления базы данных и политики хранения (Database and Retention Policy, DBRP).

Решение:

  1. Создайте сопоставление DBRP в InfluxDB с помощью CLI или API.
  2. Обратитесь к разделу Manage DBRP Mappings за инструкциями.
  3. Убедитесь, что имя базы данных в Grafana соответствует сопоставлению DBRP.

Режим доступа из браузера отключён

Сообщение об ошибке: Direct browser access in the InfluxDB datasource is no longer available. Switch to server access mode.

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

Решение:

  1. Откройте конфигурацию источника данных в Grafana.
  2. Измените режим доступа на Server (default).
  3. Нажмите Save & test, чтобы проверить соединение.

Нарушение Content Security Policy (CSP)

Симптомы:

  • Ошибки нарушения CSP в консоли браузера со ссылкой на плагин InfluxDB
  • net::ERR_ABORTED при проксированных запросах
  • Плагин InfluxDB пытается устанавливать прямые соединения из браузера в InfluxDB

Причина: Вы используете устаревшую версию Grafana. Режим доступа из браузера был удалён в Grafana 9.2.0, и старые версии могут пытаться устанавливать прямые соединения из браузера, нарушающие политики CSP. Текущие версии источника данных поддерживают только доступ через сервер (прокси), когда сервер Grafana отправляет все запросы в InfluxDB, а браузер никогда не подключается к InfluxDB напрямую.

Решение:

  1. Обновитесь до последней стабильной версии Grafana. Источник данных InfluxDB требует Grafana 12.3.0 или новее.
  2. После обновления убедитесь, что режим доступа источника данных установлен в Server (default).

Ошибки проверки работоспособности

Следующие ошибки возникают при нажатии Save & test для проверки соединения с источником данных. Каждый язык запросов использует свой запрос проверки работоспособности.

Ошибки проверки Flux

«error performing flux query»

Причина: Не удалось выполнить запрос проверки работоспособности buckets().

Решение:

  1. Проверьте, что URL InfluxDB указан правильно и доступен.
  2. Проверьте, что токен действителен и не истёк.
  3. Убедитесь, что идентификатор организации указан правильно.

«error reading buckets»

Причина: Запрос buckets() выполнился, но вернул ошибку.

Решение:

  1. Проверьте, что у токена есть разрешение на перечисление бакетов.
  2. Проверьте, что идентификатор организации соответствует организации токена.

«error getting flux query buckets»

Причина: Запрос buckets() выполнился без ошибок, но не вернул данных.

Решение:

  1. Проверьте, что у токена есть разрешение на перечисление бакетов.
  2. Проверьте, что идентификатор организации указан правильно.
  3. Убедитесь, что InfluxDB запущен и доступен.

Ошибки проверки InfluxQL

«error performing influxQL query»

Причина: Не удалось выполнить запрос проверки работоспособности SHOW MEASUREMENTS.

Решение:

  1. Проверьте, что URL InfluxDB указан правильно и доступен.
  2. Проверьте имя пользователя и пароль (или токен для InfluxDB 2.x).
  3. Убедитесь, что база данных с таким именем существует.

«error reading influxDB»

Причина: Запрос SHOW MEASUREMENTS выполнился, но вернул ошибку.

Решение:

  1. Проверьте, что имя базы данных указано правильно.
  2. Проверьте, что у пользователя есть разрешение на выполнение SHOW MEASUREMENTS.
  3. Для InfluxDB 2.x проверьте, что сопоставление DBRP настроено.

«error connecting InfluxDB influxQL»

Причина: Проверка работоспособности завершилась, но ответ не удалось обработать.

Решение:

  1. Проверьте, что имя базы данных указано правильно.
  2. Проверьте, что у пользователя есть разрешение на выполнение SHOW MEASUREMENTS.
  3. Убедитесь, что база данных существует и содержит измерения (measurement).
  4. Для InfluxDB 2.x проверьте, что сопоставление DBRP настроено.

Ошибки проверки SQL

«error performing sql query»

Причина: Не удалось выполнить запрос проверки работоспособности select 1 к эндпоинту FlightSQL.

Решение:

  1. Проверьте, что URL InfluxDB указан правильно. Проверка работоспособности SQL подключается через gRPC (FlightSQL).
  2. Проверьте, что токен действителен и имеет необходимые разрешения.
  3. Если используется TLS, проверьте конфигурацию сертификата. Переключите Insecure Connection, если подключение идёт без TLS.
  4. Убедитесь, что экземпляр InfluxDB 3.x запущен и эндпоинт FlightSQL доступен.

Найдено 0 измерений

Сообщение об ошибке: datasource is working. 0 measurements found

Причина: Соединение успешно установлено, но база данных не содержит измерений.

Решение:

  1. Убедитесь, что вы подключаетесь к правильной базе данных.
  2. Проверьте, что в базу данных были записаны данные.
  3. Если база данных новая, добавьте тестовые данные, чтобы проверить соединение.

Ошибки запросов

Следующие ошибки возникают при проблемах с синтаксисом или выполнением запросов.

Ошибка синтаксиса запроса

Сообщение об ошибке: «error parsing query: found THING» или «failed to parse query: found WERE, expected ; at line 1, char 38»

Причина: Запрос содержит недопустимый синтаксис.

Решение:

  1. Проверьте синтаксис запроса на опечатки и недопустимые ключевые слова.

  2. Для InfluxQL убедитесь, что запрос соответствует правильному синтаксису:

    SQL
    SELECT <field> FROM <measurement> WHERE <condition>
  3. Для SQL убедитесь, что запрос использует стандартный синтаксис SQL, поддерживаемый InfluxDB 3.x. Распространённые проблемы включают использование синтаксиса, специфичного для InfluxQL (например, GROUP BY time()) в режиме SQL. Поддерживаемые функции см. в справочнике по SQL для InfluxDB.

  4. Для Flux убедитесь в правильности синтаксиса конвейеров (pipe-forward) и вызовов функций.

  5. Протестируйте запрос напрямую в интерфейсе или CLI InfluxDB.

Превышен лимит тайм-аута запроса

Сообщение об ошибке: «query-timeout limit exceeded»

Причина: Запрос выполнялся дольше настроенного лимита тайм-аута в InfluxDB.

Решение:

  1. Уменьшите временной диапазон запроса.
  2. Добавьте более точные фильтры, чтобы ограничить объём сканируемых данных.
  3. Увеличьте настройку тайм-аута запроса в InfluxDB, если у вас есть права администратора.
  4. Оптимизируйте запрос, чтобы уменьшить его сложность.

Слишком много серий или точек данных

Сообщение об ошибке: «max-series-per-database limit exceeded» или «A query returned too many data points and the results have been truncated»

Причина: Запрос возвращает больше данных, чем допускают настроенные лимиты.

Решение:

  1. Уменьшите временной диапазон запроса.
  2. Добавьте фильтры, чтобы ограничить число возвращаемых серий.
  3. Увеличьте настройку Max series в конфигурации источника данных в разделе Advanced Database Settings.
  4. Используйте функции агрегации, чтобы уменьшить число точек данных.
  5. Для SQL используйте $__dateBin(time), чтобы агрегировать данные в временные интервалы и снизить кардинальность.
  6. Для Flux используйте aggregateWindow(), чтобы проредить данные (downsample).

Ошибки FlightSQL (язык запросов SQL)

Сообщение об ошибке: Сообщения с префиксом "flightsql: ", за которым следует описание ошибки gRPC.

Причина: Серверная часть SQL (FlightSQL) столкнулась с ошибкой при взаимодействии с InfluxDB 3.x.

Возможные причины и решения:

Код ошибки Причина Решение
InvalidArgument Синтаксис SQL-запроса недействителен. Проверьте SQL-запрос на синтаксические ошибки.
PermissionDenied У токена нет доступа к запрошенному ресурсу. Проверьте, что у токена есть доступ на чтение к базе данных.
NotFound Запрошенная таблица или база данных не существует. Проверьте имя базы данных и имя таблицы в вашем запросе.
Unavailable Сервер InfluxDB недоступен. Убедитесь, что InfluxDB запущен и URL указан правильно.
Unauthenticated Токен отсутствует, недействителен или истёк. Обновите токен в конфигурации источника данных.

Столбец времени не найден

Сообщение об ошибке: «no time column found»

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

Решение:

  1. Убедитесь, что ваш запрос включает поле времени.
  2. Для Flux проверьте, что запрос включает _time в выходных данных.
  3. Для SQL убедитесь, что запрос возвращает столбец с меткой времени (timestamp).
  4. Проверьте, что поле времени не отфильтровывается и не исключается.

Ошибки аннотаций

Следующие ошибки возникают при использовании аннотаций InfluxDB на дашбордах.

«Query missing in annotation definition»

Причина: Поле запроса аннотации пустое.

Решение:

  1. Перейдите к дашборду, который хотите изменить, и нажмите Edit.

  2. Нажмите значок Dashboard options, чтобы открыть боковую панель.

  3. Разверните раздел Annotations.

  4. Выберите аннотацию InfluxDB.

  5. Нажмите Open query editor, чтобы открыть диалоговое окно Annotation Query.

  6. Введите допустимый запрос в поле InfluxQL Query. Запрос должен содержать WHERE $timeFilter. Например:

    SQL
    SELECT title, description FROM events WHERE $timeFilter ORDER BY time ASC

«Flux requires the standard annotation query»

Причина: Источник данных Flux использует устаревший редактор аннотаций InfluxQL вместо стандартного редактора запросов Flux.

Решение:

  1. Удалите существующий запрос аннотации.

  2. Создайте новый запрос аннотации и выберите свой источник данных InfluxDB, настроенный на Flux.

  3. Напишите запрос Flux, возвращающий фреймы данных с полями времени и текста. Например:

    flux
    from(bucket: "events")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "deployments")

Аннотации не отображаются на графике

Причина: Аннотации настроены, но не видны на дашборде.

Решение:

  1. Проверьте, что запрос аннотации возвращает данные, протестировав его в Explore.
  2. Проверьте, что временной диапазон дашборда покрывает период событий аннотации.
  3. Убедитесь, что переключатель аннотаций включён на дашборде (проверьте значок аннотации в верхней строке меню).
  4. Для InfluxQL убедитесь, что запрос содержит WHERE $timeFilter.
  5. Если запрос возвращает несколько столбцов, проверьте, что сопоставления полей (Text, Tags, TimeEnd) заданы правильно.

Ошибки оповещений

Следующие ошибки возникают при использовании запросов InfluxDB с Grafana Alerting.

Правило оповещения завершается ошибками переменных шаблонов

Причина: Запрос оповещения содержит переменные шаблонов, такие как $hostname или $region.

Решение:

Запросы оповещений не могут использовать переменные шаблонов, поскольку Grafana вычисляет правила оповещений на серверной стороне без контекста дашборда. Замените переменные шаблонов на фиксированные значения:

  1. Откройте правило оповещения.
  2. Замените все ссылки вида $variable на литеральные значения.
  3. Сохраните правило оповещения.

Если один и тот же запрос нужен и на панели дашборда, и в правиле оповещения, поддерживайте два отдельных запроса: один с переменными для дашборда и один с фиксированными значениями для оповещений.

Вычисление оповещения возвращает «no data»

Причина: Запрос оповещения не возвращает данные временного ряда, которые Grafana может вычислить.

Решение:

  1. Сначала протестируйте запрос в Explore, чтобы убедиться, что он возвращает данные.
  2. Для InfluxQL убедитесь, что запрос использует функцию агрегации (например, mean, sum, count) вместе с GROUP BY time($__interval).
  3. Для Flux используйте aggregateWindow(), чтобы получить результаты, сгруппированные по временным интервалам.
  4. Для SQL используйте $__dateBin(time) или $__timeGroup(time), чтобы агрегировать данные по времени.
  5. Проверьте, что временной диапазон вычисления оповещения содержит данные. Оповещения используют фиксированный временной диапазон, а не выбор времени дашборда.
  6. Проверьте, что соединение с источником данных работает, нажав Save & test в настройках источника данных.

Ошибки переменных шаблонов

Следующие проблемы возникают при использовании переменных шаблонов с запросами InfluxDB.

Раскрывающийся список переменной показывает устаревшие или исторические значения

Причина: Запросы к метаданным, например SHOW TAG VALUES, возвращают значения за весь период хранения (retention), а не только за временной диапазон дашборда. Хосты или датчики, которые давно перестали отправлять данные, всё равно появляются в раскрывающемся списке.

Решение:

  1. Добавьте в запрос переменной условие по времени, например WHERE $timeFilter для InfluxQL или WHERE $__timeFilter(time) для SQL.
  2. Установите для переменной параметр Refresh в значение On time range change.
  3. Примеры см. в разделе Ограничение переменных временным диапазоном дашборда.

Переменная с несколькими значениями ломает запрос

Причина: Когда для переменной включён параметр Multi-value или Include all value, Grafana подставляет выбранные значения как группу регулярного выражения, например (server1|server2). Запросы, которые сравнивают через = или не оборачивают переменную в регулярное выражение, завершаются ошибкой или не возвращают данных.

Решение:

  1. Для InfluxQL используйте оператор =~ и оберните переменную в регулярное выражение: "hostname" =~ /^$host$/.
  2. Для SQL используйте оператор IN: host IN ($host).
  3. Рабочие примеры см. в разделе Выбор синтаксиса переменных.

Значения переменных экранируются неожиданным образом

Причина: Grafana экранирует специальные символы в значениях переменных, когда переменная имеет несколько значений или используется внутри регулярного выражения. Значения пользовательских переменных, которые намеренно содержат специальные символы (например, пути или выражения), попадают в InfluxDB изменёнными.

Решение:

Используйте параметр формата raw, например ${path:raw}, чтобы подставить буквальное значение без экранирования. Подробности см. в разделе Предотвращение нежелательного экранирования значений.

Раскрывающийся список переменной содержит пустой или дублирующийся пункт

Причина: Запрос переменной возвращает дублирующиеся значения. Grafana удаляет дубликаты в результатах, но в зависимости от версии плагина дубликаты могут проявляться как пустой пункт в раскрывающемся списке.

Решение:

  1. Измените запрос переменной так, чтобы он возвращал уникальные значения. Для SQL используйте SELECT DISTINCT. Для InfluxQL запросы метаданных SHOW уже возвращают уникальные значения, поэтому проверьте наличие дубликатов в разных политиках хранения.
  2. Как вариант, используйте параметр переменной Regex, чтобы отфильтровать результаты.

Другие распространённые проблемы

Следующие проблемы не приводят к появлению конкретных сообщений об ошибках, но часто встречаются в повседневной работе.

«Data source was not found»

Симптомы:

  • Панели дашборда показывают «data source <UID> was not found»
  • Повторный ручной запуск запросов в редакторе панели работает после того, как вы снова выберете источник данных

Причина: Панели дашборда ссылаются на старый или удалённый UID источника данных. Это происходит, когда источник данных удаляют и создают заново, поскольку новый источник данных получает другой UID. Миграции схемы дашборда также могут оставить панели с недействительными ссылками на источник данных, поэтому проверяйте панели после миграции дашборда на новую версию схемы.

Решение:

  1. Найдите текущий UID вашего источника данных InfluxDB. Перейдите в Connections > Data sources, откройте источник данных и скопируйте UID из URL страницы.
  2. Чтобы сразу найти все устаревшие ссылки, откройте JSON-модель дашборда в настройках дашборда и выполните поиск по UID, показанному в сообщении об ошибке панели.
  3. Исправьте ссылки, отредактировав каждую затронутую панель и заново выбрав правильный источник данных InfluxDB в раскрывающемся списке, либо заменив устаревший UID в JSON-модели и сохранив дашборд.
  4. Чтобы избежать этой проблемы, обновляйте существующие источники данных вместо их удаления и повторного создания.

404 Not Found при отправке метрик Telegraf в Grafana Cloud

Сообщение об ошибке: «404 Not Found», когда Telegraf пишет в эндпоинт Grafana Cloud, совместимый с InfluxDB.

Причина: Плагин вывода influxdb_v2 в Telegraf несовместим с эндпоинтом метрик Grafana Cloud. Это часто происходит при использовании PrivateLink или стандартного эндпоинта записи, совместимого с InfluxDB.

Решение:

  1. Переключите плагин вывода Telegraf с influxdb_v2 на influxdb (v1) в конфигурации Telegraf.
  2. Убедитесь, что URL эндпоинта и учётные данные соответствуют указанным на странице конфигурации InfluxDB в Grafana Cloud.
  3. Перезапустите Telegraf после внесения изменений.

Пустые результаты запроса

Причина: Запрос не возвращает данных.

Решение:

  1. Убедитесь, что временной диапазон охватывает данные в вашей базе данных.
  2. Проверьте, что имена измерений и полей указаны правильно. Для SQL имена таблиц в InfluxDB 3.x чувствительны к регистру.
  3. Протестируйте запрос напрямую в интерфейсе или CLI InfluxDB.
  4. Убедитесь, что фильтры не исключают все данные.
  5. Для SQL проверьте, что макрос $__timeFilter(time) включён, чтобы запрос использовал временной диапазон дашборда.
  6. Для InfluxQL проверьте, что политика хранения содержит данные за выбранный временной диапазон.

Числовые значения, хранящиеся как строки, отображаются пустой панелью

Симптомы:

  • Панели временных рядов не показывают данные, хотя запрос возвращает результаты
  • Значения видны в табличном представлении, но не могут быть построены на графике

Причина: InfluxDB задаёт тип данных поля при первой записи поля. Если числовые значения были записаны как строки (например, в кавычках в line protocol), InfluxDB возвращает их как строки, и Grafana не может построить их на графике. Это проблема данных в InfluxDB, а не в Grafana.

Решение:

  1. В качестве обходного пути добавьте к панели преобразование Convert field type и преобразуйте поле в Number.
  2. Чтобы устранить первопричину, исправьте тип данных в момент записи. InfluxDB не может изменить тип существующего поля, поэтому может потребоваться записать данные в новое поле или измерение.
  3. В старых версиях Grafana преобразование Convert field type превращало нулевые значения в нули. Текущие версии сохраняют нулевые значения. Если после преобразования вы видите нули вместо пустых значений, обновите Grafana.

Значения на панели различаются в режиме просмотра и редактирования

Причина: Grafana вычисляет интервал запроса ($__interval) исходя из временного диапазона и максимального числа точек данных, которое зависит от ширины панели. Панель, отрисованная в режиме редактирования, имеет ширину, отличную от режима просмотра дашборда, поэтому запросы с группировкой по time($__interval) могут агрегироваться в интервалы разного размера и показывать разные значения. Оба результата корректны — они агрегированы с разным разрешением.

Решение:

  1. Чтобы значения были согласованными, задайте фиксированное значение Min interval или Max data points в параметрах запроса панели.
  2. Как вариант, используйте в запросе явный интервал, например GROUP BY time(1m) вместо GROUP BY time($__interval).

Цвета легенды или подсказки не соответствуют сериям

Причина: Запрос возвращает несколько серий с одинаковым именем. Это часто происходит, когда запрос не группирует по тегам, которые различают серии, или когда псевдоним (alias) скрывает различающую информацию. Grafana назначает цвета и значения подсказок по имени серии, поэтому одинаковые имена приводят к несоответствию цветов или значений в легенде и во всплывающей подсказке.

Решение:

  1. Группируйте по тегам, которые делают каждую серию уникальной, например GROUP BY "hostname".
  2. Используйте шаблоны псевдонимов, например $tag_hostname, в поле ALIAS, чтобы у каждой серии было уникальное отображаемое имя. Подробности см. в разделе Шаблоны псевдонимов.
  3. С помощью инспектора панели убедитесь, что каждая возвращённая серия имеет отличное имя.

Медленная производительность запросов

Причина: Запросы выполняются долго.

Решение:

  1. Уменьшите временной диапазон запроса.
  2. Добавьте более точные фильтры, чтобы ограничить объём сканируемых данных.
  3. Увеличьте настройку Min time interval, чтобы уменьшить число точек данных.
  4. Проверьте производительность сервера InfluxDB и использование ресурсов.
  5. Для SQL используйте $__dateBin(time) вместе с функциями агрегации, чтобы проредить данные. Добавьте предложения WHERE, чтобы сузить область запроса.
  6. Для Flux используйте aggregateWindow(), чтобы проредить данные перед визуализацией.
  7. Рассмотрите использование continuous queries или задач (tasks) для предварительной агрегации данных.

InfluxDB получает большой объём запросов из Grafana

Симптомы:

  • Неожиданная нагрузка запросов на ваш сервер InfluxDB
  • Вы не уверены, исходит ли трафик из Grafana

Причина: Каждая панель дашборда отправляет свои запросы в InfluxDB при каждом обновлении дашборда. Объём запросов растёт с числом панелей, числом запросов на панель, интервалом обновления и числом людей, одновременно просматривающих дашборд. Например, дашборд с 20 панелями, обновляющийся каждые 10 секунд, генерирует не менее 120 запросов в минуту на каждого зрителя.

Решение:

  1. Увеличьте интервал обновления дашборда или отключите автообновление там, где оно не нужно.
  2. Уменьшите число панелей и запросов на дашборд.
  3. Увеличьте настройку Min time interval, чтобы уменьшить разрешение каждого запроса.
  4. В Grafana Enterprise и Grafana Cloud включите кэширование запросов, чтобы идентичные запросы в пределах окна кэша обслуживались из кэша, а не обращались к InfluxDB.
  5. Чтобы убедиться, что трафик исходит из вашего экземпляра Grafana Cloud, сравните исходные IP-адреса со списком разрешённых адресов Grafana Cloud.

Данные отображаются с задержкой или отсутствуют последние точки

Причина: Визуализация не показывает самые свежие данные.

Решение:

  1. Проверьте временной диапазон дашборда и настройки обновления.
  2. Убедитесь, что значение Min time interval не задано слишком большим.
  3. Убедитесь, что InfluxDB завершил запись данных.
  4. Проверьте наличие проблем синхронизации часов между Grafana и InfluxDB.

Включение отладочного журналирования

Caution

Версии плагина InfluxDB ранее 13.1.0 могли записывать токены API в журналы сервера Grafana в виде открытого текста при стандартных уровнях журналирования. Прежде чем заниматься диагностикой по журналам, обновитесь до версии плагина 13.1.0 или новее. Считайте файлы журналов конфиденциальными и замените любые токены, которые могли быть раскрыты.

Чтобы зафиксировать подробную информацию об ошибках для диагностики:

  1. Установите уровень журналирования Grafana в debug в файле конфигурации:

    ini
    [log]
    level = debug
  2. Изучите журналы в /var/log/grafana/grafana.log (или в настроенном вами месте хранения журналов).

  3. Найдите записи, относящиеся к InfluxDB, которые содержат сведения о запросах и ответах.

  4. Верните уровень журналирования в info после диагностики, чтобы избежать чрезмерного объёма журналов.

Получение дополнительной помощи

Если вы перепробовали решения из этого руководства, но проблемы сохраняются:

  1. Ознакомьтесь с документацией InfluxDB по вопросам, связанным с API.
  2. Поищите похожие проблемы на форумах сообщества Grafana.
  3. Проверьте известные ошибки в задачах по источнику данных InfluxDB на GitHub.
  4. Обратитесь в службу поддержки Grafana, если вы пользователь Enterprise, Cloud Pro или Cloud Contracted.
  5. При сообщении о проблемах укажите:
    • версию Grafana;
    • версию плагина источника данных InfluxDB (указана на странице Administration > Plugins);
    • версию и продукт InfluxDB (OSS, Cloud, Enterprise);
    • язык запросов (Flux, InfluxQL или SQL);
    • сообщения об ошибках (скрыв конфиденциальную информацию);
    • шаги воспроизведения;
    • соответствующую конфигурацию: настройки источника данных, HTTP method и параметры TLS (скрыв токены, пароли и другие учётные данные).