Добавление переменной на дашборд
Добавление переменной на дашборд
Используйте переменные для фильтрации ваших дашбордов, в качестве значений переменных в плитках кода и в качестве заполнителей в заголовках плиток и тексте плиток Markdown.
Устарело: поля dt.entity.*
Если вы видите следующее сообщение:
Поля dt.entity.* устарели. Пожалуйста, используйте поля dt.smartscape.* вместо них.
мы рекомендуем использовать эквивалентное поле dt.smartscape.*.
Устаревшие поля dt.entity.* в конечном итоге будут удалены.
Добавление переменной
Чтобы добавить переменную на дашборд
- В заголовке дашборда откройте меню Добавить и выберите Переменные.
- Сочетание клавиш: Shift+V
- Отображается панель Переменная.
- Определите переменную.
- Имя: имя переменной. Оно отображается на дашборде и может содержать любые символы.
- Ключ-АСТРОМ выводит ключ из имени, заменяя любой символ, не являющийся буквой или цифрой, на _. Добавьте префикс $ к ключу, чтобы ссылаться на переменную в запросах, коде и заголовках.
- Ключ не может начинаться с зарезервированного префикса
dt_. - Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
- Тип: может быть одним из следующих:
- DQL: значение возвращается из запроса, который вы вводите при определении переменной.
- Выберите Запустить, чтобы протестировать ваш запрос.
- Код: значение возвращается из кода, который вы вводите при определении переменной.
- Список: список значений с разделителями-запятыми (CSV).
- Чтобы определить возможные значения, введите их (через запятую) в поле под Данными.
- Чтобы определить значение по умолчанию, выберите одно из списка Значение по умолчанию.
- Чтобы разрешить выбор нескольких значений одновременно, включите Множественный выбор.
- Свободный текст: произвольный текст. Вы можете ввести Значение по умолчанию. Ваши изменения сохраняются автоматически.
- DQL: значение возвращается из запроса, который вы вводите при определении переменной.
- Имя: имя переменной. Оно отображается на дашборде и может содержать любые символы.
- Настройте Параметры отображения.
- Если раскрывающийся список переменной должен отображаться на дашборде, включите Отображать как фильтр на дашборде.
- Отключите его, когда хотите скрыть его, например, когда переменная используется как статическое значение across плиток, но не должна отображаться пользователю дашборда.
- Если пользователи вашего дашборда должны иметь возможность выбирать несколько значений одновременно в раскрывающемся списке переменной, включите Множественный выбор.
- Отключите его, когда хотите использовать только отдельные значения раскрывающегося списка переменной.
- Выберите Значение по умолчанию для раскрывающегося списка переменной. Если вы ничего не введёте в это поле, будет выбрано первое доступное значение.
- Когда закончите, выберите < Переменная в верхней части, чтобы перейти на панель Переменные, или выберите соответствующую кнопку, чтобы закрыть панель Переменные.
Переменные в дашбордах могут быть определены как зависимые от других переменных.
Значение переменной пересчитывается, если её определение ссылается на другую переменную и значение другой переменной изменяется.
Например, если значение переменной A изменяется, значение любой переменной, определение которой ссылается на переменную A, пересчитывается.
Циклы не допускаются.
Например, если значение переменной A зависит от значения переменной B, значение переменной B не может зависеть от значения переменной A.
То, как вы редактируете переменную, зависит от Типа. Подробности и примеры см. в разделах:
- DQL-переменная
- Переменная-список
- Переменная-код
- Переменная свободного текста
Использование переменной
После создания переменной вы готовы использовать её в запросе.
Всегда помните о необходимости добавлять префикс $ к ключу переменной в ваших запросах.
Ключ-АСТРОМ выводит ключ из имени переменной, заменяя любой символ, не являющийся буквой или цифрой, на _. Например, переменная с именем My Total получает ключ My_Total, поэтому вы ссылаетесь на неё как $My_Total в вашем запросе.
Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
Например:
- Откройте меню и выберите Переменные, чтобы добавить переменную на ваш дашборд.
- Определите следующую переменную:
- Имя:
Host - Тип:
DQL - Запрос:
- Имя:
fetch dt.entity.host | fields entity.name
- Включите Множественный выбор, чтобы вы могли выбрать более одного значения за раз для отображения в ваших визуализациях.
- Ваши изменения сохраняются автоматически.
- Выберите соответствующую кнопку, чтобы закрыть панель Переменная.
Использование с плиткой DQL
- Откройте меню и выберите DQL.
- Скопируйте и вставьте следующий запрос в поле DQL и выберите Запустить.
fetch logs, scanLimitGBytes: 20
| filter in(host.name, array($Host))
| makeTimeseries count(), by:{ host.name }
- Обратите внимание, что запрос ссылается на нашу новую переменную
Hostкак$Host, где знак доллара указывает, что это ключ переменной.
Или, если вы не используете переменную с множественным выбором, вы можете ссылаться на неё так:
fetch logs, scanLimitGBytes: 20
| filter host.name == $Host
| makeTimeseries count(), by:{ host.name }
Поскольку вы добавили переменную с множественным выбором, вы можете использовать селектор значений, чтобы определить, какие значения отображаются в ваших визуализациях.
Вы, конечно, можете использовать вашу переменную в нескольких запросах.
Использование с плиткой Explore
Чтобы использовать переменную в плитке данных Explore
- Откройте меню и выберите Логи.
- Выберите соответствующий значок и затем выберите
host.nameиз Доступных фильтров. - В добавленном поле фильтра введите
$, чтобы получить предложения для всех доступных переменных, затем выберите$Host.
Примечание: добавление переменных в плитки Explore работает только для переменных с одиночным выбором в сочетании с оператором =.
Список переменных
Чтобы перечислить все переменные, выполните одно из следующих действий:
- Откройте меню и выберите Все переменные.
- Обратите внимание, что это меню доступно только после добавления хотя бы одной переменной на дашборд.
В этом примере для дашборда определены четыре переменные — LogLevels, MyFreeTextVariable, Variable1 и Variable2, и мы можем видеть их текущие значения под их именами.
Выберите значок настроек в правом верхнем углу дашборда, затем выберите Переменные.
Пример:
В приведённом выше примере:
- Для дашборда определены четыре переменные —
LogLevels,MyFreeTextVariable,Variable1иVariable2. - Две из переменных —
Variable1иVariable2— отображают значок предупреждения. Подробности см. в разделе «Устранение неполадок переменных».
Отсюда у вас есть следующие параметры, специфичные для переменных:
- Чтобы просмотреть или изменить определение переменной, выберите её имя.
- Чтобы добавить переменную, выберите Переменная.
- Чтобы скрыть или отобразить переменную, выберите соответствующий значок.
- Скрытая переменная с одиночным или множественным выбором автоматически определяет своё значение из доступных параметров; она не использует сохранённое значение по умолчанию.
- Скрытые переменные с множественным выбором определяются как * (все параметры).
- Скрытые переменные с одиночным выбором определяются как первый доступный параметр.
- Сохранённое значение по умолчанию сохраняется и восстанавливается, если вы снова сделаете переменную видимой. Чтобы закрепить скрытую переменную за конкретным значением, используйте вместо этого переменную свободного текста.
- Чтобы переместить переменную вверх или вниз по списку, выберите соответствующий значок и перетащите переменную на новую позицию в списке.
- Чтобы увидеть другие параметры, специфичные для переменной — Редактировать, Дублировать, Переместить вверх, Переместить вниз и Удалить — откройте меню.
Сброс переменных
Чтобы применить значения по умолчанию к переменным, откройте меню и выберите Сбросить к значениям по умолчанию.
Это устанавливает все переменные в значения по умолчанию, указанные в конфигурации переменной.
Редактирование переменной
- Откройте меню и выберите Все переменные.
- В столбце Имя выберите имя переменной, которую хотите отредактировать.
- Отредактируйте и проверьте переменную.
- То, как вы редактируете переменную, зависит от Типа. Подробности и примеры см. в разделах:
- DQL-переменная
- Переменная-список
- Переменная-код
- Переменная свободного текста
- То, как вы редактируете переменную, зависит от Типа. Подробности и примеры см. в разделах:
- Выберите соответствующую кнопку, чтобы закрыть панель Переменные.
Удаление переменной
Чтобы удалить переменную с дашборда
- Откройте меню и выберите Все переменные.
- Найдите переменную, которую хотите удалить, в столбце Имя, откройте меню для этой строки и выберите Удалить.
- Выберите соответствующую кнопку, чтобы закрыть панель Переменные.
Изменение значений переменных
Если дашборд имеет одну или несколько переменных, они перечислены по имени в левом верхнем углу дашборда, под именем дашборда. Когда вы изменяете значения переменных, содержимое дашборда пересчитывается и отображается в соответствии с новыми значениями.
Чтобы изменить значение переменной
- В левом верхнем углу дашборда найдите имя переменной.
- Используйте меню или поле редактирования под именем переменной, чтобы изменить значение.
- Если переменная допускает только один выбор (значение) за раз, выберите значение, которое хотите применить к дашборду.
- Если переменная допускает несколько выборов (значений) за раз, установите флажок для каждого значения, которое хотите применить к дашборду. Имя меню для этой переменной показывает, сколько значений выбрано.
- Для переменной Свободный текст вы можете редактировать текст в поле под именем переменной.
Изменение порядка переменных
Чтобы изменить порядок переменных на вашем дашборде
- Откройте меню и выберите Все переменные.
- Перетащите переменные в нужный порядок.
Как вариант: откройте меню для переменной, которую хотите переместить, и выберите Переместить вверх или Переместить вниз.
Типы переменных
DQL-переменная
Чтобы определить DQL-переменную
- Установите Имя — имя, которое хотите дать вашей переменной.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
status,myHosts,Variable01илиMy Total. - Ключ-АСТРОМ выводит ключ из имени, заменяя любой символ, не являющийся буквой или цифрой, на _. Например, имя
My Totalстановится ключомMy_Total. Используйте ключ с префиксом $, чтобы ссылаться на переменную в запросах, коде и заголовках. - Ключ не может начинаться с зарезервированного префикса
dt_. - Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
- Установите Тип в
DQL. - В разделе Данные введите запрос. Обязательно используйте
summarizeиcollectDistinctдля получения уникальных значений из источников данных, таких как логи. - Выберите Запустить и проверьте результаты в разделе Предварительный просмотр, чтобы убедиться, что всё работает как ожидалось.
- Если вы хотите иметь возможность выбирать более одного значения за раз, включите Множественный выбор.
Если вы добавите оба примера ниже на ваш дашборд, вы сможете фильтровать дашборд по хосту и уровню серьёзности логов. Обязательно включите Множественный выбор, если хотите выбирать более одного за раз.
Пример DQL-переменной
- Имя:
Hosts - Тип:
DQL - Определение:
fetch dt.entity.host | fields id
Если вы хотите использовать человекочитаемое имя, используйте | fields entity.name вместо | fields id.
Замена переменных
В плитках DQL у вас есть четыре варианта обёртывания значения переменной и того, как заполнитель переменной заменяется перед выполнением запроса. Эти параметры применяются только к плиткам DQL и игнорируются для плиток Код и Markdown.
$varName (по умолчанию)**:
- Если вы не указываете стратегию (например,
$varName), значение переменной оборачивается в двойные кавычки ("). Это полезно для строк, таких как имена сущностей или категории. - Любые кавычки внутри переменных экранируются и игнорируются.
- Чтобы экранировать символ двойной кавычки, используйте двойную обратную косую черту:
\\". - Например, для сервиса с именем
PaymentBackendв запросе DQL, где мы фильтруем по этому сервису, со стратегией по умолчанию мы заменим заполнитель переменной после = в правой части фильтра так:
| filter dt.entity.service = "PaymentBackend"
$varName:noquote:
- Если вы следуете за именем переменной с
:noquote(например,$varName:noquote), значение переменной не оборачивается в кавычки. Это полезно для чисел, единиц измерения или имён функций. - Разрешены только алфавитно-цифровые символы, точка (.), подчёркивание (_) и дефис (-).
- Запрос завершится ошибкой, если значения содержат любые другие символы.
- Например, для сервиса с именем
PaymentBackendв запросе DQL, где мы фильтруем по этому сервису, со стратегией no-quote мы заменим заполнитель переменной после = в правой части фильтра так:
| filter dt.entity.service = PaymentBackend
$varName:backtick:
- Если вы следуете за именем переменной с
:backtick(например,$varName:backtick), значение переменной оборачивается в символы обратной кавычки. - Чтобы экранировать обратную кавычку, используйте двойную обратную косую черту:
\\`. - Любые обратные кавычки внутри переменных экранируются и игнорируются.
- Пример использования: идентификаторы полей.
- Например, для сервиса с именем
PaymentBackendв запросе DQL, где мы фильтруем по этому сервису, со стратегией backtick мы заменим заполнитель переменной после = в правой части фильтра так:
| filter dt.entity.service = `PaymentBackend`
$varName:triplequote:
- Если вы следуете за именем переменной с
:triplequote(например,$varName:triplequote), значение переменной оборачивается в символы """. Это полезно для необработанного содержимого, такого как JSON, без экранирования. - Ничего не экранируется внутри значения.
- Запрос завершится ошибкой, если значение содержит """.
- Например, для сервиса с именем
PaymentBackendв запросе DQL, где мы фильтруем по этому сервису, со стратегией triple quote мы заменим заполнитель переменной после = в правой части фильтра так:
| filter dt.entity.service = """PaymentBackend"""
Переменная-список
Чтобы определить переменную-список
- Установите Имя — имя, которое хотите дать вашей переменной.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
status,myHosts,Variable01илиMy Total. - Ключ-АСТРОМ выводит ключ из имени, заменяя любой символ, не являющийся буквой или цифрой, на _. Например, имя
My Totalстановится ключомMy_Total. Используйте ключ с префиксом $, чтобы ссылаться на переменную в запросах, коде и заголовках. - Ключ не может начинаться с зарезервированного префикса
dt_. - Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
- Установите Тип в
Список. - В разделе Данные введите список возможных значений через запятую, например:
dog,cat,horse. Обязательно удалите лишние пробелы из вашего списка. - Проверьте результаты в разделе Предварительный просмотр, чтобы убедиться, что всё работает как ожидалось.
- Если вы хотите иметь возможность выбирать более одного значения за раз, включите Множественный выбор.
- Ваши изменения сохраняются автоматически.
- Закройте панель Переменная.
Пример переменной-списка
Этот пример добавит переменную $Status на ваш дашборд с возможностью выбора более одного статуса за раз и с четырьмя возможными значениями: WARN, ERROR, INFO, NONE.
- Имя:
Status - Тип:
Список - Определение:
WARN,ERROR,INFO,NONE - Множественный выбор: включён
Переменная-код
Чтобы определить переменную-код
- Установите Имя — имя, которое хотите дать вашей переменной.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
status,myHosts,Variable01илиMy Total. - Ключ-АСТРОМ выводит ключ из имени, заменяя любой символ, не являющийся буквой или цифрой, на _. Например, имя
My Totalстановится ключомMy_Total. Используйте ключ с префиксом $, чтобы ссылаться на переменную в запросах, коде и заголовках. - Ключ не может начинаться с зарезервированного префикса
dt_. - Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
- Установите Тип в
Код. - В разделе Данные введите код JavaScript.
- По соображениям безопасности при использовании переменных в плитках кода вы можете получить к ним доступ только внутри функции по умолчанию.
- Выберите Запустить и проверьте результаты в разделе Предварительный просмотр, чтобы убедиться, что всё работает как ожидалось.
- Если вы хотите иметь возможность выбирать более одного значения за раз, включите Множественный выбор.
- Ваши изменения сохраняются автоматически.
- Закройте панель Переменная.
Пример переменной-кода
- Имя:
CodeVariable - Тип:
Код - Определение:
/*
* This will run JavaScript in the DYNATRACE
* serverless environment.
* To generate variable options return string array.
*/
export default async function () {
return ["val1", "val2", "val3"]
}
Переменная свободного текста
Чтобы определить переменную свободного текста
- Установите Имя — имя, которое хотите дать вашей переменной.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
status,myHosts,Variable01илиMy Total. - Ключ-АСТРОМ выводит ключ из имени, заменяя любой символ, не являющийся буквой или цифрой, на _. Например, имя
My Totalстановится ключомMy_Total. Используйте ключ с префиксом $, чтобы ссылаться на переменную в запросах, коде и заголовках. - Ключ не может начинаться с зарезервированного префикса
dt_. - Чтобы найти ключ переменной, откройте её меню или проверьте выноску, отображаемую, пока переменная ещё не используется.
- Оно отображается в верхней части дашборда и указано на панели Переменные. Оно может содержать любые символы, например:
- Установите Тип в
Свободный текст. - Вы можете ввести Значение по умолчанию.
Ограничения при использовании переменных в плитках
Переменные в ваших плитках могут быть строкового или числового типа. Случаи, требующие другого типа данных (например, длительности), приводят к неудачным запросам. Ниже приведены некоторые примеры того, как обойти такие ситуации.
По соображениям безопасности при использовании переменных в плитках кода вы можете получить к ним доступ только внутри функции по умолчанию.
Разрешение в команде DQL
Прямое использование переменной $resolution (как в следующем запросе) не работает, поскольку resolution требует предопределённого формата данных, а переменная возвращает строковое значение.
fetch logs
| ...
| summarize count(), by: {loglevel, bin(timestamp, $resolution)}
В качестве обходного пути вы можете использовать функцию duration вместе с функцией преобразования DQL. Это обеспечивает требуемый вывод на основе вашего значения $resolution.
fetch logs
| ... | summarize count(), by: {loglevel, bin(timestamp, duration(toLong($resolution), unit:"m"))}
Преобразование значений переменных в другие типы данных
Если вы хотите отфильтровать числовое значение, но сравнить его со строковым представлением, вы можете использовать встроенную функцию преобразования DQL, такую как toString.
fetch logs
| filter amount = toString($amount)
| ...
Максимальный общий размер переменных в URL дашборда
Если значения переменных превышают 30 КБ, они не могут быть сохранены в URL дашборда.
- Если вы поделитесь URL дашборда со значениями переменных, превышающими ограничение размера, значения переменных не будут сохранены в URL, поэтому человек, открывающий дашборд по общей ссылке, не увидит выбранные значения.
- Если вы сохраните URL дашборда в закладки со значениями переменных, превышающими ограничение размера, и откроете дашборд из этой закладки через 90 дней, выбранные значения не будут установлены.
Устранение неполадок переменных
Дашборд с одной или несколькими определёнными переменными отображает переменные в строке под именем дашборда. В этом примере вы можете видеть:
- Меню переменных.
- Четыре переменные:
LogLevels,MyFreeTextVariable,Variable1иVariable2. - Значок предупреждения.
Чтобы исследовать предупреждение, выберите значок предупреждения (или выберите > Все переменные), чтобы перечислить все переменные.
- Там снова четыре переменные:
LogLevels,MyFreeTextVariable,Variable1иVariable2. - Две из этих переменных —
Variable1иVariable2— отображают значок предупреждения, указывающий на возможные проблемы с каждой из них. Чтобы увидеть, почему есть предупреждение для конкретной переменной, выберите её.
В этом примере мы выбрали Variable1, чтобы отобразить определение переменной и любое связанное сообщение об ошибке или предупреждении. Отсюда мы видим, что забыли сослаться на переменную где-либо.