Возможности элемента данных "Скрипт"
Для сбора данных можно использовать элемент данных, который называется «скрипт». Он позволяет выполнять пользовательский код на JavaScript и получать данные по протоколам HTTP и HTTPS.
Дополнительно можно указать необязательные параметры (в виде пар «имя-значение») и время ожидания.
Такой элемент данных может оказаться полезным в ситуациях, когда необходимо собрать данные, используя несколько шагов или сложную логику. Например, можно настроить элемент данных «Скрипт» таким образом, чтобы он выполнял два HTTP-запроса. В первом запросе данные будут получены, обработаны и переданы во второй запрос уже в изменённом виде.
Создание элемента данных Скрипт
При создании элемента данных необходимо выбрать тип "Скрипт" и заполнить следующие поля (Рисунок 1):
| Параметр | Описание |
|---|---|
| Ключ | Введите уникальный ключ, который будет использоваться для идентификации элемента данных. |
| Параметры | Укажите переменные, которые будут передаваться в скрипт, в виде пар «Имя — Значение». Пользовательские макросы поддерживаются. |
| Скрипт | Вставьте код JavaScript в область, которая появляется при нажатии на поле с параметром . Этот код должен обеспечить логику для получения значения метрики. Код имеет доступ ко всем параметрам, может отправлять HTTP-запросы GET, POST, PUT и DELETE, а также управлять HTTP-заголовками и телом запроса. |
| Время ожидания | Время ожидания выполнения JavaScript-кода составляет от 1 до 60 секунд (по умолчанию — 3 секунды). Если время ожидания превышено, возникает ошибка. Можно использовать суффиксы времени: m, s. |

Рисунок 1 — Параметры для типа элемента данных "Скрипт"
Примеры
Ведение журнала
В журнале сервера Glaber создайте запись «Тест журнала». В ответ вы увидите значение элемента данных «1».
- Создайте элемент данных с типом "Script":
- В поле Скрипт введите:
Glaber.log(3, 'Log test');
return 1;
Сбор данных
Соберите содержимое с https://www.example.com/release_notes:
- Создайте элемент данных с типом "Script";
- В поле Скрипт введите:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");