Cloud Run Metrics
Overview
This documentation provides a detailed walkthrough on how to set up Cloud Run to send the metrics directly to SigNoz. By the end of this guide, you will have a setup that automatically sends your Cloud Run metrics to SigNoz.
Here's a quick summary of what we will be doing in this guide
- Create and configure Cloud Run
- Deploy Telegraf to fetch the metrics from Google Cloud monitoring
- Deploy OpenTelemetry to scrape the metrics from Telegraf
- Send and Visualize the metrics obtained by OpenTelemetry in SigNoz Cloud
Prerequisites
- Google Cloud account with administrative privilege or Cloud Run Admin and Compute Engine Admin privileges.
- SigNoz Cloud Account (we are using SigNoz Cloud for this demonstration, we will also need ingestion details. To get your Ingestion Key and Ingestion URL, sign-in to your SigNoz Cloud Account and go to Settings >> Ingestion Settings)
- Access to a project in GCP
Setup
Get started with Cloud Run service setup
Follow the steps mentioned in the Cloud Run Service Setup page to create Cloud Run Service.
Deploy Telegraf to fetch the metrics from Google Cloud Monitoring
We will be using Compute Engine instance to install Telegraf. You can follow the instructions in the Creating Copmute Engine document to create the Compute Engine instance. In this tutorial, we will be using the same instance for installing OTel Collector as well. You may choose a different instance as well.
Step 1: Install telegraf
which will collect metrics from Google Cloud Monitoring for Cloud Run, see the available metrics for Cloud Run. The installation process for the respective operating system can be found in official documentation.
After successful installation, the Telegraf status should be active and running. You can check the Telegraf status by running the command service telegraf status
.
Note that we are using Ubuntu operating system in Compute Engine. The Telegraf commands might slightly differ for other operating systems.
The configuration file for telegraf can be found here:
/etc/telegraf/telegraf.conf
Step 2: Configure the Telegraf input and output plugin by adding configurations to the telegraf.conf
file.
# Gather timeseries from Google Cloud Platform v3 monitoring API
[[inputs.stackdriver]]
## GCP Project
project = "omni-new"
## Include timeseries that start with the given metric type.
metric_type_prefix_include = [
"run.googleapis.com",
]
## Most metrics are updated no more than once per minute; it is recommended
## to override the agent level interval with a value of 1m or greater.
interval = "1m"
# Send OpenTelemetry metrics over gRPC
[[outputs.opentelemetry]]
## Override the default (localhost:4317) OpenTelemetry gRPC service
## address:port
service_address = "localhost:4317"
The service_address
is using localhost
as we will be deploying OTelCollector in the same Compute Engine instance. You can replace it with the appropriate IP address in case you choose to deploy OTel Collector on a different instance.
Deploy OpenTelemetry to scrape the metrics from Telegraf
Step 1: Install and configure OpenTelemetry for scraping the metrics from Telegraf. Follow OpenTelemetry Binary Usage in Virtual Machine guide for detailed instructions.
Step 2: After successful configuration start the OTel Collector using following command:
./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid
Step 3: Restart the Telegraf service using the command service telegraf restart
.
Step 4: If the configurations are configured correctly with Telegraf and we can see the output logs from OpenTelemetry as follows:
Send and Visualize the metrics obtained by OpenTelemetry in SigNoz
Step 1: Go to the SigNoz Cloud URL and head over to the dashboard.
Step 2: If not already created, create a new dashboard and select Time Series.
Step 3: Select metric for Cloud Run
All metrics starting with run_googleapis_com_
have been collected from Cloud Run.
Troubleshooting
If you run into any problems while setting up monitoring for Cloud Run metrics with SigNoz, consider these troubleshooting steps:
- Verify Configuration: Double-check your
config.yaml
file to ensure all settings, including the ingestion key and endpoint, are correct. - Review Logs: Look at the logs of both Telegraf and the OpenTelemetry Collector to identify any error messages or warnings that might provide insights into what’s going wrong.
- Update Dependencies: Ensure all relevant packages and dependencies are up-to-date to avoid compatibility issues.
- Consult Documentation: Review the SigNoz, OpenTelemetry, and Telegraf documentation for any additional troubleshooting of the common issues.