Обнаружение аномалий событий метрик API - POST событие

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

Создает новое правило события метрики.

Запрос создает и использует в качестве полезной нагрузки application/json формат.

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

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

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

Параметры

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

Параметр Тип Описание In Необходимость
body MetricEvent Тело JSON запроса. Содержит параметры нового события метрики. body по желанию

Объекты тела запроса

Объект MetricEvent

Конфигурация события метрики.

Элемент Тип Описание Необходимость
metadata ConfigurationMetadata Метаданные, полезные для отладки по желанию
id string Идентификатор события метрики. по желанию
metricId string Идентификатор метрики, оцениваемой событием метрики. по желанию
metricSelector string Селектор метрик, который должен быть выполнен. по желанию
name string Имя события метрики, отображаемое в пользовательском интерфейсе. требуется
description string Описание события метрики. требуется
aggregationType string Как точки данных метрики агрегируются для оценки.

Временные ряды должны поддерживать эту агрегацию.

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

  • AVG
  • COUNT
  • MAX
  • MEDIAN
  • MIN
  • P90
  • SUM
  • VALUE
по желанию
severity string Тип события, которое инициируется при нарушении порогового значения.

Тип CUSTOM_ALERTне связан с другими оповещениями. INFOТипа проблема не открывается .

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

  • AVAILABILITY
  • CUSTOM_ALERT
  • ERROR
  • INFO
  • PERFORMANCE
  • RESOURCE_CONTENTION
по желанию
enabled boolean Событие метрики включено ( true) или отключено ( false). требуется
disabledReason string Причина автоматического отключения.

Конфигурация NONEозначает, что она не была отключена автоматически.

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

  • METRIC_DEFINITION_INCONSISTENCY
  • NONE
  • TOO_MANY_DIMS
  • TOPX_FORCIBLY_DEACTIVATED
по желанию
warningReason string Причина предупреждения указана в конфиге.

В NONEконфигурации средств нет предупреждений.

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

  • NONE
  • TOO_MANY_DIMS
по желанию
alertingScope MetricEventAlertingScope[] Определяет область действия метрики. Допускается только один фильтр для каждого типа фильтра, за исключением тегов, где разрешено до 3. Фильтры объединяются конъюнкцией. по желанию
metricDimensions MetricEventDimensions[] Определяет параметры метрики для оповещения. Фильтры объединяются конъюнкцией. по желанию
monitoringStrategy MetricEventMonitoringStrategy Стратегия мониторинга для конфигурации события метрики.

Это базовая версия стратегии мониторинга, в зависимости от типа актуальный JSON может содержать дополнительные поля.

требуется
primaryDimensionKey string Определяет, какой ключ измерения следует использовать для alertingScope . по желанию
queryOffset integer Определяет смещение запроса для адаптации временных рамок оценки к известной задержке метрики. по желанию

Объект ConfigurationMetadata

Метаданные, полезные для отладки

Элемент Тип Описание Необходимость
configurationVersions integer[] Отсортированный список номеров версий конфигурации. по желанию
currentConfigurationVersions string[] Отсортированный список номеров версий конфигурации. по желанию
clusterVersion string Версия Ключ-АСТРОМ. по желанию

Объект MetricEventAlertingScope

Единый фильтр для области оповещения.

Фактический набор полей зависит от типа фильтра. Найдите список актуальных объектов в описании поля filterType или см. Обнаружение аномалий событий метрик API — JSON модель .

Элемент Тип Описание Необходимость
filterType string Определяет фактический набор полей в зависимости от значения. См. один из следующих объектов:
  • ENTITY_ID-> EntityIdAlertingScope
  • MANAGEMENT_ZONE-> ManagementZoneAlertingScope
  • TAG-> TagFilterAlertingScope
  • NAME-> NameAlertingScope
  • CUSTOM_DEVICE_GROUP_NAME-> CustomDeviceGroupNameAlertingScope
  • HOST_GROUP_NAME-> HostGroupNameAlertingScope
  • HOST_NAME-> HostNameAlertingScope
  • PROCESS_GROUP_ID-> ProcessGroupIdAlertingScope
  • PROCESS_GROUP_NAME-> ProcessGroupNameAlertingScope

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

  • CUSTOM_DEVICE_GROUP_NAME
  • ENTITY_ID
  • HOST_GROUP_NAME
  • HOST_NAME
  • MANAGEMENT_ZONE
  • NAME
  • PROCESS_GROUP_ID
  • PROCESS_GROUP_NAME
  • TAG
требуется

Объект MetricEventDimensions

Единый фильтр для измерений показателей.

Фактический набор полей зависит от типа фильтра. Найдите список актуальных объектов в описании поля filterType или см. Обнаружение аномалий событий метрик API — JSON модель .

Элемент Тип Описание Необходимость
filterType string Определяет фактический набор полей в зависимости от значения. См. один из следующих объектов:
  • ENTITY-> МетрикаEventEntityDimensions
  • STRING-> MetricEventStringDimensions

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

  • ENTITY
  • STRING
