Google Cloud Storage
The Google Cloud Storage destination exports telemetry from a Bindplane pipeline as OTLP JSON objects written to a Google Cloud Storage (GCS) bucket. It supports logs, metrics, and traces. Objects are written under a time-partitioned path within the bucket (and optional folder), with an optional prefix and optional gzip compression.
Supported Telemetry Types
✓
✓
✓
Prerequisites
This destination writes objects to a Google Cloud Storage bucket using a Google service account.
A Google Cloud project and a pre-created GCS bucket. Bucket names in GCS are globally unique. The destination can create a bucket if it does not exist, but creating it ahead of time avoids name collisions with buckets owned by other organizations, which would otherwise fail with
403 Forbiddenon write. See Creating buckets.A service account with permission to write objects to the bucket. At minimum, grant the Storage Object Creator role (
roles/storage.objectCreator), which includesstorage.objects.create, on the bucket or project. If you let the destination create the bucket on first use, the service account also needs bucket-create permission (for example, the Storage Admin role,roles/storage.admin). See IAM roles for Cloud Storage.Credentials reachable by the collector. Use Application Default Credentials (
auto), an inline service-account JSON key (json), or a path to a service-account key file on the collector host (file). See Authentication.
Configuration

Destination
Telemetry Types
Telemetry Selector
No
Logs, Metrics, Traces
Which signals to export to GCS.
Bucket Name
String
Yes
(empty)
Name of the bucket to store objects in. Must be globally unique.
Folder Name
String
No
(empty)
An optional folder to put the objects in. Can be a nested folder path.
Project ID
String
No
(empty)
The ID of the Google Cloud project the bucket belongs to. Read from the credentials if not configured.
Authentication
Authentication Method
Enum: auto, json, file
No
auto
The method used for authenticating to Google Cloud. auto uses Application Default Credentials; json uses an inline key; file reads a key file on the collector.
Credentials
String
Yes *
(empty)
JSON value from a Google service account credential file. Sensitive. Shown and required when Authentication Method is json.
Credentials File
String
Yes *
(empty)
Path to a Google service account credential file on the collector system. The collector's runtime user must have permission to read this file. Shown and required when Authentication Method is file.
* Required only for the matching Authentication Method.
Bucket Creation
These values are only used when the destination creates the bucket.
Bucket Location
Enum (creatable)
No
US
The location of the bucket. Multi-region (US, EU, ASIA), dual-region, and regional values are accepted. See Bucket locations.
Storage Class
Enum: STANDARD, NEARLINE, COLDLINE, ARCHIVE
No
STANDARD
The storage class of the bucket. See Storage classes.
Advanced
Granularity
Enum: minute, hour
No
minute
Time granularity of timestamps in the object path.
Compression
Enum: none, gzip
No
none
The type of compression applied to the data before sending it to storage.
Object Prefix
String
No
(empty)
An optional prefix to prepend to the object file name.
Timeout
Integer (seconds)
No
30
The maximum amount of time to wait for a batch to be sent to the destination.
Drop Raw Copy
Boolean
No
true
When enabled, the raw copy of the log stored in log.record.original is dropped. Logs only.
Retry on Failure
Enable Retry on Failure
Boolean
No
true
Attempt to resend telemetry data that has failed to be transmitted to the destination.
Initial interval
Integer (seconds)
No
5
Time to wait after the first failure before retrying. Shown when retry is enabled.
Max interval
Integer (seconds)
No
30
The upper bound on backoff. Shown when retry is enabled.
Max elapsed time
Integer (seconds)
No
300
The maximum amount of time spent trying to send a batch, used to avoid a never-ending retry loop. Shown when retry is enabled.
Sending Queue
Enable Sending Queue
Boolean
No
true
Buffer telemetry data temporarily before sending to help ensure telemetry is not lost during a temporary network outage.
Number of Consumers
Integer
No
10
Number of consumers that dequeue batches. Shown when the sending queue is enabled.
Queue Size
Integer
No
5000
Maximum number of batches kept in memory before dropping. Shown when the sending queue is enabled.
Enable Persistent Queuing
Boolean
No
true
Buffer telemetry data to disk before sending to help ensure telemetry is not lost during network outages or collector restarts. Shown when the sending queue is enabled.
Persistent Queue Storage
Extension
Yes
file_storage_persistent_queue
The storage to use for the persistent queue. Shown when both the sending queue and persistent queuing are enabled.
Examples
Export all signals to a bucket with gzip compression
This configuration exports logs, metrics, and traces to the bucket prod-telemetry-archive. The project ID is read from the credentials. Objects are written under a folder and object prefix and compressed with gzip.
With this configuration, object paths in GCS look like:
Configuration Tips
Pre-create the bucket and grant the service account
roles/storage.objectCreator. Letting the destination create the bucket requires broader permissions (bucket-create) and risks a403on a globally taken name.Bucket Location and Storage Class only apply when the destination creates the bucket. For an existing bucket they are ignored, so set them in GCS instead.
Use
gzipcompression to reduce GCS storage cost and egress for archived telemetry. Set Granularity tohourto write fewer, larger objects when per-minute partitioning is too granular.
Troubleshooting
Writes fail with 403 Forbidden
Symptoms: objects are not written and the collector logs 403 Forbidden.
Solutions:
Confirm the service account has
roles/storage.objectCreator(or equivalent) on the target bucket or project.If the bucket does not yet exist and you expect the destination to create it, the name may be taken by another organization (names are globally unique). Pre-create the bucket under a unique name and set Bucket Name to match.
Authentication errors
Symptoms: the collector cannot authenticate to Google Cloud.
Solutions:
For Authentication Method
file, verify the path is correct on the collector host and the collector's runtime user can read it.For
json, confirm the pasted credential is valid service-account JSON. Forauto, confirm Application Default Credentials are available in the collector's environment.
Dropped data during outages
Symptoms: telemetry is lost during network interruptions or collector restarts.
Solutions:
Keep the sending queue enabled and enable Persistent Queuing so batches survive restarts.
Increase Queue Size if batches are dropped under sustained backpressure, and confirm retry on failure is enabled.
Standalone Destination
Related Resources
Last updated
Was this helpful?