diff --git a/exporter/googlemanagedprometheusexporter/README.md b/exporter/googlemanagedprometheusexporter/README.md index 57c00ec2aa4e..4abbf9d20e51 100644 --- a/exporter/googlemanagedprometheusexporter/README.md +++ b/exporter/googlemanagedprometheusexporter/README.md @@ -280,13 +280,21 @@ logic from OpenTelemetry resource to Google Cloud's `prometheus_target` monitored resouce didn't preserve a resource attribute that was needed to distinguish timeseries. This can be mitigated by adding resource attributes as metric labels using `resource_filters` configuration in the -exporter: +exporter. The following example adds common identifying resource attributes. +You may need to expand this list with other resource attributes to fix +duplicate timeseries errors: ```yaml googlemanagedprometheus: metric: resource_filters: - regex: ".*" + - prefix: "cloud" + - prefix: "k8s" + - prefix: "faas" + - regex: "container.id" + - regex: "process.pid" + - regex: "host.name" + - regex: "host.id" ``` If you need to troubleshoot errors further, start by filtering down to a single diff --git a/exporter/googlemanagedprometheusexporter/config_test.go b/exporter/googlemanagedprometheusexporter/config_test.go index 7a1fb2ac38f6..5f9c118eed5c 100644 --- a/exporter/googlemanagedprometheusexporter/config_test.go +++ b/exporter/googlemanagedprometheusexporter/config_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -54,6 +55,29 @@ func TestLoadConfig(t *testing.T) { }, }, Prefix: "my-metric-domain.com", + ResourceFilters: []collector.ResourceFilter{ + { + Prefix: "cloud", + }, + { + Prefix: "k8s", + }, + { + Prefix: "faas", + }, + { + Regex: "container.id", + }, + { + Regex: "process.pid", + }, + { + Regex: "host.name", + }, + { + Regex: "host.id", + }, + }, }, }, QueueSettings: exporterhelper.QueueSettings{ diff --git a/exporter/googlemanagedprometheusexporter/testdata/config.yaml b/exporter/googlemanagedprometheusexporter/testdata/config.yaml index db8c177c4f8e..dab28a078516 100644 --- a/exporter/googlemanagedprometheusexporter/testdata/config.yaml +++ b/exporter/googlemanagedprometheusexporter/testdata/config.yaml @@ -20,6 +20,14 @@ exporters: extra_metrics_config: enable_target_info: false enable_scope_info: false + resource_filters: + - prefix: "cloud" + - prefix: "k8s" + - prefix: "faas" + - regex: "container.id" + - regex: "process.pid" + - regex: "host.name" + - regex: "host.id" service: