Google Cloud PubSub
Description
Read messages from a Google Cloud PubSub topic and generate logs, metrics, or traces from the result.
important
The OpenTelemetry receiver this source uses is in beta and is subject to change.
Supported Platforms
Platform | Supported |
---|---|
Linux | ✓ |
Windows | ✓ |
macOS | ✓ |
Configuration
Field | Description |
---|---|
Telemetry Types | The types of telemetry to read from PubSub. |
Project ID | The Google Cloud project ID where the PubSub client will connect to. |
Subscription Name | Name of the pre-existing PubSub subscription to read messages from. |
Payload Encoding | Use "none" for attribute based detection. If the "content-type" attribute is missing from data, this is used to determine the encoding. Metrics and traces can only be OTLP Proto. See Attribute Labels for more information. |
Payload Compression | Use "none" for attribute based detection. If the "content-encoding" attribute is missing from data, this is used to determine the compression. See Attribute Labels for more information. |
Client ID | The client ID to be used by PubSub to make load balancing decisions. |
User Agent | The user agent that will be used by the PubSub client to connect to the service. |
Timeout | Timeout for all API calls, default is 12 seconds if unset. |
Endpoint | Override of the default PubSub endpoint. Leave empty for default. |
Insecure | If using a custom endpoint, determines if connection should be insecure. |
Authentication
Authentication is handled via the GOOGLE_APPLICATION_CREDENTIALS
environment variable. This should point to a file containing the service account key for the project.
To set this for the collector, you need to modify the service file depending on your OS.
Linux
Use a Systemd override:
Then run the following command to reload the systemd configuration:
Windows
Start powershell as adminstrator and run the following command:
Then restart the collector service:
MacOS
Add GOOGLE_APPLICATION_CREDENTIALS
to the EnvironmentVariables
dict in the launchd service file /Library/LaunchDaemons/com.observiq.collector.plist
(other values are shown for context):
Then restart the collector:
Attribute Labels
The Google Cloud PubSub receiver looks for the following attributes on the message to determine the message encoding and compression:
content-type
- How the message content should be interpreted.- If this value is set to
application/protobuf
, another attribute,ce-type
, is expected to determine telemetry type. This attribute should be one oforg.opentelemetry.otlp.traces.v1
,org.opentelemetry.otlp.metrics.v1
, ororg.opentelemetry.otlp.logs.v1
.
- If this value is set to
content-encoding
- Despite being called the "content-encoding" this controls the compression of the message.
If these attributes are present on the message data, the Payload Encoding
and Payload Compression
source parameters are ignored and should be set to "none".
If these attributes are not present on the message data, the receiver will use the Payload Encoding
and Payload Compression
parameters to determine the encoding and compression.
Metrics and traces can only be OTLP Proto. Logs can be OTLP JSON, OTLP Proto, or Raw Text. For more information, see the OpenTelemetry Receiver Documentation.
Example Configuration
In this example, we are parsing log data from the given PubSub subscription. The expected attributes are not present on the PubSub message data, so the Payload Encoding
and Payload Compression
parameters are used to determine the encoding and compression.
If these attributes were present, then the Payload Encoding
and Payload Compression
parameters should be set to "none".
Web Interface

Standalone Source