требуется
key string Ключ размеров на метрике. по желанию

Объект MetricEventMonitoringStrategy

Стратегия мониторинга для конфигурации события метрики.

Это базовая версия стратегии мониторинга, в зависимости от типа актуальный JSON может содержать дополнительные поля.

Элемент Тип Описание Необходимость
type string Определяет фактический набор полей в зависимости от значения. См. один из следующих объектов:
  • STATIC_THRESHOLD-> MetricEventStaticThresholdMonitoringStrategy
  • AUTO_ADAPTIVE_BASELINE-> MetricEventAutoAdaptiveBaselineMonitoringStrategy

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

  • AUTO_ADAPTIVE_BASELINE
  • STATIC_THRESHOLD
требуется

JSON-модель тела запроса

Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.

{
  "metadata": {
    "configurationVersions": [
      4,
      2
    ],
    "clusterVersion": "Mock version"
  },
  "metricId": "com.astromkey.builtin:host.disk.bytesread",
  "name": "My metric event",
  "description": "This is the description for my metric event.",
  "aggregationType": "AVG",
  "severity": "CUSTOM_ALERT",
  "alertingScope": [
    {
      "filterType": "ENTITY_ID",
      "entityId": "HOST-000000000001E240"
    },
    {
      "filterType": "TAG",
      "tagFilter": {
        "context": "CONTEXTLESS",
        "key": "someKey",
        "value": "someValue"
      }
    }
  ],
  "metricDimensions": [
    {
      "filterType": "ENTITY",
      "key": "dt.entity.disk",
      "nameFilter": {
        "value": "diskName",
        "operator": "EQUALS"
      }
    }
  ],
  "enabled": true,
  "disabledReason": "NONE",
  "warningReason": "NONE",
  "monitoringStrategy": {
    "type": "STATIC_THRESHOLD",
    "alertCondition": "ABOVE",
    "samples": 5,
    "violatingSamples": 3,
    "dealertingSamples": 5,
    "threshold": 80,
    "unit": "KILO_BYTE_PER_SECOND"
  }
}

Ответ

Коды ответов

Код Тип Описание
201 EntityShortRepresentation Успех. Cобытие метрики создано. Ответ содержит идентификатор и имя вновь созданного события метрики.
400 ErrorEnvelope Не удалось. Ввод недействителен.

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

Объект EntityShortRepresentation

Краткое представление объекта Ключ-АСТРОМ.

Элемент Тип Описание
id string Идентификатор объекта Ключ-АСТРОМ.
name string Имя объекта Ключ-АСТРОМ.
description string Краткое описание объекта Ключ-АСТРОМ.

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

{
  "id": "6a98d7bc-abb9-44f8-ae6a-73e68e71812a",
  "name": "Astromkey entity",
  "description": "Astromkey entity for the REST API example"
}

Проверка полезной нагрузки

Мы рекомендуем вам проверить полезную нагрузку перед ее отправкой с фактическим запросом. Код ответа 204 указывает на действительную полезную нагрузку.

Запрос использует в качестве полезной нагрузки application/json формат.

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

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

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

Ответ

Коды ответов

Код Тип Описание
204 Подтверждено. Представленная конфигурация действительна. Ответ не имеет тела.
400 ErrorEnvelope Не удалось. Ввод недействителен.

Пример

В этом примере запрос создает настраиваемое оповещение , которое срабатывает, если свободное место на диске падает ниже 3% в 3 из 5 выборок. Область оповещения — все хосты.

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

Curl

curl -X POST \
  https://mySampleEnv.live.ruscomtech.ru/api/config/v1/anomalyDetection/metricEvents \
  -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  -H 'Content-Type: application/json' \
  -d '{
  "metricId": "com.astromkey.builtin:host.disk.freespacepercentage",
  "name": "Low disk space",
  "description": "The available disk space is below 3%",
  "aggregationType": "AVG",
  "eventType": "CUSTOM_ALERT",
  "alertCondition": "BELOW",
  "samples": 5,
  "violatingSamples": 3,
  "dealertingSamples": 5,
  "threshold": 3,
  "enabled": true,
  "tagFilters": []
}
'

URL-адрес запроса

https://mySampleEnv.live.ruscomtech.ru/api/config/v1/anomalyDetection/metricEvents

Тело запроса

{
  "metricId": "com.astromkey.builtin:host.disk.freespacepercentage",
  "name": "Low disk space",
  "description": "The available disk space is below 3%",
  "aggregationType": "AVG",
  "eventType": "CUSTOM_ALERT",
  "alertCondition": "BELOW",
  "samples": 5,
  "violatingSamples": 3,
  "dealertingSamples": 5,
  "threshold": 3,
  "enabled": true,
  "tagFilters": []
}

Тело ответа

{
  "id": "1b06b18a-82df-4e18-a4aa-d4543b227734",
  "name": "Low disk space",
  "description": "The available disk space is below 3%"
}

Код ответа

204

Результат

Новое правило выглядит так в пользовательском интерфейсе:

Metric-events2.png