Syntax
A google_project_metrics
is used to test a Google Metric resource
Examples
describe google_project_metrics(project: 'chef-gcp-inspec') do
it { should exist }
its('metric_filters') { should include 'resource.type=gae_app AND severity>=ERROR' }
its('metric_names') { should include 'some/metric' }
end
describe.one do
google_project_metrics(project: 'chef-gcp-inspec').metric_types.each do |metric_type|
describe metric_type do
it { should match 'some/metric' }
end
end
end
Test that there are no more than a specified number of metrics available for the project
describe google_project_metrics(project: 'chef-inspec-gcp') do
its('count') { should be <= 100}
end
Test that an expected metric name is available for the project
describe google_project_metrics(project: 'chef-inspec-gcp') do
its('metric_names') { should include "metric-name" }
end
Test that a subset of all metrics with name matching “project” have a particular writer identity
google_project_metrics(project: 'chef-inspec-gcp').where(metric_name: /project/).metric_names.each do |metric_name|
describe google_project_metric(project: 'chef-inspec-gcp', metric: metric_name) do
its('filter') { should eq "(protoPayload.serviceName=\"cloudresourcemanager.googleapis.com\")" }
end
end
Properties
Properties that can be accessed from the google_project_metrics
resource:
See googleprojectmetric.md for more detailed information
* metric_names
: an array of google_project_metric
name
* descriptions
: an array of google_project_metric
description
* metric_filters
: an array of google_project_metric
filter
* metric_descriptors
: an array of google_project_metric
metricdescriptor
* `labelextractors: an array of
googleprojectmetriclabel_extractors
*
valueextractors: an array of
googleprojectmetric` valueextractor
* bucket_options
: an array of google_project_metric
bucket_options
Filter Criteria
This resource supports all of the above properties as filter criteria, which can be used
with where
as a block or a method.
GCP Permissions
Ensure the Stackdriver Logging API is enabled for the current project.