Ресурс google_project_metric
Синтаксис
Для проверки ресурса Google Metric используется google_project_metric
Примеры
describe google_project_metric(project: 'chef-gcp-inspec', name: 'some/metric') do
it { should exist }
its('filter') { should cmp 'resource.type=gae_app AND severity>=ERROR' }
its('metric_descriptor.metric_kind') { should cmp 'DELTA' }
its('metric_descriptor.value_type') { should cmp 'INT64' }
end
describe google_project_metric(project: 'chef-gcp-inspec', name: 'nonexistent') do
it { should_not exist }
end
Проверка существования метрики GCP проекта
describe google_project_metric(project: 'chef-inspec-gcp', metric: 'metric_name') do
it { should exist }
end
Проверка, что у зоны GCP compute есть ожидаемая платформа CPU
describe google_project_metric(project: 'chef-inspec-gcp', metric: 'metric_name') do
its('filter') { should eq "(protoPayload.serviceName=\"cloudresourcemanager.googleapis.com\")" }
end
Свойства
Свойства, доступные для ресурса google_project_metric:
name- Идентификатор метрики, назначенный клиентом. Примеры: “error*count”, “nginx/requests”. Идентификаторы метрик ограничены 100 символами и могут содержать только символы A-Z, a-z, 0-9 и специальные символы *-.,+!*',()%/. Дробная черта (/) обозначает иерархию имен и не может быть первым символом имени.
description- Описание этой метрики, используемое в документации. Максимальная длина описания составляет 8000 символов.
filter- Расширенный фильтр журналов (https://cloud.google.com/logging/docs/view/advanced-filters), используемый для сопоставления записей журнала.
metric_descriptor- Описание метрики, связанной с метрикой на основе журналов.
unit- Единица измерения значения метрики. Применимо только если значение valueType равно
INT64,DOUBLE, илиDISTRIBUTION. Поддерживаются единицы измерения из стандарта The Unified Code for Units of Measure. value_type- Тип измерения (целое число, число с плавающей точкой и т.д.). Некоторые комбинации metricKind и valueType могут быть не поддерживаемыми. Для счетчиков установите значение INT64.
Возможные значения:
- BOOL
- INT64
- DOUBLE
- STRING
- DISTRIBUTION
- MONEY
metric_kind- Тип метрики (мгновенные значения, изменения значения и т.д.). Некоторые комбинации metricKind и valueType могут быть не поддерживаемыми. Для счетчиков установите значение DELTA.
Возможные значения:
- DELTA
- GAUGE
- CUMULATIVE
labels- Набор меток, которые могут быть использованы для описания конкретного экземпляра этого типа метрики. Например, метрика appengine.googleapis.com/http/server/response_latencies имеет метку для HTTP-кода ответа, response_code, поэтому вы можете просмотреть задержки для успешных ответов или только для ответов, которые завершились ошибкой.
key- Ключ метки.
description- Читабельное описание метки.
value_type- Тип данных, который может быть назначен метке.
Возможные значения:
- BOOL
- INT64
- STRING
display_name- Краткие имя метрики, которое может быть отображено в пользовательских интерфейсах. Используйте строчные буквы с заглавной первой буквой без точки в конце, например «Количество запросов». Это поле необязательно, но рекомендуется устанавливать для любых метрик, связанных с понятными пользователю концепциями, такими как квота.
type- Тип метрики, включая префикс имени DNS. Тип не закодирован в URL. Все пользовательские типы метрик имеют имя DNS
custom.googleapis.comилиexternal.googleapis.com.
label_extractors- Массив, сопоставляющий строковый ключ метки с выражением извлекателя, используемым для извлечения данных из поля записи журнала и назначения в качестве значения метки. Каждому указанному в LabelDescriptor ключу метки должен соответствовать связанное выражение извлекателя в этом массиве. Синтаксис выражения извлекателя аналогичен синтаксису поля valueExtractor.
value_extractor- valueExtractor требуется при использовании метрики на основе распределения журналов, чтобы извлечь значения для записи из записи журнала. Поддерживаются две функции для извлечения значения — EXTRACT(field) или REGEXP_EXTRACT(field, regex). Аргументы: 1. field — имя поля записи журнала, из которого нужно извлечь значение. 2. regex — регулярное выражение, использующее синтаксис Google RE2 (https://github.com/google/re2/wiki/Syntax) с одной группой захвата для извлечения данных из указанного поля записи журнала. Значение поля преобразуется в строку перед применением регулярного выражения. Ошибка возникает, если задано регулярное выражение, не включающее ровно одну группу захвата.
bucket_options- bucketOptions требуются, когда метрика на основе журналов использует тип значения DISTRIBUTION, и она описывает границы ведер, используемые для создания гистограммы извлеченных значений.
linear_buckets- Определяет линейную последовательность ведер, у которых все имеют одинаковую ширину (кроме ведер для переполнения и недолива). Каждое ведро представляет постоянную абсолютную неопределенность для конкретного значения в ведре.
num_finite_buckets- Должно быть больше 0.
width- Должно быть больше 0.
offset- Нижняя граница первого ведра.
exponential_buckets- Определяет экспоненциальную последовательность ведер, у которых ширина пропорциональна значению нижней границы. Каждое ведро представляет постоянную относительную неопределенность для конкретного значения в ведре.
num_finite_buckets- Должно быть больше 0.
growth_factor- Должно быть больше 1.
scale- Должно быть больше 0.
explicit_buckets- Определяет набор ведер с произвольной шириной.
bounds- Значения должны быть монотонно возрастающими.
Разрешения GCP
Убедитесь, что для текущего проекта включен API Stackdriver Logging (https://console.cloud.google.com/apis/library/logging.googleapis.com/).
© 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_metric/