POST прочие мониторы: различия между версиями
ENetrebin (обсуждение | вклад)   (Новая страница: «Отправляет сторонние синтетические мониторы, расположения и результаты выполнения мон...»)  | 
			
(нет различий) 
 | 
Версия 10:23, 25 октября 2022
Отправляет сторонние синтетические мониторы, расположения и результаты выполнения мониторов в Ключ-АСТРОМ.
Запрос использует в качестве полезной нагрузки application/json формат.
| POST | Managed | https://{your-domain}/e/{your-environment-id}/api/v1/synthetic/ext/tests
 | 
| Среда АктивногоШлюза | https://{your-activegate-domain}/e/{your-environment-id}/api/v1/synthetic/ext/tests
 | 
Аутентификация
Чтобы выполнить этот запрос, вам нужен токен доступа с областью создания и чтения синтетических мониторов, местоположений и узлов ( ExternalSyntheticIntegration) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Параметры
| Параметр | Тип | Описание | In | Необходимость | 
|---|---|---|---|---|
| body | 3rdPartySyntheticTests | Тело JSON запроса. Содержит сторонние синтетические мониторы, местоположения и результаты. | body | требуется | 
Объекты тела запроса
Объект 3rdPartySyntheticTests
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| syntheticEngineName | string | Тип стороннего синтетического монитора. | требуется | 
| syntheticEngineIconUrl | string | URL-адрес стороннего искусственного монитора. | по желанию | 
| messageTimestamp | integer | Отметка времени создания сообщения в миллисекундах UTC. | требуется | 
| locations | 3rdPartySyntheticLocation[] | Список сторонних синтетических локаций. | требуется | 
| tests | 3rdPartySyntheticMonitor[] | Список сторонних синтетических мониторов. | требуется | 
| testResults | 3rdPartySyntheticTestResult[] | Список результатов выполнения стороннего синтетического монитора. | по желанию | 
Объект 3rdPartySyntheticLocation
Стороннее синтетическое местоположение.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | string | Идентификатор местоположения. | требуется | 
| name | string | Название местоположения, отображаемое в пользовательском интерфейсе. | требуется | 
| IP | string | IP-адрес местоположения. | по желанию | 
Объект 3rdPartySyntheticMonitor
Сторонний синтетический монитор.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | string | Идентификатор монитора. | требуется | 
| title | string | Название монитора. | требуется | 
| description | string | Описание монитора. | по желанию | 
| testSetup | string | Информация по настройке монитора, например browser.
 | 
по желанию | 
| expirationTimestamp | integer | Отметка времени истечения срока действия монитора в миллисекундах UTC. | по желанию | 
| drilldownLink | string | URL-адрес результатов выполнения монитора. | по желанию | 
| editLink | string | URL-адрес для редактирования монитора в исходном пользовательском интерфейсе. | по желанию | 
| enabled | boolean | Монитор включен ( true) или отключен ( false). Значение по умолчанию true.
Если   | 
по желанию | 
| deleted | boolean | Флаг удаленного монитора. Значение по умолчанию false.
Если   | 
по желанию | 
| locations | SyntheticTestLocation[] | Места, из которых запускается синтетический монитор. | требуется | 
| steps | SyntheticTestStep[] | Шаги стороннего монитора. | по желанию | 
| scheduleIntervalInSeconds | integer | Частота монитора в секундах. Мониторинг повторяется с заданным интервалом на стороннем источнике.
 Ключ-АСТРОМ ожидает результатов выполнения монитора с указанным интервалом. Если вы реже отправляете результаты в Ключ-АСТРОМ, измените значение noDataTimeout соответствующим образом.  | 
требуется | 
| noDataTimeout | integer | Время ожидания монитора в секундах. Если в течение этого времени не сообщается о результатах, состояние доступности переключается на неконтролируемое. По умолчанию удвоена частота монитора. | по желанию | 
Объект SyntheticTestLocation
Место проведения синтетического теста.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | string | Идентификатор местоположения. | требуется | 
| enabled | boolean | Местоположение включено/выключено. Значение по умолчанию — true, включение местоположения.
 | 
