Ресурс google_project_metric
Синтаксис
Используется google_project_metric, чтобы протестировать ресурс Google 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 имеет ожидаемую платформу процессора
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/