Google Cloud Pub/Sub (Pull)

Description

Read messages from a Google Cloud Pub/Sub topic and generate logs, metrics, or traces from the result.

circle-exclamation

Supported Platforms

Platform
Supported

Linux

Windows

macOS

Configuration

Field
Description

Telemetry Types

The types of telemetry to read from Pub/Sub.

Project ID

The Google Cloud project ID where the Pub/Sub client will connect to.

Subscription Name

Name of the pre-existing Pub/Sub 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 Pub/Sub to make load balancing decisions.

User Agent

The user agent that will be used by the Pub/Sub client to connect to the service.

Timeout

Timeout for all API calls, default is 12 seconds if unset.

Endpoint

Override of the default Pub/Sub endpoint. Leave empty for default.

Insecure

If using a custom endpoint, determines if connection should be insecure.

Authentication

The service account used by the collector should have the Pub/Sub Subscriber permission to read from the subscription. Additionally, make sure the subscription channel being read from is configured with Pull delivery.

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 overridearrow-up-right:

Then run the following command to reload the systemd configuration:

Windows

Start powershell as administrator 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 of org.opentelemetry.otlp.traces.v1, org.opentelemetry.otlp.metrics.v1, or org.opentelemetry.otlp.logs.v1.

  • 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 Documentationarrow-up-right.

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 , Text Encoding , and Text Unmarshaling Separator are used to determine the encoding, and Payload Compression is used to determine compression.

If these attributes were present, then the Payload Encoding and Payload Compression parameters should be set to "none".

Web Interface

Standalone Source

Last updated

Was this helpful?