PUT монитор

Материал из Документация Ключ-АСТРОМ

Обновляет указанный монитор.

Конфигурация монитора передается через его 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 Частота монитора в минутах.

Вы можете использовать одно из следующих значений: 5, 10, 15, 30и 60.

требуется
anomalyDetection AnomalyDetection Конфигурация обнаружения аномалий. по желанию
type string Определяет фактический набор полей в зависимости от значения. См. один из следующих объектов:
  • BROWSER-> BrowserSyntheticMonitorUpdate
  • HTTP-> HttpSyntheticMonitorUpdate

Элемент может содержать эти значения

  • BROWSER
  • HTTP
требуется
name string Название монитора. требуется
locations string[] Список местоположений, из которых выполняется монитор.

Чтобы указать местоположение, используйте его идентификатор объекта.

требуется
enabled boolean Монитор включен ( true) или отключен ( false). требуется
script object Скрипт браузера или HTTP-монитора. требуется
tags TagWithSourceInfo[] Набор тегов, присвоенных монитору.

Здесь вы можете указать только значение тега, а CONTEXTLESSконтекст и источник «ПОЛЬЗОВАТЕЛЬ» будут добавлены автоматически. Но предпочтительным вариантом является использование модели TagWithSourceDto.

требуется
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 Тип порога: общее время загрузки или время загрузки действия.

Элемент может содержать эти значения

  • ACTION
  • TOTAL
требуется
valueMs integer Уведомлять, если загрузка монитора занимает больше X миллисекунд. требуется
requestIndex integer Укажите запрос, к которому применяется порог ACTION. по желанию
eventIndex integer Укажите событие, к которому применяется порог ACTION. по желанию

Объект TagWithSourceInfo

Тег с источником объекта Ключ-АСТРОМ.

Элемент Тип Описание Необходимость
source string Источник тега, например USER, RULE_BASED или AUTO.

Элемент может содержать эти значения

  • AUTO
  • RULE_BASED
  • USER
по желанию
context string Происхождение тега, например AWS или Cloud Foundry.

Пользовательские теги используют это CONTEXTLESSзначение.

Элемент может содержать эти значения

  • AWS
  • AWS_GENERIC
  • AZURE
  • CLOUD_FOUNDRY
  • CONTEXTLESS
  • ENVIRONMENT
  • GOOGLE_CLOUD
  • KUBERNETES
требуется
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