Monitoring Google Cloud Pub/Sub

Supported information

Supported client-side tracing

For this technology, Instana supports client-side tracing for the following languages and runtimes:

Setup

The Instana Google Cloud integration uses Service Accounts to create an API connection between Google Cloud and Instana. Below are instructions for creating the service account and providing Instana the service account credentials to begin making API calls on your behalf.

  1. Navigate to Google Cloud credentials page for the Google Cloud project you would like to setup the Instana integration.
  2. Click CREATE CREDENTIALS > Service account.

SelectServiceAccount

  1. On the Create service account page, enter a unique name for the service account, and click CREATE AND CONTINUE.
  2. Select a role or create a custom one, which contains at least the following permissions:
    • monitoring.timeSeries.list

    • pubsub.subscriptions.list

    • pubsub.topics.list

    • resourcemanager.projects.get

      To create a custom role, complete the following steps:

      1. From the navigation menu, click Roles > CREATE ROLE.
      2. Enter the title of the role, and click ADD PERMISSIONS.
      3. Add the basic permissions that are mentioned previously, which are required for the role, and click CREATE.
  3. Select the account you created from the list of service accounts.
  4. Select the KEYS tab, and click ADD KEY.
  5. Select Create new key and select the key type as JSON, and then click CREATE.

serviceaccountkey

You need to record the location of the credential file where it is saved to complete the integration.

  1. Add a field credentials_path to the configuration.yml file with the path to the credentials file. For example, see configuration.

In order to monitor project(s) the following services need to be enabled:

Configuration

You can configure the Google Cloud Pub/Sub metrics poll rate in seconds by adding the following configuration to the configuration file of the GCP Agent:

com.instana.plugin.gcp.pubsub:
  enabled: true
  poll_rate: 60  # How often Google's monitoring API will be polled
  credentials_path: '/opt/instana/credentials/cred-gcp.json'  # Path to Service Account credentials
  include_tags:
    topic:
    subscription:
  exclude_tags:
    topic:
    subscription:    

Filtering

Multiple tags can be defined, separated by a comma. Tags should be provided as a key-value pair separated by the : character. In order to make configuration easier, it is possible to define which tags you want to include in discovery or exclude from discovery. In case of defining tag in both lists (include and exclude), exclude list has higher priority. If there is no need for services filtering, the configuration should not be defined. It’s not mandatory to define all values in order to enable filtering.

To include topics and subscriptions by tags into discovery use following configuration:

com.instana.plugin.gcp.pubsub:
  include_tags:
    topic: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
    subscription: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

To exclude topics and subscriptions by tags from discovery use following configuration:

com.instana.plugin.gcp.pubsub:
  exclude_tags: 
    topic: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
    subscription: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

In case include tags configuration should be applied to both, topics and subscriptions, use following configuration:

com.instana.plugin.gcp.pubsub:
  include_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

In case exclude tags configuration should be applied to both, topics and subscriptions, use following configuration:

com.instana.plugin.gcp.pubsub:
  exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

Google Cloud Pub/Sub - Metrics collection

Configuration data

  • Project Name
  • Project ID
  • Project Number
  • Creation Time

Performance metrics

Metric Description Reducer/Aligner
Messages Count Cumulative count of messages sent by Cloud Pub/Sub to subscriber clients. REDUCE_SUM/ALIGN_DELTA
Messages Size Total byte size of the unacknowledged messages in a subscription. REDUCE_SUM/ALIGN_MEAN
Oldest Message Age Age (in seconds) of the oldest unacknowledged message in a subscription. REDUCE_MAX/ALIGN_MEAN

Granularity for all metrics is 60 seconds.

Google Cloud Pub/Sub Topic - Metrics collection

Configuration data

  • Project ID
  • Topic Name

Performance metrics

Metric Description Reducer/Aligner
Messages Size Total byte size of the unacknowledged messages in a subscription. REDUCE_MEAN/ALIGN_DELTA
Oldest Message Age Acked Age (in seconds) of the oldest acknowledged message retained in a topic, broken down by Cloud region. REDUCE_SUM/ALIGN_MEAN
Oldest Message Age Unacked Age (in seconds) of the oldest unacknowledged message in a topic, broken down by Cloud region. REDUCE_SUM/ALIGN_MEAN
Publish Operation Cumulative count of publish message operations, grouped by result. REDUCE_SUM/ALIGN_DELTA
Publish Requests Cumulative count of publish requests, grouped by result. REDUCE_SUM/ALIGN_DELTA
Operations Cost Cost of operations, measured in bytes. REDUCE_SUM/ALIGN_DELTA

Granularity is 60 seconds for all metrics.

Google Cloud Pub/Sub Subscription - Metrics collection

Configuration data

  • Project ID
  • Subscription Name
  • Topic Name

Performance metrics

Metric Description Reducer/Aligner
Messages Size Total byte size of the unacknowledged messages in a subscription. REDUCE_NONE/ALIGN_MEAN
Messages Acked Cumulative count of messages acknowledged by Acknowledge requests. REDUCE_SUM/ALIGN_DELTA
Messages Unacked Number of unacknowledged messages in a subscription. REDUCE_NONE/ALIGN_MEAN
Messages Dead Letter Cumulative count of messages published to dead letter topic. REDUCE_SUM/ALIGN_DELTA
Messages Sent Cumulative count of messages sent by Cloud Pub/Sub to subscriber clients. REDUCE_SUM/ALIGN_DELTA
Messages Outstanding Number of messages delivered to a subscription's push endpoint, but not yet acknowledged. REDUCE_NONE/ALIGN_MEAN
Oldest Message Age Acked Age (in seconds) of the oldest acknowledged message retained in a subscription. REDUCE_NONE/ALIGN_MEAN
Oldest Message Age Unacked Age (in seconds) of the oldest unacknowledged message in a subscription. REDUCE_NONE/ALIGN_MEAN
Message Operations Pull Cumulative count of pull message operations, grouped by result. REDUCE_SUM/ALIGN_DELTA
Message Operations Ack Cumulative count of acknowledge message operations, grouped by result. REDUCE_SUM/ALIGN_DELTA
Requests Pull Cumulative count of pull requests, grouped by result. REDUCE_SUM/ALIGN_DELTA
Requests Push Cumulative count of push attempts, grouped by result. REDUCE_SUM/ALIGN_DELTA
Requests Ack Cumulative count of acknowledge requests, grouped by result. REDUCE_SUM/ALIGN_DELTA
Requests Push Latency Distribution of push request latencies (in microseconds), grouped by result. REDUCE_MEAN/ALIGN_DELTA
Config Updates Count Cumulative count of configuration changes for each subscription. REDUCE_SUM/ALIGN_DELTA
Operations Cost Cumulative cost of operations, measured in bytes. REDUCE_SUM/ALIGN_DELTA

Granularity is 60 seconds for all metrics.

Health signatures

For each sensor, there is a curated knowledge base of health signatures that are evaluated continuously against the incoming metrics and are used to raise issues or incidents depending on user impact.

Built-in events trigger issues or incidents based on failing health signatures on entities, and custom events trigger issues or incidents based on defined thresholds of any given entity's individual metrics.

For information about built-events for the Google Cloud Pub/Sub, see the Built-in events reference.