POST монитор

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

Создает новый синтетический монитор.

Конфигурация нового монитора передается через его сценарий JSON.

POST Managed https://{your-domain}/e/{your-environment-id}/api/v1/synthetic/monitors
Среда АктивногоШлюза https://{your-activegate-domain}/e/{your-environment-id}/api/v1/synthetic/monitors

Аутентификация

Чтобы выполнить этот запрос, вам нужен токен доступа с областью создания и чтения синтетических мониторов, местоположений и узлов ( ExternalSyntheticIntegration) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .

Параметры

Чтобы найти все варианты моделей, зависящие от типа модели, см. раздел модели JSON .

Параметр Тип Описание In Необходимость
body SyntheticMonitorUpdate Тело запроса 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 местоположений не могут получить доступ к веб-приложению последовательно Запускается несколько раз подряд.

Элемент Тип Описание Необходимый
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": []
}

Ответ

Коды ответов

Код Тип Описание
200 EntityIdDto Успех. Создан новый синтетический монитор. Ответ содержит идентификатор объекта Ключ-АСТРОМ для нового монитора.

Объекты тела ответа

Объект EntityIdDto

DTO для идентификатора объекта.

Элемент Тип Описание
entityId string Идентификатор объекта для передачи

JSON-модель тела ответа

{
  "entityId": "string"
}

Пример

В этом примере запрос создает простой монитор браузера, который переходит на ruscomtech.ru .

Мониторинг выполняется каждые 10 минут из одного местоположения с идентификатором GEOLOCATION-0A41430434C388A9 . Проблема возникнет, если веб-сайт будет недоступен в течение трех последовательных запусков . Уведомление отправляется, если загрузка веб-сайта занимает более 500 миллисекунд .

Маркер API передается в заголовке авторизации .

Ответ содержит идентификатор объекта только что созданного монитора.

Поскольку тело запроса длинное, оно усечено в этом примере раздела Curl . Полное тело см. в разделе Тело запроса . Вы можете скачать или скопировать образец тела запроса, чтобы попробовать его самостоятельно. Прежде чем использовать его, убедитесь, что местоположение из примера доступно в вашей среде. Вы можете получить список доступных местоположений с помощью вызова GET для всех искусственных местоположений . Если местоположение недоступно, замените его любым используемым местоположением.

Curl

curl -X POST \
  https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/monitors \
  -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

Тело запроса

{
  "frequencyMin": 10,
  "anomalyDetection": {
    "outageHandling": {
      "globalOutage": true,
      "localOutage": false,
      "localOutagePolicy": {
        "affectedLocations": 1,
        "consecutiveRuns": 3
      }
    },
    "loadingTimeThresholds": {
      "enabled": true,
      "thresholds": [
        {
          "type": "total",
          "valueMs": 500
        }
      ]
    }
  },
  "type": "BROWSER",
  "name": "restExample",
  "locations": ["GEOLOCATION-0A41430434C388A9"],
  "enabled": true,
  "script": {
    "configuration": {
      "device": {
        "orientation": "landscape",
        "deviceName": "Desktop"
      }
    },
    "type": "clickpath",
    "version": "1.0",
    "events": [
      {
        "type": "navigate",
        "wait": {
          "waitFor": "page_complete"
        },
        "description": "navigate to main page ",
        "url": "https://www.ruscomtech.ru"
      }
    ]
  },
  "tags": ["restExample"]
}

Тело ответа

{
  "entityId": "SYNTHETIC_TEST-00000000000254E2"
}

Код ответа

200