Получение дескриптора метрики: различия между версиями

Материал из Dynatrace
(Новая страница: «Получает параметры указанной метрики. Запрос создает один из следующих типов полезной...»)
 
Строка 9: Строка 9:
Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка.
Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка.
{| class="wikitable"
{| class="wikitable"
| rowspan="3" |ПОЛУЧИТЬ
| rowspan="3" |GET
|Удалось
|Managed
|<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}</nowiki></code>
|<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}</nowiki></code>
|-
|-
|SaaS
|SaaS
|<code><nowiki>https://{your-environment-id}.live.dynatrace.com/api/v2/metrics/{metricKey}</nowiki></code>
|<code>https://{your-environment-id}.live.ruscomtech.ru<nowiki/>/api/v2/metrics/{metricKey}</code>
|-
|-
|Окружающая среда ActiveGate
|Окружающая среда АктивногоШлюза
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}</nowiki></code>
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}</nowiki></code>
|}
|}


== Аутентификация ==
== Аутентификация ==
Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение метрик ( <code>metrics.read</code>) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение метрик ( <code>metrics.read</code>) . Чтобы узнать, как его получить и использовать, см. раздел [[Токены и аутентификация (API)|Токены и аутентификация]] .


== Параметры ==
== Параметры ==
Строка 28: Строка 28:
!Тип
!Тип
!Описание
!Описание
!В
!In
!Необходимый
!Необходимость
|-
|-
|метрикей
|metricKey
|нить
|string
|Ключ требуемой метрики.
|Ключ требуемой метрики.


Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Dynatrace.
Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Ключ-АСТРОМ.
|дорожка
|path
|требуется
|требуется
|}
|}
Строка 49: Строка 49:
|-
|-
|200
|200
|Дескриптор метрики
|MetricDescriptor
|Успех
|Успех
|-
|-
Строка 63: Строка 63:
=== Объекты тела ответа ===
=== Объекты тела ответа ===


