Обновляет указанный монитор.
Конфигурация монитора передается через его JSON-скрипт.
Вы можете скопировать сценарий существующего монитора и настроить его по мере необходимости.
PUT | Удалось | https://{your-domain}/e/{your-environment-id}/api/v1/synthetic/monitors/{monitorId}
|
Среда АктивногоШлюза | https://{your-activegate-domain}/e/{your-environment-id}/api/v1/synthetic/monitors/{monitorId}
|
Аутентификация
Чтобы выполнить этот запрос, вам нужен токен доступа с областью создания и чтения синтетических мониторов, местоположений и узлов ( ExternalSyntheticIntegration
) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Параметры
Чтобы найти все варианты моделей, зависящие от типа модели, см. раздел модели JSON .
Параметр | Тип | Описание | In | Необходимость |
---|---|---|---|---|
monitorId | string | Идентификатор синтетического монитора, который необходимо обновить. | path | требуется |
body | SyntheticMonitorUpdate | Синтетическое обновление монитора.
Фактический набор полей зависит от типа монитора. Список актуальных объектов ищите в описании поля типа или смотрите Синтетические мониторы API-модели JSON . |
body | по желанию |
Объекты тела запроса
Объект SyntheticMonitorUpdate
Синтетическое обновление монитора.
Фактический набор полей зависит от типа монитора. Список актуальных объектов ищите в описании поля типа или смотрите Синтетические мониторы API-модели JSON .
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
frequencyMin | integer | Частота монитора в минутах.
Вы можете использовать одно из следующих значений: |
требуется |
anomalyDetection | AnomalyDetection | Конфигурация обнаружения аномалий. | по желанию |
type | string | Определяет фактический набор полей в зависимости от значения. См. один из следующих объектов:
Элемент может содержать эти значения
|
требуется |
name | string | Название монитора. | требуется |
locations | string[] | Список местоположений, из которых выполняется монитор.
Чтобы указать местоположение, используйте его идентификатор объекта. |
требуется |
enabled | boolean | Монитор включен ( true ) или отключен ( false ).
|
требуется |
script | object | Скрипт браузера или HTTP-монитора. | требуется |
tags | TagWithSourceInfo[] | Набор тегов, присвоенных монитору.
Здесь вы можете указать только значение тега, а |
требуется |
manuallyAssignedApps | string[] | Набор назначенных вручную приложений. | требуется |
Объект AnomalyDetection
Конфигурация обнаружения аномалий.
Элемент | Тип | Описание | Необходимый |
---|---|---|---|
outageHandling | OutageHandlingPolicy | Конфигурация обработки сбоев. | требуется |
loadingTimeThresholds | LoadingTimeThresholdsPolicyDto | Настройка порогов производительности. | требуется |
Объект OutageHandlingPolicy
Конфигурация обработки сбоев.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
globalOutage | boolean | Когда включено ( true ), генерирует проблему и отправляет оповещение, когда монитор недоступен во всех настроенных местоположениях.
|
требуется |
globalOutagePolicy | GlobalOutagePolicy | Конфигурация глобальной обработки сбоев. | по желанию |
localOutage | boolean | Если этот параметр включен ( true ), генерирует проблему и отправляет оповещение, когда монитор недоступен для одного или нескольких последовательных запусков в любом месте.
|
требуется |
localOutagePolicy | LocalOutagePolicy | Конфигурация локальной обработки сбоев.
Предупреждает, если затронутые местоположения местоположений не могут получить доступ к веб-приложению последовательно Запускается несколько раз подряд. |
требуется |
retryOnError | boolean | Запланируйте повторную попытку, если выполнение монитора браузера приведет к сбою. Для HTTP-мониторов это свойство игнорируется. | по желанию |
Объект GlobalOutagePolicy
Конфигурация глобальной обработки сбоев.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
consecutiveRuns | integer | Оповещение, если все местоположения не могут получить доступ к веб-приложению X раз подряд. | требуется |
Объект LocalOutagePolicy
Конфигурация локальной обработки сбоев.
Предупреждает, если затронутые местоположения местоположений не могут получить доступ к веб-приложению последовательно Запускается несколько раз подряд.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
affectedLocations | integer | Количество затронутых местоположений, для которых выдается оповещение. | требуется |
consecutiveRuns | integer | Количество последовательных неудачных попыток вызвать оповещение. | требуется |
Объект LoadingTimeThresholdsPolicyDto
Настройка порогов производительности.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
enabled | boolean | Порог производительности включен ( true ) или отключен ( false ).
|
требуется |
thresholds | LoadingTimeThreshold[] | Список правил порога производительности. | требуется |
Объект LoadingTimeThreshold
Правило порога производительности.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
type | string | Тип порога: общее время загрузки или время загрузки действия.
Элемент может содержать эти значения
|
требуется |
valueMs | integer | Уведомлять, если загрузка монитора занимает больше X миллисекунд. | требуется |
requestIndex | integer | Укажите запрос, к которому применяется порог ACTION. | по желанию |
eventIndex | integer | Укажите событие, к которому применяется порог ACTION. | по желанию |
Объект TagWithSourceInfo
Тег с источником объекта АппОптима.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
source | string | Источник тега, например USER, RULE_BASED или AUTO.
Элемент может содержать эти значения
|
по желанию |
context | string | Происхождение тега, например AWS или Cloud Foundry.
Пользовательские теги используют это Элемент может содержать эти значения
|
требуется |
key | string | Ключ тега.
Пользовательские теги здесь имеют значение тега. |
требуется |
value | string | Значение тега.
Не применимо к пользовательским тегам. |
по желанию |
JSON-модель тела запроса
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
<{ "frequencyMin": 5, "anomalyDetection": { "outageHandling": { "globalOutage": true, "localOutage": true, "localOutagePolicy": { "affectedLocations": 1, "consecutiveRuns": 3 } }, "loadingTimeThresholds": { "enabled": true, "thresholds": [ { "type": "TOTAL", "valueMs": 100, "requestIndex": 1 } ] } }, "type": "BROWSER", "name": "Browser Monitor Example", "locations": [ "GEOLOCATION-9999453BE4BDB3CD" ], "enabled": true, "script": { "type": "availability", "version": "1.0", "configuration": { "device": { "deviceName": "Desktop", "orientation": "landscape" } }, "events": [ { "type": "navigate", "description": "Loading of \"example.com\"", "url": "http://example.com", "wait": { "waitFor": "page_complete" } } ] }, "keyPerformanceMetrics": { "loadActionKpm": "VISUALLY_COMPLETE", "xhrActionKpm": "VISUALLY_COMPLETE" }, "tags": [ "example" ], "manuallyAssignedApps": [ "APPLICATION-4ADF0EF407C7C545" ], "events": [] }
Ответ
Коды ответов
Код | Описание |
---|---|
204 | Успех. Обновлен синтетический монитор. Ответ не имеет тела. |
Пример
В этом примере запрос обновляет монитор ruscomtech.ru из примера монитора GET , изменяя список локаций, из которых он выполняется, и увеличивая частоту до 10 минут .
Маркер API передается в заголовке авторизации .
Поскольку тело запроса длинное, оно усечено в этом примере раздела Curl . Полное тело см. в разделе Тело запроса . Вы можете скачать или скопировать образец тела запроса, чтобы попробовать его самостоятельно. Прежде чем использовать его, убедитесь, что местоположение из примера доступно в вашей среде. Вы можете получить список доступных местоположений с помощью вызова GET для всех искусственных местоположений . Если местоположение недоступно, замените его любым используемым местоположением.
Curl
<curl -X PUT \ https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/monitors/SYNTHETIC_TEST-0000000000025434 \ -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ -H 'Content-Type: application/json' \ -d '{<truncated - see the Request body section > } '
URL-адрес запроса
https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/monitors/SYNTHETIC_TEST-0000000000025434
Тело запроса
<{ "frequencyMin": 10, "anomalyDetection": { "outageHandling": { "globalOutage": true, "localOutage": false, "localOutagePolicy": { "affectedLocations": 1, "consecutiveRuns": 3 } }, "loadingTimeThresholds": { "enabled": false, "thresholds": [] } }, "type": "browser", "name": "ruscomtech.ru", "locations": [ "GEOLOCATION-0A41430434C388A9", "GEOLOCATION-95196F3C9A4F4215", "GEOLOCATION-0DF9A0E1095A5A62" ], "enabled": true, "script": { "type": "clickpath", "version": "1.0", "configuration": { "device": { "deviceName": "Desktop", "orientation": "landscape" } }, "events": [ { "type": "navigate", "description": "Loading of \"http://www.ruscomtech.ru\"", "url": "http://www.ruscomtech.ru", "wait": { "waitFor": "page_complete" } }, { "type": "click", "description": "click on \"Free trial\"", "target": { "locators": [ { "type": "css", "value": "a:contains(\"Free trial\"):eq(1)" }, { "type": "css", "value": ".btn:eq(1)" }, { "type": "css", "value": "#content div div div div div div div p:nth-child(3) a" }, { "type": "css", "value": "#content div.homepage-hero-wrapper div.gallery div.flickity-viewport div.flickity-slider div.gallery-cell div.section div.column p.cta--row a.btn:eq(0)" } ] }, "button": 0, "wait": { "waitFor": "page_complete" } }, { "type": "click", "description": "click on \"email\"", "target": { "locators": [ { "type": "css", "value": "input[type=\"email\"][name=\"email\"]:eq(0)" }, { "type": "dom", "value": "document.forms[0][\"email\"]" }, { "type": "css", "value": ".inputfield:eq(0)" }, { "type": "css", "value": "#content div div:nth-child(2) form:nth-child(9) input:nth-child(3)" }, { "type": "css", "value": "#content div.section div.tile form.cta input.inputfield:eq(0)" } ] }, "button": 0 }, { "type": "keystrokes", "description": "keystrokes on \"email\"", "target": { "locators": [ { "type": "css", "value": "input[type=\"email\"][name=\"email\"]:eq(0)" }, { "type": "dom", "value": "document.forms[0][\"email\"]" }, { "type": "css", "value": ".inputfield:eq(0)" }, { "type": "css", "value": "#content div div:nth-child(2) form:nth-child(9) input:nth-child(3)" }, { "type": "css", "value": "#content div.section div.tile form.cta input.inputfield:eq(0)" } ] }, "textValue": "sample@sample.com", "masked": false, "simulateBlurEvent": true }, { "type": "click", "description": "click on \"Start free trial\"", "target": { "locators": [ { "type": "css", "value": "input[type=\"submit\"]:eq(0)" }, { "type": "dom", "value": "document.forms[0][19]" }, { "type": "css", "value": ".btn:eq(1)" }, { "type": "css", "value": "#content div div:nth-child(2) form:nth-child(9) div:nth-child(22) input" }, { "type": "css", "value": "#content div.section div.tile form.cta div.cta__formgroup input.btn:eq(0)" } ] }, "button": 0, "wait": { "waitFor": "page_complete" } } ] }, "tags": [] }
Код ответа
204