Google Spanner

Overview

Google Cloud Spanner is the first and only relational database service that is both strongly consistent and horizontally scalable.

Get metrics from Google Spanner to:

  • Visualize the performance of your Spanner databases.
  • Correlate the performance of your Spanner databases with your applications.

Setup

Metric collection

Installation

If you haven’t already, set up the Google Cloud Platform integration first. There are no other installation steps.

Log collection

Google Cloud Spanner logs are collected with Google Cloud Logging and sent to a Dataflow job through a Cloud Pub/Sub topic. If you haven’t already, set up logging with the Datadog Dataflow template.

Once this is done, export your Google Cloud Spanner logs from Google Cloud Logging to the Pub/Sub topic:

  1. Go to the Google Cloud Logging page and filter Google Cloud Spanner logs.

  2. Click Create Sink and name the sink accordingly.

  3. Choose “Cloud Pub/Sub” as the destination and select the Pub/Sub topic that was created for that purpose. Note: The Pub/Sub topic can be located in a different project.

    Export Google Cloud Pub/Sub Logs to Pub Sub
  4. Click Create and wait for the confirmation message to show up.

Data Collected

Metrics

gcp.spanner.api.received_bytes_count
(count)
Uncompressed request bytes received by Cloud Spanner.
Shown as byte
gcp.spanner.api.sent_bytes_count
(count)
Uncompressed response bytes sent by Cloud Spanner.
Shown as byte
gcp.spanner.api.api_request_count
(count)
Cloud Spanner API requests.
Shown as second
gcp.spanner.api.request_count
(rate)
Rate of Cloud Spanner API requests.
Shown as request
gcp.spanner.api.request_latencies.avg
(gauge)
Average server request latencies for a database.
Shown as second
gcp.spanner.api.request_latencies.samplecount
(gauge)
Sample count of server request latencies for a database.
Shown as second
gcp.spanner.api.request_latencies.sumsqdev
(gauge)
Sum of Squared Deviation of server request latencies for a database.
Shown as second
gcp.spanner.api.request_latencies_by_transaction_type
(count)
Distribution of server request latencies by transaction types.
Shown as second
gcp.spanner.instance.cpu.utilization
(gauge)
Utilization of provisioned CPU, between 0 and 1.
Shown as fraction
gcp.spanner.instance.cpu.smoothed_utilization
(gauge)
24-hour smoothed utilization of provisioned CPU between 0.0 and 1.0.
Shown as fraction
gcp.spanner.instance.cpu.utilization_by_operation_type
(gauge)
Percent utilization of provisioned CPU, by operation type between 0.0 and 1.0.
Shown as fraction
gcp.spanner.instance.cpu.utilization_by_priority
(gauge)
Percent utilization of provisioned CPU, by priority between 0.0 and 1.0.
Shown as fraction
gcp.spanner.instance.node_count
(gauge)
Total number of nodes.
Shown as node
gcp.spanner.instance.session_count
(gauge)
Number of sessions in use.
Shown as session
gcp.spanner.instance.storage.used_bytes
(gauge)
Storage used in bytes.
Shown as byte
gcp.spanner.instance.storage.limit_bytes
(gauge)
Storage limit for instance in bytes
Shown as byte
gcp.spanner.instance.storage.limit_bytes_per_processing_unit
(gauge)
Storage limit per processing unit in bytes.
Shown as byte
gcp.spanner.instance.storage.utilization
(gauge)
Storage used as a fraction of storage limit.
Shown as fraction
gcp.spanner.instance.backup.used_bytes
(gauge)
Backup storage used in bytes.
Shown as byte
gcp.spanner.instance.leader_percentage_by_region
(gauge)
Percentage of leaders by cloud region between 0.0 and 1.0.
Shown as fraction
gcp.spanner.instance.processing_units
(gauge)
Total number of processing units.
gcp.spanner.lock_stat.total.lock_wait_time
(count)
Total lock wait time for lock conflicts recorded for the entire database.
Shown as second
gcp.spanner.query_count
(count)
Count of queries by database name, status, query type, and used optimizer version.
Shown as query
gcp.spanner.query_stat.total.bytes_returned_count
(count)
Number of data bytes that the queries returned
Shown as byte
gcp.spanner.query_stat.total.cpu_time
(count)
Number of seconds of CPU time Cloud Spanner spent on operations to execute the queries.
Shown as second
gcp.spanner.query_stat.total.execution_count
(count)
Number of times Cloud Spanner saw queries during the interval.
Shown as query
gcp.spanner.query_stat.total.failed_execution_count
(count)
Number of times queries failed during the interval.
Shown as query
gcp.spanner.query_stat.total.query_latencies
(gauge)
Distribution of total length of time, in seconds, for query executions within the database.
Shown as second
gcp.spanner.query_stat.total.returned_rows_count
(count)
Number of rows that the queries returned.
Shown as row
gcp.spanner.query_stat.total.scanned_rows_count
(count)
Number of rows that the queries scanned excluding deleted values.
Shown as row
gcp.spanner.read_stat.total.bytes_returned_count
(count)
Total number of data bytes that the reads returned excluding transmission encoding overhead.
Shown as byte
gcp.spanner.read_stat.total.client_wait_time
(count)
Number of seconds spent waiting due to throttling.
Shown as second
gcp.spanner.read_stat.total.cpu_time
(count)
Number of seconds of CPU time Cloud Spanner spent execute the reads excluding prefetch CPU and other overhead.
Shown as second
gcp.spanner.read_stat.total.execution_count
(count)
Number of times Cloud Spanner executed the read shapesduring the interval.
gcp.spanner.read_stat.total.leader_refresh_delay
(count)
Number of seconds spent coordinating reads across instances in multi-regionconfigurations.
Shown as second
gcp.spanner.read_stat.total.locking_delays
(gauge)
Distribution of total time in seconds spent waiting due to locking.
Shown as second
gcp.spanner.read_stat.total.returned_rows_count
(count)
Number of rows that the read returned.
Shown as row
gcp.spanner.row_deletion_policy.deleted_rows_count
(count)
Count of rows deleted by the policy since the last sample.
Shown as row
gcp.spanner.row_deletion_policy.processed_watermark_age
(gauge)
Time between now and the read timestamp of the last successful execution.
Shown as second
gcp.spanner.row_deletion_policy.undeletable_rows
(count)
Number of rows in all tables in the database that can't be deleted.
Shown as row
gcp.spanner.transaction_stat.total.bytes_written_count
(count)
Number of bytes written by transactions.
Shown as byte
gcp.spanner.transaction_stat.total.commit_attempt_count
(count)
Number of commit attempts for transactions.
gcp.spanner.transaction_stat.total.commit_retry_count
(count)
Number of commit attempts that are retries from previously aborted transaction attempts.
gcp.spanner.transaction_stat.total.participants
(gauge)
Distribution of total number of participants in each commit attempt.
gcp.spanner.transaction_stat.total.transaction_latencies
(gauge)
Distribution of total seconds takenfrom the first operation of the transaction to commit or abort.
Shown as second

Events

The Google Cloud Spanner integration does not include any events.

Service Checks

The Google Cloud Spanner integration does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.