==== Объект _ <code>MetricDescriptor</code> ====
==== Объект <code>MetricDescriptor</code> ====
Дескриптор метрики.
Дескриптор метрики.
{| class="wikitable"
{| class="wikitable"
Строка 70: Строка 70:
!Описание
!Описание
|-
|-
|размерность
|dimensionCardinalities
|Количество элементов метрики [ ]
|MetricDimensionCardinality[]
|Количество элементов метрических измерений MINT.
|Количество элементов метрических измерений MINT.
|-
|-
|минимальное значение
|minimumValue
|количество
|number
|Минимально допустимое значение метрики.
|Минимально допустимое значение метрики.


Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|максимальное значение
|maximumValue
|количество
|number
|Максимально допустимое значение метрики.
|Максимально допустимое значение метрики.


Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|задержка
|latency
|целое число
|integer
|Задержка показателя в минутах.
|Задержка показателя в минутах.


Задержка — это ожидаемая задержка в отчетах (например, вызванная ограничениями поставщиков облачных услуг или других сторонних источников данных) между наблюдением за точкой данных метрики и ее доступностью в Dynatrace.
Задержка — это ожидаемая задержка в отчетах (например, вызванная ограничениями поставщиков облачных услуг или других сторонних источников данных) между наблюдением за точкой данных метрики и ее доступностью в Ключ-АСТРОМ.


Допустимый диапазон значений составляет от 1 до 60 минут.
Допустимый диапазон значений составляет от 1 до 60 минут.
Строка 96: Строка 96:
Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|разрешениеInfSupported
|resolutionInfSupported
|логический
|boolean
|Если установлено значение «true», разрешение=Inf может быть применено к запросу метрики.
|Если установлено значение «true», разрешение=Inf может быть применено к запросу метрики.
|-
|-
|unitDisplayFormat
|unitDisplayFormat
|нить
|string
|Необработанное значение хранится в битах или байтах. Пользовательский интерфейс может отображать его в следующих системах счисления:
|Необработанное значение хранится в битах или байтах. Пользовательский интерфейс может отображать его в следующих системах счисления:


Строка 118: Строка 118:
|-
|-
|rootCauseRelevant
|rootCauseRelevant
|логический
|boolean
|Метрика является ( <code>true</code>) или не является ( <code>false</code>) релевантной для основной причины.
|Метрика является ( <code>true</code>) или не является ( <code>false</code>) релевантной для основной причины.


Строка 126: Строка 126:
|-
|-
|dduBillable
|dduBillable
|логический
|boolean
|Если <code>true</code>использование метрики потребляет единицы данных Дэвиса .
|Если <code>true</code>использование метрики потребляет единицы данных Дэвиса .


Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|агрегация по умолчанию
|defaultAggregation
|Агрегирование показателей по умолчанию
|MetricDefaultAggregation
|Агрегирование метрики по умолчанию.
|Агрегирование метрики по умолчанию.
|-
|-
|lastWritten
|lastWritten
|целое число
|integer
|Отметка времени последней записи метрики.
|Отметка времени последней записи метрики.


Имеет значение <code>null</code>для метрических выражений или если данные никогда не записывались.
Имеет значение <code>null</code>для метрических выражений или если данные никогда не записывались.
|-
|-
|влияниеактуальный
|impactRelevant
|логический
|boolean
|Метрика является ( <code>true</code>) или не является ( <code>false</code>) релевантной для воздействия.
|Метрика является ( <code>true</code>) или не является ( <code>false</code>) релевантной для воздействия.


Строка 149: Строка 149:
Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|измерениеОпределения
|dimensionDefinitions
|Определение метрического измерения []
|MetricDimensionDefinition[]
|Точное разделение метрик (например, группа процессов и идентификатор процесса для некоторой метрики, связанной с процессом).
|Точное разделение метрик (например, группа процессов и идентификатор процесса для некоторой метрики, связанной с процессом).


Для загруженных показателей параметры, по которым не было данных за последние 15 дней, опускаются.
Для загруженных показателей параметры, по которым не было данных за последние 15 дней, опускаются.
|-
|-
|тип метриквалуе
|metricValueType
|Тип значения показателя
|MetricValueType
|Тип значения для метрики.
|Тип значения для метрики.
|-
|-
|теги
|tags
|строка []
|string []
|Теги, примененные к метрике.
|Теги, примененные к метрике.


Выражения показателей не возвращают это поле.
Выражения показателей не возвращают это поле.
|-
|-
|тип объекта
|entityType
|строка []
|string []
|Список допустимых основных типов сущностей для этой метрики. Может использоваться для <code>type</code>предиката в <code>entitySelector</code>.
|Список допустимых основных типов сущностей для этой метрики. Может использоваться для <code>type</code>предиката в <code>entitySelector</code>.
|-
|-
|идентификатор метрики
|metricId
|нить
|string
|Полный ключ метрики.
|Полный ключ метрики.


Если использовалось преобразование, оно отражается в ключе метрики.
Если использовалось преобразование, оно отражается в ключе метрики.
|-
|-
|метрическийселектор
|metricSelector
|нить
|string
|Селектор метрик, который используется при запросе метрики func:.
|Селектор метрик, который используется при запросе метрики func:.
|-
|-
|скаляр
|scalar
|логический
|boolean
|Указывает, разрешается ли метрическое выражение в скаляр ( <code>true</code>) или в ряд ( <code>false</code>). Скалярный результат всегда содержит одну точку данных. Количество точек данных в результате серии зависит от используемого разрешения.
|Указывает, разрешается ли метрическое выражение в скаляр ( <code>true</code>) или в ряд ( <code>false</code>). Скалярный результат всегда содержит одну точку данных. Количество точек данных в результате серии зависит от используемого разрешения.
|-
|-
|типы агрегации
|aggregationTypes
|строка []
|string []
|Список разрешенных агрегаций для этой метрики.
|Список разрешенных агрегаций для этой метрики.


Строка 199: Строка 199:
* <code>value</code>
* <code>value</code>
|-
|-
|показать имя
|displayName
|нить
|string
|Имя метрики в пользовательском интерфейсе.
|Имя метрики в пользовательском интерфейсе.
|-
|-
|описание
|description
|нить
|string
|Краткое описание метрики.
|Краткое описание метрики.
|-
|-
|преобразования
|transformations
|строка []
|string []
|Операторы преобразования, которые можно добавить к текущему списку преобразований.
|Операторы преобразования, которые можно добавить к текущему списку преобразований.


Строка 235: Строка 235:
* <code>toUnit</code>
* <code>toUnit</code>
|-
|-
|Ед. изм
|unit
|нить
|string
|Единица измерения.
|Единица измерения.
|-
|-
|предупреждения
|warnings
|строка []
|string []
|Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
|Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
|-
|-
|созданный
|created
|целое число
|integer
|Отметка времени создания метрики.
|Отметка времени создания метрики.


Строка 250: Строка 250:
|}
|}


