google_project_alert_policy ресурс
Синтаксис
Для проверки ресурса Google AlertPolicy используется google_project_alert_policy
Примеры
describe.one do
google_project_alert_policies(project: 'chef-gcp-inspec').policy_names do |policy_name|
describe google_project_alert_policy(project: 'chef-gcp-inspec', name: policy_name) do
it { should exist }
its('display_name') { should cmp 'Display'}
its('combiner') { should cmp 'OR'}
it { should be_enabled }
end
end
end
Проверка, что политика оповещения GCP включена
describe google_project_alert_policy(policy: 'spaterson', name: '9271751234503117449') do
it { should be_enabled }
end
Проверка правильности имени отображения политики оповещения GCP compute
describe google_project_alert_policy(policy: 'spaterson-project', name: '9271751234503117449') do
its('display_name') { should eq 'policy name' }
end
Свойства
Свойства, доступные для ресурса google_project_alert_policy:
name- Уникальное имя ресурса этой политики. Синтаксис: projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]
display_name- Короткое имя или фраза для идентификации политики в панелях мониторинга, уведомлениях и инцидентах. Для избежания путаницы не используйте одно и то же имя отображения для нескольких политик в одном проекте. Длина имени ограничена 512 символами Юникода.
combiner- Как комбинировать результаты нескольких условий, чтобы определить, должен ли быть открыт инцидент.
Возможные значения:
- AND
- OR
- AND_WITH_MATCHING_RESOURCE
creation_record- Только для чтения. Запись о создании политики оповещения. Если предоставлено в вызове создания или обновления, это поле будет проигнорировано.
mutate_time- Время изменения.
mutated_by- Электронный адрес пользователя, совершившего изменение.
enabled- Включена ли политика. По умолчанию — true.
conditions- Список условий для политики. Условия объединяются с помощью AND или OR в зависимости от поля combiner. Если объединённые условия оцениваются как true, создаётся инцидент. Политика может содержать от одного до шести условий.
condition_absent- Условие, проверяющее, продолжает ли временной ряд получать новые данные.
aggregations- Определяет выравнивание точек данных во временных рядах, а также способ объединения полученных временных рядов (например, агрегирование нескольких потоков по каждому ресурсу в один поток для каждого ресурса или агрегирование потоков по всем членам группы ресурсов). Несколько агрегаций применяются в указанном порядке.
per_series_aligner- Способ выравнивания отдельных временных рядов. Не все функции выравнивания могут быть применены ко всем временным рядам, в зависимости от типа метрики и типа значения исходного временного ряда. Выравнивание может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения кросс-временного сокращения. Если указан crossSeriesReducer, то perSeriesAligner должен быть указан и не равен ALIGN_NONE, а alignmentPeriod должен быть указан; в противном случае возвращается ошибка.
Возможные значения:
- ALIGN_NONE
- ALIGN_DELTA
- ALIGN_RATE
- ALIGN_INTERPOLATE
- ALIGN_NEXT_OLDER
- ALIGN_MIN
- ALIGN_MAX
- ALIGN_MEAN
- ALIGN_COUNT
- ALIGN_SUM
- ALIGN_STDDEV
- ALIGN_COUNT_TRUE
- ALIGN_COUNT_FALSE
- ALIGN_FRACTION_TRUE
- ALIGN_PERCENTILE_99
- ALIGN_PERCENTILE_95
- ALIGN_PERCENTILE_50
- ALIGN_PERCENTILE_05
- ALIGN_PERCENT_CHANGE
group_by_fields- Набор полей для сохранения при указании crossSeriesReducer. groupByFields определяют, как временные ряды разделяются на подмножества перед применением агрегационной функции. Каждое подмножество содержит временные ряды, имеющие одинаковое значение для каждого из группирующих полей. Каждый отдельный временной ряд является членом ровно одного подмножества. crossSeriesReducer применяется к каждому подмножеству временных рядов. Невозможно сокращать по разным типам ресурсов, поэтому это поле неявно содержит resource.type. Поля, не указанные в groupByFields, агрегируются. Если groupByFields не указано и все временные ряды имеют одинаковый тип ресурса, то временные ряды агрегируются в один выходной временной ряд. Если crossSeriesReducer не определен, это поле игнорируется.
alignment_period- Период выравнивания для выравнивания по каждому временному ряду. Если указан, alignmentPeriod должен быть не менее 60 секунд. После выравнивания по каждому временному ряду каждый временной ряд будет содержать точки данных только на границах периода. Если perSeriesAligner не указан или равен ALIGN_NONE, то это поле игнорируется. Если perSeriesAligner указан и не равен ALIGN_NONE, то это поле должно быть определено; в противном случае возвращается ошибка.
cross_series_reducer- Способ объединения временных рядов. Не все функции редукции могут быть применены ко всем временным рядам, в зависимости от типа метрики и типа значения исходного временного ряда. Редукция может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения кросс-временного сокращения. Если указан crossSeriesReducer, то perSeriesAligner должен быть указан и не равен ALIGN_NONE, а alignmentPeriod должен быть указан; в противном случае возвращается ошибка.
Возможные значения:
- REDUCE_NONE
- REDUCE_MEAN
- REDUCE_MIN
- REDUCE_MAX
- REDUCE_SUM
- REDUCE_STDDEV
- REDUCE_COUNT
- REDUCE_COUNT_TRUE
- REDUCE_COUNT_FALSE
- REDUCE_FRACTION_TRUE
- REDUCE_PERCENTILE_99
- REDUCE_PERCENTILE_95
- REDUCE_PERCENTILE_50
- REDUCE_PERCENTILE_05
trigger- Количество/процент временных рядов, для которых должно выполняться сравнение, чтобы условие сработало. Если не указано, условие сработает, если сравнение выполняется для любого из временных рядов, определённых фильтром и агрегациями.
percent- Процент временных рядов, которые должны не соответствовать предикату, чтобы условие сработало.
count- Абсолютное число временных рядов, которые должны не соответствовать предикату, чтобы условие сработало.
duration- Время, в течение которого временной ряд должен не сообщать новые данные, чтобы считаться неисправным. В настоящее время поддерживаются только значения, кратные минуте — например, 60s, 120s или 300s.
filter- Фильтр, определяющий, какие временные ряды должны быть сравнены с порогом. Фильтр похож на тот, который указан в запросе MetricService.ListTimeSeries (этот вызов полезен для проверки временных рядов, которые будут извлечены/обработаны), и должен указывать тип метрики, и необязательно может содержать ограничения на тип ресурса, метки ресурса и метки метрики. Длина этого поля не должна превышать 2048 символов Юникода.
name- Уникальное имя ресурса этого условия. Его синтаксис: projects/[PROJECT_ID]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]. [CONDITION_ID] назначается Stackdriver Monitoring при создании условия как части новой или обновлённой политики оповещения.
condition_threshold
- Условие, сравнивающее временной ряд с пороговым значением.
threshold_value- Значение, с которым сравнивается временной ряд.
denominator_filter- Фильтр, определяющий временной ряд, который будет использоваться в качестве знаменателя отношения, которое будет сравниваться с пороговым значением. Если задан denominator_filter, временной ряд, указанный в поле filter, будет использоваться в качестве числителя. Фильтр аналогичен фильтру, указанному в запросе MetricService.ListTimeSeries (этот запрос полезен для проверки временных рядов, которые будут извлечены/обработаны) и должен указывать тип метрики и, необязательно, ограничения на тип ресурса, метки ресурса и метки метрики. Длина этого поля не должна превышать 2048 символов Юникода.
denominator_aggregations- Указывает выравнивание точек данных во временных рядах, выбранных полем denominatorFilter, а также способ объединения извлеченных временных рядов (например, при агрегации нескольких потоков на каждом ресурсе в один поток для каждого ресурса или при агрегации потоков по всем членам группы ресурсов). При вычислении отношений поля aggregations и denominator_aggregations должны использовать тот же период выравнивания и генерировать временные ряды с одинаковой периодичностью и метками. Это поле аналогично полю в запросе MetricService.ListTimeSeries. Рекомендуется использовать метод ListTimeSeries при отладке этого поля.
per_series_aligner- Подход, используемый для выравнивания отдельных временных рядов. Не все функции выравнивания могут быть применены ко всем временным рядам, в зависимости от типа метрики и типа значения исходных временных рядов. Выравнивание может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения межвременного сокращения рядов. Если задан crossSeriesReducer, то должен быть задан perSeriesAligner и не равен ALIGN_NONE, а также должен быть задан alignmentPeriod; в противном случае возвращается ошибка.
Возможные значения:
- ALIGN_NONE
- ALIGN_DELTA
- ALIGN_RATE
- ALIGN_INTERPOLATE
- ALIGN_NEXT_OLDER
- ALIGN_MIN
- ALIGN_MAX
- ALIGN_MEAN
- ALIGN_COUNT
- ALIGN_SUM
- ALIGN_STDDEV
- ALIGN_COUNT_TRUE
- ALIGN_COUNT_FALSE
- ALIGN_FRACTION_TRUE
- ALIGN_PERCENTILE_99
- ALIGN_PERCENTILE_95
- ALIGN_PERCENTILE_50
- ALIGN_PERCENTILE_05
- ALIGN_PERCENT_CHANGE
group_by_fields- Набор полей, которые необходимо сохранить при заданном crossSeriesReducer. Поля groupByFields определяют, как временные ряды разбиваются на подмножества до применения функции агрегации. Каждое подмножество содержит временные ряды, имеющие одинаковое значение для каждого из полей группировки. Каждый отдельный временной ряд является членом ровно одного подмножества. crossSeriesReducer применяется к каждому подмножеству временных рядов. Сведение по разным типам ресурсов невозможно, поэтому это поле неявно содержит resource.type. Поля, не указанные в groupByFields, агрегируются. Если groupByFields не указано и все временные ряды имеют один и тот же тип ресурса, то временные ряды агрегируются в один выходной временной ряд. Если crossSeriesReducer не определен, это поле игнорируется.
alignment_period- Период выравнивания для выравнивания по временным рядам. Если задано, alignmentPeriod должно быть не менее 60 секунд. После выравнивания по временным рядам каждый временной ряд будет содержать точки данных только на границах периода. Если perSeriesAligner не указано или равно ALIGN_NONE, то это поле игнорируется. Если perSeriesAligner задано и не равно ALIGN_NONE, то это поле должно быть определено; в противном случае возвращается ошибка.
cross_series_reducer- Подход, используемый для объединения временных рядов. Не все функции редукции могут быть применены ко всем временным рядам в зависимости от типа метрики и типа значения исходных временных рядов. Редукция может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения межвременного сокращения рядов. Если задан crossSeriesReducer, то должен быть задан perSeriesAligner и не равен ALIGN_NONE, а также должен быть задан alignmentPeriod; в противном случае возвращается ошибка.
Возможные значения:
- REDUCE_NONE
- REDUCE_MEAN
- REDUCE_MIN
- REDUCE_MAX
- REDUCE_SUM
- REDUCE_STDDEV
- REDUCE_COUNT
- REDUCE_COUNT_TRUE
- REDUCE_COUNT_FALSE
- REDUCE_FRACTION_TRUE
- REDUCE_PERCENTILE_99
- REDUCE_PERCENTILE_95
- REDUCE_PERCENTILE_50
- REDUCE_PERCENTILE_05
duration- Длительность времени, в течение которой временной ряд должен нарушать порог, чтобы считаться неисправным. В настоящее время поддерживаются только значения, кратные минуте, например, 0, 60, 120 или 300 секунд. Если задано неверное значение, будет возвращена ошибка. При выборе продолжительности полезно учитывать частоту базовых данных временного ряда (которая также может изменяться в результате выравниваний, указанных в поле aggregations); хорошая продолжительность достаточна для того, чтобы один выброс не генерировал ложные срабатывания, но достаточно коротка для того, чтобы нездоровые состояния были быстро обнаружены и на них были отправлены уведомления.
comparison- Сравнение, которое нужно применить между временным рядом (указанным filter и aggregation) и пороговым значением (указанным threshold_value). Сравнение применяется к каждому временному ряду, при этом временной ряд стоит слева, а порог - справа. В настоящее время поддерживаются только COMPARISON_LT и COMPARISON_GT.
Возможные значения:
- COMPARISON_GT
- COMPARISON_GE
- COMPARISON_LT
- COMPARISON_LE
- COMPARISON_EQ
- COMPARISON_NE
trigger- Количество/процент временных рядов, для которых должно выполняться сравнение, чтобы условие сработало. Если не указано, условие сработает, если сравнение истинно для любого из временных рядов, которые были определены filter и aggregations, или для отношения, если заданы denominator_filter и denominator_aggregations.
percent- Процент временных рядов, которые должны не удовлетворять предикату для срабатывания условия.
count- Абсолютное количество временных рядов, которые должны не удовлетворять предикату для срабатывания условия.
aggregations- Указывает выравнивание точек данных в отдельных временных рядах, а также способ объединения извлеченных временных рядов (например, при агрегации нескольких потоков на каждом ресурсе в один поток для каждого ресурса или при агрегации потоков по всем членам группы ресурсов). Несколько агрегаций применяются в указанном порядке. Это поле аналогично полю в запросе MetricService.ListTimeSeries. Рекомендуется использовать метод ListTimeSeries при отладке этого поля.
per_series_aligner- Подход, используемый для выравнивания отдельных временных рядов. Не все функции выравнивания могут быть применены ко всем временным рядам, в зависимости от типа метрики и типа значения исходных временных рядов. Выравнивание может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения межвременного сокращения рядов. Если задан crossSeriesReducer, то должен быть задан perSeriesAligner и не равен ALIGN_NONE, а также должен быть задан alignmentPeriod; в противном случае возвращается ошибка.
Возможные значения:
- ALIGN_NONE
- ALIGN_DELTA
- ALIGN_RATE
- ALIGN_INTERPOLATE
- ALIGN_NEXT_OLDER
- ALIGN_MIN
- ALIGN_MAX
- ALIGN_MEAN
- ALIGN_COUNT
- ALIGN_SUM
- ALIGN_STDDEV
- ALIGN_COUNT_TRUE
- ALIGN_COUNT_FALSE
- ALIGN_FRACTION_TRUE
- ALIGN_PERCENTILE_99
- ALIGN_PERCENTILE_95
- ALIGN_PERCENTILE_50
- ALIGN_PERCENTILE_05
- ALIGN_PERCENT_CHANGE
group_by_fields- Набор полей, которые необходимо сохранить при заданном crossSeriesReducer. Поля groupByFields определяют, как временные ряды разбиваются на подмножества до применения функции агрегации. Каждое подмножество содержит временные ряды, имеющие одинаковое значение для каждого из полей группировки. Каждый отдельный временной ряд является членом ровно одного подмножества. crossSeriesReducer применяется к каждому подмножеству временных рядов. Сведение по разным типам ресурсов невозможно, поэтому это поле неявно содержит resource.type. Поля, не указанные в groupByFields, агрегируются. Если groupByFields не указано и все временные ряды имеют один и тот же тип ресурса, то временные ряды агрегируются в один выходной временной ряд. Если crossSeriesReducer не определен, это поле игнорируется.
alignment_period- Период выравнивания для выравнивания по временным рядам. Если задано, alignmentPeriod должно быть не менее 60 секунд. После выравнивания по временным рядам каждый временной ряд будет содержать точки данных только на границах периода. Если perSeriesAligner не указано или равно ALIGN_NONE, то это поле игнорируется. Если perSeriesAligner задано и не равно ALIGN_NONE, то это поле должно быть определено; в противном случае возвращается ошибка.
cross_series_reducer- Подход, используемый для объединения временных рядов. Не все функции редукции могут быть применены ко всем временным рядам в зависимости от типа метрики и типа значения исходных временных рядов. Редукция может изменить тип метрики или тип значения временного ряда. Данные временных рядов должны быть выровнены для выполнения межвременного сокращения рядов. Если задан crossSeriesReducer, то должен быть задан perSeriesAligner и не равен ALIGN_NONE, а также должен быть задан alignmentPeriod; в противном случае возвращается ошибка.
Возможные значения:
- REDUCE_NONE
- REDUCE_MEAN
- REDUCE_MIN
- REDUCE_MAX
- REDUCE_SUM
- REDUCE_STDDEV
- REDUCE_COUNT
- REDUCE_COUNT_TRUE
- REDUCE_COUNT_FALSE
- REDUCE_FRACTION_TRUE
- REDUCE_PERCENTILE_99
- REDUCE_PERCENTILE_95
- REDUCE_PERCENTILE_50
- REDUCE_PERCENTILE_05
filter- Фильтр, определяющий, какие временные ряды должны быть сравнены с порогом. Фильтр аналогичен фильтру, указанному в запросе MetricService.ListTimeSeries (этот запрос полезен для проверки временных рядов, которые будут извлечены/обработаны) и должен указывать тип метрики и, необязательно, ограничения на тип ресурса, метки ресурса и метки метрики. Длина этого поля не должна превышать 2048 символов Юникода.
- Условие, сравнивающее временной ряд с пороговым значением.
display_name- Короткое название или фраза, используемая для идентификации условия в панелях мониторинга, уведомлениях и инцидентах. Чтобы избежать путаницы, не используйте одно и то же имя для нескольких условий в одной политике.
notification_channelsprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
user_labels- Это поле предназначено для организации и идентификации объектов AlertPolicy. Поле может содержать до 64 записей. Каждый ключ и значение ограничены 63 символами Юникода или 128 байтами, в зависимости от того, что меньше. Метки и значения могут содержать только строчные буквы, цифры, символы подчеркивания и дефисы. Ключи должны начинаться с буквы.
documentation- Короткое имя или фраза, используемая для идентификации политики в панелях мониторинга, уведомлениях и инцидентах. Чтобы избежать путаницы, не используйте одно и то же отображаемое имя для нескольких политик в одном проекте. Имя ограничено 512 символами Юникода.
content- Текст документации, интерпретируемый в соответствии с mimeType. Содержимое не должно превышать 8 192 символов Юникода и не должно превышать 10 240 байтов при кодировании в формате UTF-8, в зависимости от того, что меньше.
mime_type- Формат поля содержимого. В настоящее время поддерживается только значение «text/markdown».
Разрешения GCP
Убедитесь, что для текущего проекта включен API Stackdriver Monitoring.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_project_alert_policy/