Последнее обновление: апреля 8, 2026

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

В этом документе приведены решения распространённых проблем, с которыми вы можете столкнуться при использовании источника данных TestData. TestData — это встроенный источник данных без внешних зависимостей, поэтому большинство проблем связано с конфигурацией сценария или форматированием данных.

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

Эти ошибки возникают при запуске сценариев TestData.

«No data» или пустые панели

Симптомы:

  • Панель отображает сообщение «No data».
  • Запрос выполняется без ошибок, но ничего не возвращает.

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

Причина Решение
Выбран сценарий No Data Points Сценарий No Data Points по замыслу возвращает пустые результаты. Выберите другой сценарий, такой как Random Walk.
Выбран Data Points Outside Range Этот сценарий возвращает точку данных на час раньше диапазона времени запроса. Расширьте диапазон времени или выберите другой сценарий.
Пустое поле String Input для сценариев CSV CSV Metric Values и CSV Content требуют входных данных. Добавьте значения, разделённые запятыми, или содержимое CSV.
Диапазон времени не содержит данных Некоторые сценарии генерируют данные относительно диапазона времени запроса. Расширьте диапазон времени на дашборде.

Неожиданная ошибка от Conditional Error

Симптомы:

  • Запрос возвращает серверную ошибку или сообщение о панике.
  • Ошибка появляется немедленно при выполнении запроса.

Решения:

  1. Сценарий Conditional Error запускает серверную панику, когда поле String Input пусто. Это предполагаемое поведение для тестирования ошибок.
  2. Чтобы вернуть данные вместо ошибки, заполните поле String Input значениями, разделёнными запятыми (например, 1,20,90,30,5,0).
  3. Чтобы изменить тип ошибки, используйте раскрывающийся список Error type, чтобы выбрать между Server panic, Frontend exception и Frontend observable.

Error with source возвращает ошибку

Сценарий Error with source намеренно возвращает ошибки для тестирования того, как Grafana обрабатывает разные источники ошибок. Это не ошибка конфигурации.

  • Источник ошибки Plugin имитирует ошибку, исходящую из самого плагина.
  • Источник ошибки Downstream имитирует ошибку из нижестоящего сервиса.

Используйте этот сценарий для тестирования правил алертинга, отображения ошибок и обработки ошибок в пользовательских панелях.

Slow Query выглядит зависшим

Симптомы:

  • Запрос выполняется в течение длительного периода.
  • Панель бесконечно показывает индикатор загрузки.

Решения:

  1. Проверьте поле String Input, которое управляет длительностью задержки. Значение по умолчанию — 5s.
  2. Уменьшите значение до более короткой длительности (например, 1s или 500ms).
  3. Поле принимает синтаксис длительности Go: 5s (секунды), 1m (минуты), 500ms (миллисекунды).

Неверный тип данных для визуализации

Симптомы:

  • Панель показывает «Data does not have a time field» или похожие ошибки несоответствия типов.
  • Визуализация отрисовывается, но выглядит неправильно (например, таблица, когда вы ожидали график).

Решения:

  1. Сопоставьте сценарий с типом визуализации. Например, используйте сценарий Logs с панелью Logs, Node Graph с панелью Node Graph, а Trace с панелью Traces.
  2. Панели временных рядов требуют сценариев, создающих данные временных рядов (Random Walk, Predictable Pulse, CSV Metric Values, Predictable CSV Wave).
  3. Для табличных панелей используйте Table Static, Random Walk Table или CSV File.

Шаблон Predictable Pulse не соответствует ожиданиям

Симптомы:

  • Шаблон вкл/выкл не совпадает с ожидаемыми временами.
  • Значения появляются через неожиданные интервалы.

