Googlecloudstorage Exporter
contrib
Maintainers: @constanca-m, @braydonk
Source: opentelemetry-collector-contrib
Supported Telemetry
Overview
This exporter writes received OpenTelemetry data to a cloud storage bucket.Configuration
| Name | Description | Required | Default |
|---|---|---|---|
encoding | The encoding extension ID to use for marshaling logs and traces. If left empty, plog.JSONMarshaler will be used for logs and ptrace.JSONMarshaler will be used for traces. | No | |
bucket.project_id | The project where the bucket will be created or where it exists. If left empty, it will query the metadata endpoint. It requires the collector to be running in a Google Cloud environment. | No | |
bucket.name | Name for the bucket storage. | Yes | |
bucket.file_prefix | Prefix for the created filename. This prefix is applied after the partition path (if any). | No | logs |
bucket.partition | Configuration for time-based partitioning. See below for details. | No | |
bucket.reuse_if_exists | Controls bucket creation behavior. If true, checks if bucket exists and uses it (requires storage.buckets.get permission on the bucket); fails if bucket doesn’t exist. If false, attempts to create bucket; fails if bucket already exists (requires storage.buckets.create permission at project level). Set to true when the service account lacks project-level bucket creation permissions but has bucket-level permissions. | No | false |
bucket.region | Region where the bucket will be created or where it exists. If left empty, it will query the metadata endpoint. It requires the collector to be running in a Google Cloud environment. | Yes | |
bucket.compression | Compression algorithm used to compress data before uploading. Valid values are gzip, zstd, or no value set for no compression. | No |
Partition Configuration
Thebucket.partition configuration allows you to organize files into time-based folders.
| Name | Description | Required | Default |
|---|---|---|---|
format | Time format string for time-based partitions. If set, formatted UTC time is prepended to the filename. Supports strftime format (e.g., year=%Y/month=%m). | No | |
prefix | Prefix for the partition folder structure. If set, this value is prepended to the partition path. | No |
Example
Here is an example configuration for this exporter:Compression Example
Using with Bucket-Level Permissions Only
When the service account lacks project-level bucket creation permissions but has bucket-level permissions:reuse_if_exists: true, the exporter checks if the bucket exists using storage.buckets.get permission on that specific bucket (not project-level). If the bucket doesn’t exist, the exporter will fail with an error. This allows service accounts with only bucket-level permissions to work without requiring project-level bucket creation permissions.
Configuration
Example Configuration
Last generated: 2026-04-13