==== Объект _ <code>MetricDimensionCardinality</code> ====
==== Объект <code>MetricDimensionCardinality</code> ====
Количество элементов измерения метрики.
Количество элементов измерения метрики.
{| class="wikitable"
{| class="wikitable"
Строка 257: Строка 257:
!Описание
!Описание
|-
|-
|родственник
|relative
|количество
|number
|Относительная кардинальность измерения, выраженная в процентах
|Относительная кардинальность измерения, выраженная в процентах
|-
|-
|оценивать
|estimate
|целое число
|integer
|Оценка количества элементов измерения.
|Оценка количества элементов измерения.
|-
|-
|ключ
|key
|нить
|string
|Ключ измерения.
|Ключ измерения.


Строка 272: Строка 272:
|}
|}


==== Объект _ <code>MetricDefaultAggregation</code> ====
==== Объект <code>MetricDefaultAggregation</code> ====
Агрегирование метрики по умолчанию.
Агрегирование метрики по умолчанию.
{| class="wikitable"
{| class="wikitable"
Строка 279: Строка 279:
!Описание
!Описание
|-
|-
|параметр
|parameter
|количество
|number
|Доставляемый процентиль. Допустимые значения находятся между <code>0</code>и <code>100</code>.
|Доставляемый процентиль. Допустимые значения находятся между <code>0</code>и <code>100</code>.


Применимо только к <code>percentile</code>типу агрегации.
Применимо только к <code>percentile</code>типу агрегации.
|-
|-
|тип
|type
|нить
|string
|Тип агрегации по умолчанию.
|Тип агрегации по умолчанию.


Строка 302: Строка 302:
|}
|}


==== Объект _ <code>MetricDimensionDefinition</code> ====
==== Объект <code>MetricDimensionDefinition</code> ====
Размерность метрики.
Размерность метрики.
{| class="wikitable"
{| class="wikitable"
Строка 309: Строка 309:
!Описание
!Описание
|-
|-
|показать имя
|displayName
|нить
|string
|Отображаемое имя измерения.
|Отображаемое имя измерения.
|-
|-
|имя
|name
|нить
|string
|Имя измерения.
|Имя измерения.
|-
|-
|ключ
|key
|нить
|string
|Ключ измерения.
|Ключ измерения.


Он должен быть уникальным в пределах метрики.
Он должен быть уникальным в пределах метрики.
|-
|-
|тип
|type
|нить
|string
|Тип измерения.
|Тип измерения.


Строка 335: Строка 335:
* <code>VOID</code>
* <code>VOID</code>
|-
|-
|индекс
|index
|целое число
|integer
|Уникальный индекс измерения, начинающийся с 0.
|Уникальный индекс измерения, начинающийся с 0.


Строка 342: Строка 342:
|}
|}


==== Объект _ <code>MetricValueType</code> ====
==== Объект <code>MetricValueType</code> ====
Тип значения для метрики.
Тип значения для метрики.
{| class="wikitable"
{| class="wikitable"
Строка 349: Строка 349:
!Описание
!Описание
|-
|-
|тип
|type
|нить
|string
|Тип значения метрики
|Тип значения метрики


Строка 423: Строка 423:
Ответ в <code>application/json</code>формате.
Ответ в <code>application/json</code>формате.


==== Завиток ====
==== Curl ====
  <code>curl -L -X GET '<nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/builtin:host.disk.avail'</nowiki> \
  <code>curl -L -X GET '<nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/builtin:host.disk.avail'</nowiki> \
  -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  -H 'Accept: application/json'</code>
  -H 'Accept: application/json'</code>


==== URL-адрес запроса ====
==== URL-адрес запроса ====
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/builtin:host.disk.avail</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/builtin:host.disk.avail</nowiki></code>


==== Тело ответа ====
==== Тело ответа ====

Версия 16:57, 7 октября 2022

Получает параметры указанной метрики.

Запрос создает один из следующих типов полезной нагрузки, в зависимости от значения заголовка запроса Accept :

  • application/json
  • text/csv; header=present— таблица CSV со строкой заголовка
  • text/csv; header=absent— таблица CSV без строки заголовка

Если с запросом не предоставлен заголовок Acceptapplication/json , возвращается полезная нагрузка.

GET Managed https://{your-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}
SaaS https://{your-environment-id}.live.ruscomtech.ru/api/v2/metrics/{metricKey}
Окружающая среда АктивногоШлюза https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics/{metricKey}

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

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

Параметры

Параметр Тип Описание In Необходимость
metricKey string Ключ требуемой метрики.

Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( :). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Ключ-АСТРОМ.

path требуется

Ответ

Коды ответов

Код Тип Описание
200 MetricDescriptor Успех
404 Метрика не найдена.
406 Неприемлимо. Запрошенный тип носителя не поддерживается. Проверьте заголовок Accept вашего запроса.

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

Объект MetricDescriptor

Дескриптор метрики.

Элемент Тип Описание
dimensionCardinalities MetricDimensionCardinality[] Количество элементов метрических измерений MINT.
minimumValue number Минимально допустимое значение метрики.

Выражения показателей не возвращают это поле.

maximumValue number Максимально допустимое значение метрики.

Выражения показателей не возвращают это поле.

latency integer Задержка показателя в минутах.

Задержка — это ожидаемая задержка в отчетах (например, вызванная ограничениями поставщиков облачных услуг или других сторонних источников данных) между наблюдением за точкой данных метрики и ее доступностью в Ключ-АСТРОМ.

Допустимый диапазон значений составляет от 1 до 60 минут.

Выражения показателей не возвращают это поле.

resolutionInfSupported boolean Если установлено значение «true», разрешение=Inf может быть применено к запросу метрики.
unitDisplayFormat string Необработанное значение хранится в битах или байтах. Пользовательский интерфейс может отображать его в следующих системах счисления:

Двоичный: 1 МБ = 1024 КиБ = 1 048 576 байт.

Десятичный: 1 МБ = 1000 КБ = 1 000 000 байт.

Если не задано, используется десятичная система.

Выражения показателей не возвращают это поле.

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

  • binary
  • decimal
rootCauseRelevant boolean Метрика является ( true) или не является ( false) релевантной для основной причины.

Метрика, относящаяся к первопричине, представляет собой надежный индикатор неисправного компонента.

Выражения показателей не возвращают это поле.

dduBillable boolean Если trueиспользование метрики потребляет единицы данных Дэвиса .

Выражения показателей не возвращают это поле.

defaultAggregation MetricDefaultAggregation Агрегирование метрики по умолчанию.
lastWritten integer Отметка времени последней записи метрики.

Имеет значение nullдля метрических выражений или если данные никогда не записывались.

impactRelevant boolean Метрика является ( true) или не является ( false) релевантной для воздействия.

Метрика, имеющая отношение к влиянию, сильно зависит от других метрик и изменений, поскольку базовая метрика первопричины изменилась.

Выражения показателей не возвращают это поле.

dimensionDefinitions MetricDimensionDefinition[] Точное разделение метрик (например, группа процессов и идентификатор процесса для некоторой метрики, связанной с процессом).

Для загруженных показателей параметры, по которым не было данных за последние 15 дней, опускаются.

metricValueType MetricValueType Тип значения для метрики.
tags string [] Теги, примененные к метрике.

Выражения показателей не возвращают это поле.

entityType string [] Список допустимых основных типов сущностей для этой метрики. Может использоваться для typeпредиката в entitySelector.
metricId string Полный ключ метрики.

Если использовалось преобразование, оно отражается в ключе метрики.

metricSelector string Селектор метрик, который используется при запросе метрики func:.
scalar boolean Указывает, разрешается ли метрическое выражение в скаляр ( true) или в ряд ( false). Скалярный результат всегда содержит одну точку данных. Количество точек данных в результате серии зависит от используемого разрешения.
aggregationTypes string [] Список разрешенных агрегаций для этой метрики.

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

  • auto
  • avg
  • count
  • max
  • median
  • min
  • percentile
  • sum
  • value
displayName string Имя метрики в пользовательском интерфейсе.
description string Краткое описание метрики.
transformations string [] Операторы преобразования, которые можно добавить к текущему списку преобразований.

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

  • asGauge
  • default
  • delta
  • evaluateModel
  • filter
  • fold
  • last
  • lastReal
  • limit
  • merge
  • names
  • parents
  • partition
  • rate
  • rollup
  • setUnit
  • smooth
  • sort
  • splitBy
  • timeshift
  • toUnit
unit string Единица измерения.
warnings string [] Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
created integer Отметка времени создания метрики.

Встроенные метрики и выражения метрик имеют значение null.

Объект MetricDimensionCardinality

Количество элементов измерения метрики.

Элемент Тип Описание
relative number Относительная кардинальность измерения, выраженная в процентах
estimate integer Оценка количества элементов измерения.
key string Ключ измерения.

Он должен быть уникальным в пределах метрики.

Объект MetricDefaultAggregation

Агрегирование метрики по умолчанию.

Элемент Тип Описание
parameter number Доставляемый процентиль. Допустимые значения находятся между 0и 100.

Применимо только к percentileтипу агрегации.

type string Тип агрегации по умолчанию.

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

  • auto
  • avg
  • count
  • max
  • median
  • min
  • percentile
  • sum
  • value

Объект MetricDimensionDefinition

Размерность метрики.

Элемент Тип Описание
displayName string Отображаемое имя измерения.
name string Имя измерения.
key string Ключ измерения.

Он должен быть уникальным в пределах метрики.

type string Тип измерения.

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

  • ENTITY
  • NUMBER
  • OTHER
  • STRING
  • VOID
index integer Уникальный индекс измерения, начинающийся с 0.

Добавление преобразований, таких как :names или :parents, может изменить индексы измерений. nullиспользуется для измерений метрики с гибкими измерениями, на которые можно ссылаться с помощью их ключа измерения, но у которых нет внутреннего порядка, который можно было бы использовать для индекса.

Объект MetricValueType

Тип значения для метрики.

Элемент Тип Описание
type string Тип значения метрики

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

  • error
  • score
  • unknown

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

{
  "metricId": "builtin:host.cpu.user:splitBy(\"dt.entity.host\"):max:fold",
  "displayName": "CPU user",
  "description": "Percentage of user-space CPU time currently utilized, per host.",
  "unit": "Percent",
  "dduBillable": false,
  "created": 1597400123451,
  "lastWritten": 1597400717783,
  "entityType": [
    "HOST"
  ],
  "aggregationTypes": [
    "auto",
    "value"
  ],
  "transformations": [
    "filter",
    "fold",
    "limit",
    "merge",
    "names",
    "parents",
    "timeshift",
    "rate",
    "sort",
    "last",
    "splitBy"
  ],
  "defaultAggregation": {
    "type": "value"
  },
  "dimensionDefinitions": [
    {
      "key": "dt.entity.host",
      "name": "Host",
      "displayName": "Host",
      "index": 0,
      "type": "ENTITY"
    }
  ],
  "tags": [],
  "metricValueType": {
    "type": "unknown"
  },
  "dimensionCardinalities": [
    {
      "key": "dt.entity.host",
      "estimate": 20,
      "relative": 0.2
    }
  ],
  "latency": 1,
  "scalar": false
}

Пример

В этом примере запрос запрашивает параметры трех метрик: Builtin:host.cpu.idle , Builtin:host.cpu.usage и Builtin:host.disk.avail .

Метрики встроенные:host.cpu.idle и встроенные:host.cpu.usage имеют один и тот же родительский элемент, и их селектор объединен в встроенный:host.cpu.(idle,usage) .

Ответ в application/jsonформате.

Curl

curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/builtin:host.disk.avail' \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
-H 'Accept: application/json'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/builtin:host.disk.avail

Тело ответа

{
  "metricId": "builtin:host.disk.avail",
  "displayName": "Disk available",
  "description": "",
  "unit": "Byte",
  "entityType": [
    "HOST"
  ],
  "aggregationTypes": [
    "auto",
    "avg",
    "max",
    "min"
  ],
  "transformations": [
    "filter",
    "fold",
    "merge",
    "names",
    "parents"
  ],
  "defaultAggregation": {
    "type": "avg"
  },
  "dimensionDefinitions": [
    {
      "key": "dt.entity.host",
      "name": "Host",
      "index": 0,
      "type": "ENTITY"
    },
    {
      "key": "dt.entity.disk",
      "name": "Disk",
      "index": 1,
      "type": "ENTITY"
    }
  ]
}

Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accepttext/csv; header=present на .

metricId,displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions
builtin:host.cpu.usage,CPU usage %,Percentage of CPU time currently utilized.,Percent,[HOST],"[auto, avg, max, min]","[filter, fold, merge, names, parents]",avg,[Host:ENTITY]

Код ответа

200