Решения:

  1. Predictable Pulse выравнивает временные метки по интервалу шага на основе абсолютного времени от эпохи, а не от начала диапазона времени. Это означает, что шаблон начинается в одной и той же точке независимо от того, когда вы загружаете дашборд.
  2. Убедитесь, что длительность цикла соответствует вашему намерению: полный цикл — Step * (On Count + Off Count) секунд.
  3. Проверьте, что On Value и Off Value заданы правильно. Значения по умолчанию — 2 и 1, а не 1 и 0.

Ошибки CSV и ввода данных

Эти ошибки возникают со сценариями, принимающими данные, предоставленные пользователем.

CSV Content или CSV Metric Values возвращают неожиданные результаты

Симптомы:

  • Данные не соответствуют ожиданиям.
  • Меньше точек данных, чем ожидалось.
  • Ошибки разбора.

Решения:

  1. Проверьте форматирование CSV: заголовки в первой строке, запятые как разделители, числовые значения без кавычек.
  2. Для CSV Metric Values вводите только числа, разделённые запятыми, в поле String Input (например, 1,20,90,30,5,0).
  3. Специальные значения null и nan поддерживаются в значениях Predictable CSV Wave. Используйте null для отсутствующих точек данных и nan для значений «Not-a-Number».
  4. Проверьте наличие завершающих запятых или лишних пробелов во вводе.

Ошибки разбора JSON в Raw Frames

Симптомы:

  • Сообщение об ошибке о недопустимом JSON.
  • Панель не отрисовывается.

Решения:

  1. Проверьте, что JSON соответствует формату data frame Grafana.
  2. Используйте помощники вставки в редакторе, чтобы импортировать данные из JSON панели или необработанных результатов запроса.
  3. Убедитесь, что типы полей согласованы внутри каждого массива полей.

Ошибки потоковой передачи

Эти ошибки возникают со сценариями Streaming Client и Grafana Live.

Streaming Client не обновляется

Симптомы:

  • Панель показывает начальные данные, но не обновляется.
  • Со временем новые точки данных не появляются.

Решения:

  1. Убедитесь, что поле Speed установлено в разумное значение (в миллисекундах). Меньшие значения дают более быстрые обновления.
  2. Для типа Fetch убедитесь, что URL доступен из браузера.
  3. Проверьте консоль браузера на предмет ошибок WebSocket или сетевых ошибок.

Канал Grafana Live не показывает данных

Симптомы:

  • Панель остаётся пустой после выбора канала.
  • Данные потоковой передачи не появляются.

Решения:

  1. Убедитесь, что выбранный канал соответствует одному из доступных вариантов: random-2s-stream, random-flakey-stream, random-labeled-stream или random-20Hz-stream.
  2. Убедитесь, что Grafana Live включён в вашем экземпляре Grafana.
  3. Проверьте журналы сервера Grafana на предмет ошибок подключения Live.

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

Эти ошибки возникают при использовании TestData с переменными шаблонов дашборда.

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

Симптомы:

  • Раскрывающийся список переменной не показывает вариантов.
  • Предпросмотр в редакторе переменных возвращает ноль значений.

Решения:

  1. Убедитесь, что строка запроса перемещается по допустимым узлам дерева метрик. Используйте *, чтобы вернуть все узлы верхнего уровня.
  2. Проверьте, что сегменты пути, разделённые точками, соответствуют структуре дерева (например, A.* возвращает дочерние узлы узла A). Неверный путь, такой как Z.*, не возвращает ничего, потому что Z не существует в дереве.
  3. Убедитесь, что в редакторе переменных выбран источник данных TestData.
  4. Нажмите Run query в предпросмотре редактора переменных, чтобы протестировать.

Связанная переменная не обновляется

Симптомы:

  • Зависимая переменная (например, $region.*) не обновляется при изменении родительской переменной.
  • Раскрывающийся список показывает устаревшие значения из предыдущего выбора.

Решения:

  1. Установите опцию Refresh зависимой переменной в On dashboard load или On time range change в редакторе переменных.
  2. Убедитесь, что запрос использует правильный синтаксис родительской переменной (например, $region.*, а не region.*).