по желанию | 
Объект SyntheticTestStep
Шаг синтетического монитора.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | integer | Идентификатор шага. | требуется | 
| title | string | Имя шага, отображаемое в пользовательском интерфейсе. | требуется | 
Объект 3rdPartySyntheticTestResult
Результаты выполнения стороннего синтетического монитора.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | string | Идентификатор стороннего синтетического монитора. | требуется | 
| totalStepCount | ineger | Количество шагов на мониторе. По умолчанию количество шагов SyntheticTestSteps. | по желанию | 
| locationResults | 3rdPartySyntheticLocationTestResult[] | Результаты выполнения сторонних мониторов по местоположению. | требуется | 
Объект 3rdPartySyntheticLocationTestResult
Результаты выполнения сторонних мониторов по местоположению.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | string | Идентификатор местоположения. | требуется | 
| startTimestamp | integer | Отметка времени начала выполнения текста в миллисекундах UTC. | требуется | 
| successRate | number | Общая доступность монитора из этого места, в процентах.
 Если отсутствует, рассчитывается как количество успешных шагов по сравнению с общим количеством шагов.  | 
по желанию | 
| success | boolean | Если тест был успешным ( true) или неудачным ( false) - это повлияет на временные ряды доступности.
 | 
требуется | 
| responseTimeMillis | integer | Общее время отклика монитора из этого местоположения в миллисекундах.
 Если отсутствует, то рассчитывается как сумма времени отклика всех шагов.  | 
по желанию | 
| stepResults | SyntheticMonitorStepResult[] | Результаты отдельных шагов монитора. | требуется | 
Объект SyntheticMonitorStepResult
Результат индивидуального шага синтетического монитора.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| id | integer | ID шага. Он уникален в пределах определения теста. | требуется | 
| startTimestamp | integer | Временная метка выполнения шага теста, миллисекунды UTC. | требуется | 
| responseTimeMillis | integer | Время отклика шага в миллисекундах.
 Отсутствует, когда недоступно значимое время отклика (как может быть в случае определенных условий ошибки, таких как неправильно настроенный пошаговый сценарий).  | 
по желанию | 
| error | SyntheticMonitorError | Сообщение об ошибке шага синтетического монитора. | по желанию | 
Объект SyntheticMonitorError
Сообщение об ошибке шага синтетического монитора.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| code | integer | Код ошибки. | требуется | 
| message | sring | Сообщение об ошибке. | требуется | 
JSON-модель тела запроса
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
{
  "syntheticEngineName": "string",
  "syntheticEngineIconUrl": "string",
  "messageTimestamp": 1,
  "locations": [
    {
      "id": "string",
      "name": "string",
      "ip": "string"
    }
  ],
  "tests": [
    {
      "id": "string",
      "title": "string",
      "description": "string",
      "testSetup": "string",
      "expirationTimestamp": 1,
      "drilldownLink": "string",
      "editLink": "string",
      "enabled": true,
      "deleted": true,
      "locations": [
        {
          "id": "string",
          "enabled": true
        }
      ],
      "steps": [
        {
          "id": 1,
          "title": "string"
        }
      ],
      "scheduleIntervalInSeconds": 1,
      "noDataTimeout": 1
    }
  ],
  "testResults": [
    {
      "id": "string",
      "totalStepCount": 1,
      "locationResults": [
        {
          "id": "string",
          "startTimestamp": 1,
          "successRate": 1,
          "success": true,
          "responseTimeMillis": 1,
          "stepResults": [
            {
              "id": 1,
              "startTimestamp": 1,
              "responseTimeMillis": 1,
              "error": {
                "code": 1,
                "message": "string"
              }
            }
          ]
        }
      ]
    }
  ]
}
Ответ
Коды ответов
| Код | Тип | Описание | 
|---|---|---|
| 204 | Успех. Информация принимается и сохраняется. | |
| 400 | ErrorEnvelope | Не удалось. Ввод недействителен. | 
Пример
В этом примере запрос отправляет следующие данные из стороннего синтетического движка Моя сторонняя синтетическая система в Ключ-АСТРОМ:
- Три локации: Linz1 , Linz2 и Linz3 .
 - Два монитора: пример синтетического монитора — 1 и пример синтетического монитора — 2 , каждый из которых содержит три шага и запускается из двух мест.
 - Один результат на шаг, на место, для каждого монитора.
 
Мониторы имеют следующие параметры:
| пример синтетического монитора - 1 | пример синтетического монитора - 2 | |
|---|---|---|
| Частота | 300 секунд (5 минут) | 300 секунд (5 минут) | 
| Места | Linz1
 Linz2  | 
Linz2
 Linz3  | 
| Шаги | Шаг 1-1
 Шаг 1-2 Шаг 1-3  | 
Шаг 2-1
 Шаг 2-2 Шаг 3-3  | 
