PUT монитор
Обновляет указанный монитор.
Конфигурация монитора передается через его JSON-скрипт.
Вы можете скопировать сценарий существующего монитора и настроить его по мере необходимости.
| PUT | Managed | https://{your-domain}/e/{your-environment-id}/api/v1/synthetic/monitors/{monitorId}
 | 
| Среда ActiveGate | 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
Тег с источником объекта Dynatrace.
| Элемент | Тип | Описание | Необходимость | 
|---|---|---|---|
| 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.dynatrace.com/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.dynatrace.com/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": "dynatrace.com",
  "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.dynatrace.com\"",
        "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