Значение переменной не подставляется в запросах

Симптомы:

  • Панель показывает буквальную строку $varname вместо значения переменной.
  • Метки или данные не изменяются при изменении выбора переменной.

Решения:

  1. Убедитесь, что вы используете правильный синтаксис переменных: $varname или ${varname}.
  2. TestData подставляет переменные только в этих полях: Labels, Alias, Scenario, String Input, CSV Content и Raw Frame Content. Другие поля не поддерживают подстановку переменных.

Ошибки алертинга

Эти ошибки возникают при использовании TestData с Grafana Alerting.

Правило алертинга неожиданно показывает «no data»

Симптомы:

  • Статус правила алертинга показывает No Data, даже если сценарий работает на панели.
  • Алерт никогда не переходит в сработавшее или нормальное состояние.

Решения:

  1. Убедитесь, что вы используете сценарий, вычисляемый на бэкенде. Сценарии только для браузера (Streaming Client, Grafana Live, Grafana API, Steps, No Data Points) возвращают пустые результаты при вычислении движком алертинга. Используйте вместо этого бэкенд-сценарий, такой как Random Walk или Predictable Pulse.
  2. Убедитесь, что сценарий возвращает данные временных рядов. Сценарии, создающие журналы (Logs), трассировки (Trace), графы (Node Graph, Flame Graph) или таблицы (Table Static), не могут использоваться в качестве условий алертов.
  3. Проверьте, что поле String Input не пусто для сценариев, которые его требуют (например, CSV Metric Values).

Правило алертинга никогда не срабатывает

Симптомы:

  • Правило алертинга остаётся в состоянии Normal.
  • Данные видны на панели, но условие алерта никогда не выполняется.

Решения:

  1. При использовании Random Walk значения недетерминированы и могут не превышать ваш порог. Используйте Predictable Pulse или CSV Metric Values со значениями, которые надёжно пересекают порог.
  2. Убедитесь, что выражение Reduce агрегирует правильно. Например, Last возвращает самое последнее значение, тогда как Mean усредняет ряд.
  3. Проверьте выражение Threshold. Нажмите Preview в редакторе правила алертинга, чтобы увидеть вычисленное значение.
  4. Убедитесь, что интервал вычисления достаточно длинный, чтобы сценарий создал точки данных. Predictable Pulse с Step=60 требует как минимум 60-секундного окна вычисления.

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

Симптомы:

  • Ошибка правила алертинга упоминает неразрешённые переменные.
  • Запрос алерта использует синтаксис $varname, но переменная не заменяется.

Решения:

Grafana вычисляет правила алертинга на бэкенде без контекста дашборда. Переменные шаблонов, такие как $varname, не разрешаются во время вычисления алерта. Замените ссылки на переменные фиксированными значениями в параметрах сценария.

Дополнительную информацию см. в разделе Ограничения алертинга.

Тайм-аут вычисления алерта

Симптомы:

  • Правило алертинга переходит в состояние Error.
  • Журналы показывают тайм-аут во время вычисления запроса.

Решения:

  1. Если вы используете сценарий Slow Query, уменьшите задержку в поле String Input до значения, более короткого, чем интервал вычисления.
  2. Для других сценариев убедитесь, что запрос не создаёт чрезмерного количества точек данных. Уменьшите диапазон времени или увеличьте интервал шага.

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

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

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

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

  3. Найдите записи, содержащие testdata или testdatasource, для получения сведений, специфичных для сценариев.

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

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

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

  1. Проверьте форумы сообщества Grafana на наличие похожих проблем.
  2. Просмотрите проблемы Grafana на GitHub на предмет известных ошибок.
  3. При сообщении о проблемах указывайте:
    • Версию Grafana
    • Выбранный сценарий и его конфигурацию
    • Сообщения об ошибках (удалите конфиденциальную информацию)
    • Шаги для воспроизведения