Ресурс google_project_alert_policy
Синтаксис
Для проверки ресурса Google AlertPolicy используется google_project_alert_policy
Примеры
describe.one do
google_project_alert_policies(project: 'chef-gcp-inspec').policy_names.each do |policy_name|
describe google_project_alert_policy(project: 'chef-gcp-inspec', name: policy_name.split('/').last) 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 правильное
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_channels- Определяет каналы уведомлений, на которые должны отправляться уведомления при открытии или закрытии инцидентов или при возникновении новых нарушений в уже открытом инциденте. Каждый элемент этого массива соответствует полю name в каждом из объектов NotificationChannel, возвращаемых методом notificationChannels.list. Синтаксис записей в этом поле:
projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID] user_labels
- Это поле предназначено для организации и идентификации объектов AlertPolicy. Поле может содержать до 64 записей. Каждый ключ и значение ограничены 63 символами Юникода или 128 байтами, в зависимости от меньшего значения. Метки и значения могут содержать только строчные буквы, цифры, символы подчеркивания и дефисы. Ключи должны начинаться с буквы.
documentation- Короткое имя или фраза, используемая для идентификации политики в панелях мониторинга, уведомлениях и инцидентах. Чтобы избежать путаницы, не используйте одно и то же отображаемое имя для нескольких политик в одном проекте. Имя ограничено 512 символами Юникода.
content- Текст документации, интерпретируемый в соответствии с mimeType. Содержание не должно превышать 8192 символов Юникода и не должно превышать 10240 байтов при кодировании в формате UTF-8, в зависимости от меньшего значения.
mime_type- Формат поля содержимого. В настоящее время поддерживается только значение «text/markdown».
Разрешения GCP
Убедитесь, что для текущего проекта включен API мониторинга Stackdriver.
© 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/