Пример синтетического монитора — 1 монитор имеет следующее время отклика в миллисекундах:
| Linz1 | Linz2 | |
|---|---|---|
| Шаг 1-1 | 7790 | 2075 | 
| Шаг 1-2 | 2073 | 4079 | 
| Шаг 1-3 | 8650 | 3937 | 
Пример синтетического монитора — 2 монитора имеют следующие значения времени отклика в миллисекундах:
| Linz2 | Linz3 | |
|---|---|---|
| Шаг 2-1 | 2200 | 9123 | 
| Шаг 2-2 | 6903 | 9722 | 
| Шаг 2-3 | 4821 | 1717 | 
Маркер API передается в заголовке авторизации .
Поскольку тело запроса длинное, оно усечено в этом примере раздела Curl . Полное тело см. в разделе Тело запроса . Вы можете загрузить тело запроса в формате JSON, чтобы выполнить образец запроса в своей среде. Обязательно замените временные метки на недавние, иначе результаты будут слишком старыми.
Curl
curl -X POST \
  https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/ext/tests \
  -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/ext/tests
Тело запроса
{
  "syntheticEngineName": "My third-party synthetic",
  "syntheticEngineIconUrl": "https://static.thenounproject.com/png/1745-200.png",
  "messageTimestamp": 1543572265528,
  "locations": [
    {
      "id": "Linz1",
      "ip": "127.0.0.1",
      "name": "Linz1"
    },
    {
      "id": "Linz2",
      "ip": "127.0.0.2",
      "name": "Linz2"
    },
    {
      "id": "Linz3",
      "ip": "127.0.0.3",
      "name": "Linz3"
    }
  ],
  "tests": [
    {
      "id": "3rdPartySyntheticMonitor1",
      "title": "example of synthetic monitor - 1",
      "scheduleIntervalInSeconds": 300,
      "locations": [
        {
          "id": "Linz1"
        },
        {
          "id": "Linz2"
        }
      ],
      "steps": [
        {
          "id": 1,
          "title": "Step1-1"
        },
        {
          "id": 2,
          "title": "Step1-2"
        },
        {
          "id": 3,
          "title": "Step1-3"
        }
      ]
    },
    {
      "id": "3rdPartySyntheticMonitor2",
      "title": "example of synthetic monitor - 2",
      "scheduleIntervalInSeconds": 300,
      "locations": [
        {
          "id": "Linz2"
        },
        {
          "id": "Linz3"
        }
      ],
      "steps": [
        {
          "id": 1,
          "title": "Step2-1"
        },
        {
          "id": 2,
          "title": "Step2-2"
        },
        {
          "id": 3,
          "title": "Step2-3"
        }
      ]
    }
  ],
  "testResults": [
    {
      "id": "3rdPartySyntheticMonitor1",
      "totalStepCount": 3,
      "locationResults": [
        {
          "id": "Linz1",
          "startTimestamp": 1543572262538,
          "success": true,
          "stepResults": [
            {
              "id": 1,
              "startTimestamp": 1543572262538,
              "responseTimeMillis": 7790
            },
            {
              "id": 2,
              "startTimestamp": 1543572262538,
              "responseTimeMillis": 2073
            },
            {
              "id": 3,
              "startTimestamp": 1543572262538,
              "responseTimeMillis": 8650
            }
          ]
        },
        {
          "id": "Linz2",
          "startTimestamp": 1543572262548,
          "success": true,
          "stepResults": [
            {
              "id": 1,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 2075
            },
            {
              "id": 2,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 4079
            },
            {
              "id": 3,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 3937
            }
          ]
        }
      ]
    },
    {
      "id": "3rdPartySyntheticMonitor2",
      "totalStepCount": 3,
      "locationResults": [
        {
          "id": "Linz2",
          "startTimestamp": 1543572262548,
          "success": true,
          "stepResults": [
            {
              "id": 1,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 2200
            },
            {
              "id": 2,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 6903
            },
            {
              "id": 3,
              "startTimestamp": 1543572262548,
              "responseTimeMillis": 4821
            }
          ]
        },
        {
          "id": "Linz3",
          "startTimestamp": 1543572262558,
          "success": true,
          "stepResults": [
            {
              "id": 1,
              "startTimestamp": 1543572262558,
              "responseTimeMillis": 9123
            },
            {
              "id": 2,
              "startTimestamp": 1543572262558,
              "responseTimeMillis": 9722
            },
            {
              "id": 3,
              "startTimestamp": 1543572262558,
              "responseTimeMillis": 1717
            }
          ]
        }
      ]
    }
  ]
}
Код ответа
204
Результат
Подсветка показывает параметры, переданные в запросе.