Обновляет указанный монитор.
Конфигурация монитора передается через его 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