Skip to content

Instantly share code, notes, and snippets.

@garryyao
Last active January 16, 2026 12:42
Show Gist options
  • Select an option

  • Save garryyao/670c0703c6aff0e3d867d0e641688de0 to your computer and use it in GitHub Desktop.

Select an option

Save garryyao/670c0703c6aff0e3d867d0e641688de0 to your computer and use it in GitHub Desktop.
Grafana Alloy - GCP Metrics Relabeling Rules

Grafana Alloy - GCP Metrics Relabeling (Datadog-compatible)

Relabeling configuration to convert verbose prometheus.exporter.gcp metric names to Datadog-compatible naming convention.

How Alloy GCP Exporter Names Metrics

The prometheus.exporter.gcp component (based on stackdriver_exporter) generates verbose metric names:

Original GCP Metric:
  run.googleapis.com/request_count

Exported Format:
  stackdriver_{resource_type}_{metric_path_with_underscores}

Result:
  stackdriver_cloud_run_revision_run_googleapis_com_request_count
                │                  │
                │                  └─ metric path (dots/slashes → underscores)
                └─ GCP resource type

After base relabel (stackdriver_ → gcp_):
  gcp_cloud_run_revision_run_googleapis_com_request_count

GCP Resource Types by Service

GCP Service Resource Type
Cloud Run cloud_run_revision
Cloud Functions cloud_function
Pub/Sub Topic pubsub_topic
Pub/Sub Subscription pubsub_subscription
AlloyDB alloydb_googleapis_com_Instance
Cloud Workflows workflows_googleapis_com_Workflow
Firestore firestore_googleapis_com_Database
Cloud Tasks cloud_tasks_queue
Load Balancer (HTTPS) https_lb_rule
Load Balancer (L3) internal_tcp_lb_rule

Datadog GCP Metric Naming Convention

Datadog uses a simplified naming pattern:

  • GCP metric: run.googleapis.com/request_count
  • Datadog metric: gcp.run.request_count

Pattern: gcp.<service>.<metric_path>

The relabel rules below transform verbose Alloy names to match Datadog's convention.

Metric Mapping Table

GCP Service GCP Metric Alloy Exported Name Datadog-style Target
Cloud Run run.googleapis.com/request_count stackdriver_cloud_run_revision_run_googleapis_com_request_count gcp_run_request_count
run.googleapis.com/request_latencies stackdriver_cloud_run_revision_run_googleapis_com_request_latencies gcp_run_request_latencies
run.googleapis.com/container/cpu/utilization stackdriver_cloud_run_revision_run_googleapis_com_container_cpu_utilization gcp_run_container_cpu_utilization
run.googleapis.com/container/memory/utilization stackdriver_cloud_run_revision_run_googleapis_com_container_memory_utilization gcp_run_container_memory_utilization
run.googleapis.com/container/instance_count stackdriver_cloud_run_revision_run_googleapis_com_container_instance_count gcp_run_container_instance_count
Cloud Functions cloudfunctions.googleapis.com/function/execution_count stackdriver_cloud_function_cloudfunctions_googleapis_com_function_execution_count gcp_cloudfunctions_function_execution_count
cloudfunctions.googleapis.com/function/active_instances stackdriver_cloud_function_cloudfunctions_googleapis_com_function_active_instances gcp_cloudfunctions_function_active_instances
cloudfunctions.googleapis.com/function/execution_times stackdriver_cloud_function_cloudfunctions_googleapis_com_function_execution_times gcp_cloudfunctions_function_execution_times
cloudfunctions.googleapis.com/function/user_memory_bytes stackdriver_cloud_function_cloudfunctions_googleapis_com_function_user_memory_bytes gcp_cloudfunctions_function_user_memory_bytes
Pub/Sub Topic pubsub.googleapis.com/topic/send_request_count stackdriver_pubsub_topic_pubsub_googleapis_com_topic_send_request_count gcp_pubsub_topic_send_request_count
pubsub.googleapis.com/topic/message_sizes stackdriver_pubsub_topic_pubsub_googleapis_com_topic_message_sizes gcp_pubsub_topic_message_sizes
Pub/Sub Subscription pubsub.googleapis.com/subscription/num_outstanding_messages stackdriver_pubsub_subscription_pubsub_googleapis_com_subscription_num_outstanding_messages gcp_pubsub_subscription_num_outstanding_messages
pubsub.googleapis.com/subscription/oldest_unacked_message_age stackdriver_pubsub_subscription_pubsub_googleapis_com_subscription_oldest_unacked_message_age gcp_pubsub_subscription_oldest_unacked_message_age
AlloyDB alloydb.googleapis.com/database/cpu/utilization stackdriver_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_cpu_utilization gcp_alloydb_database_cpu_utilization
alloydb.googleapis.com/database/memory/utilization stackdriver_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_memory_utilization gcp_alloydb_database_memory_utilization
Workflows workflows.googleapis.com/finished_execution_count stackdriver_workflows_googleapis_com_Workflow_workflows_googleapis_com_finished_execution_count gcp_workflows_finished_execution_count
workflows.googleapis.com/failed_execution_count stackdriver_workflows_googleapis_com_Workflow_workflows_googleapis_com_failed_execution_count gcp_workflows_failed_execution_count
Firestore firestore.googleapis.com/api/request_count stackdriver_firestore_googleapis_com_Database_firestore_googleapis_com_api_request_count gcp_firestore_api_request_count
Cloud Tasks cloudtasks.googleapis.com/queue/depth stackdriver_cloud_tasks_queue_cloudtasks_googleapis_com_queue_depth gcp_cloudtasks_queue_depth
cloudtasks.googleapis.com/queue/task_attempt_count stackdriver_cloud_tasks_queue_cloudtasks_googleapis_com_queue_task_attempt_count gcp_cloudtasks_queue_task_attempt_count
Artifact Registry artifactregistry.googleapis.com/api/request_count stackdriver_artifactregistry_googleapis_com_*_artifactregistry_googleapis_com_api_request_count gcp_artifactregistry_api_request_count
Load Balancer (HTTPS) loadbalancing.googleapis.com/https/request_count stackdriver_https_lb_rule_loadbalancing_googleapis_com_https_request_count gcp_loadbalancing_https_request_count
Load Balancer (L3) loadbalancing.googleapis.com/l3/internal/egress_bytes_count stackdriver_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_egress_bytes_count gcp_loadbalancing_l3_internal_egress_bytes_count

Complete Alloy Relabel Configuration

prometheus.relabel "rename_metrics" {
  forward_to = [prometheus.remote_write.gcp_forward.receiver]

  // ============================================
  // Base rule: stackdriver_ → gcp_
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "stackdriver_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_$1"
  }

  // ============================================
  // Cloud Run
  // gcp_cloud_run_revision_run_googleapis_com_X → gcp_run_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_run_revision_run_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_run_$1"
  }

  // ============================================
  // Cloud Functions
  // gcp_cloud_function_cloudfunctions_googleapis_com_function_X → gcp_cloudfunctions_function_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_function_cloudfunctions_googleapis_com_function_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_cloudfunctions_function_$1"
  }

  // ============================================
  // Pub/Sub Topic
  // gcp_pubsub_topic_pubsub_googleapis_com_topic_X → gcp_pubsub_topic_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_pubsub_topic_pubsub_googleapis_com_topic_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_pubsub_topic_$1"
  }

  // ============================================
  // Pub/Sub Subscription
  // gcp_pubsub_subscription_pubsub_googleapis_com_subscription_X → gcp_pubsub_subscription_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_pubsub_subscription_pubsub_googleapis_com_subscription_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_pubsub_subscription_$1"
  }

  // ============================================
  // AlloyDB
  // gcp_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_X → gcp_alloydb_database_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_alloydb_database_$1"
  }

  // ============================================
  // Cloud Workflows
  // gcp_workflows_googleapis_com_Workflow_workflows_googleapis_com_X → gcp_workflows_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_workflows_googleapis_com_Workflow_workflows_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_workflows_$1"
  }

  // ============================================
  // Firestore
  // gcp_firestore_googleapis_com_Database_firestore_googleapis_com_X → gcp_firestore_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_firestore_googleapis_com_Database_firestore_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_firestore_$1"
  }

  // ============================================
  // Cloud Tasks
  // gcp_cloud_tasks_queue_cloudtasks_googleapis_com_X → gcp_cloudtasks_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_tasks_queue_cloudtasks_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_cloudtasks_$1"
  }

  // ============================================
  // Artifact Registry
  // gcp_artifactregistry_googleapis_com_*_artifactregistry_googleapis_com_X → gcp_artifactregistry_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_artifactregistry_googleapis_com_[^_]+_artifactregistry_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_artifactregistry_$1"
  }

  // ============================================
  // Load Balancer HTTPS
  // gcp_https_lb_rule_loadbalancing_googleapis_com_https_X → gcp_loadbalancing_https_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_https_lb_rule_loadbalancing_googleapis_com_https_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_loadbalancing_https_$1"
  }

  // ============================================
  // Load Balancer L3/Internal
  // gcp_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_X → gcp_loadbalancing_l3_internal_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_loadbalancing_l3_internal_$1"
  }
}

Resulting Metric Names Summary

Service Datadog-compatible Metric Name
Cloud Run gcp_run_request_count
gcp_run_request_latencies
gcp_run_container_cpu_utilization
gcp_run_container_memory_utilization
gcp_run_container_instance_count
gcp_run_container_startup_latencies
Cloud Functions gcp_cloudfunctions_function_execution_count
gcp_cloudfunctions_function_active_instances
gcp_cloudfunctions_function_execution_times
gcp_cloudfunctions_function_user_memory_bytes
gcp_cloudfunctions_function_cpu_usage_seconds
gcp_cloudfunctions_function_memory_usage_bytes
Pub/Sub gcp_pubsub_topic_send_request_count
gcp_pubsub_topic_message_sizes
gcp_pubsub_subscription_num_outstanding_messages
gcp_pubsub_subscription_oldest_unacked_message_age
gcp_pubsub_subscription_backlog_bytes
AlloyDB gcp_alloydb_database_cpu_utilization
gcp_alloydb_database_memory_utilization
gcp_alloydb_database_disk_utilization
gcp_alloydb_database_active_connections
Workflows gcp_workflows_finished_execution_count
gcp_workflows_failed_execution_count
gcp_workflows_execution_times
Firestore gcp_firestore_api_request_count
gcp_firestore_network_active_connections
Cloud Tasks gcp_cloudtasks_queue_depth
gcp_cloudtasks_queue_task_attempt_count
gcp_cloudtasks_queue_task_attempt_delays
gcp_cloudtasks_api_request_count
Artifact Registry gcp_artifactregistry_api_request_count
Load Balancer gcp_loadbalancing_https_request_count
gcp_loadbalancing_https_backend_latencies
gcp_loadbalancing_l3_internal_egress_bytes_count

Documentation Links

Topic URL
Grafana Alloy Relabeling https://grafana.com/docs/alloy/latest/reference/components/prometheus/prometheus.relabel/
Grafana Alloy GCP Exporter https://grafana.com/docs/alloy/latest/reference/components/prometheus/prometheus.exporter.gcp/
Datadog Cloud Run Integration https://docs.datadoghq.com/integrations/google-cloud-run/
Datadog Cloud Functions Integration https://docs.datadoghq.com/integrations/google-cloud-functions/
Datadog Pub/Sub Integration https://docs.datadoghq.com/integrations/google-cloud-pubsub/
Datadog AlloyDB Integration https://docs.datadoghq.com/integrations/google-cloud-alloydb/
Datadog Cloud Tasks Integration https://docs.datadoghq.com/integrations/google-cloud-tasks/
Datadog Firestore Integration https://docs.datadoghq.com/integrations/google-cloud-firestore/
Datadog GCP Platform Integration https://docs.datadoghq.com/integrations/google-cloud-platform/

Notes

  1. Rule Order Matters - The base stackdriver_gcp_ rule must come first
  2. Regex Patterns - Patterns may need adjustment based on actual exported metric names
  3. Verification - Check actual metrics in Alloy's /metrics endpoint or Grafana Explore after deployment
  4. Underscores vs Dots - Prometheus uses underscores; Datadog native uses dots. This config uses underscores for Prometheus compatibility

Grafana Alloy - GCP Metrics Relabeling (Datadog-compatible)

Relabeling configuration to convert verbose prometheus.exporter.gcp metric names to Datadog-compatible naming convention.

Datadog GCP Metric Naming Convention

Datadog uses a simplified naming pattern:

  • GCP metric: run.googleapis.com/request_count
  • Datadog metric: gcp.run.request_count

Pattern: gcp.<service>.<metric_path>

Metric Mapping Table

GCP Service GCP Metric Alloy Exported Name Datadog-style Target
Cloud Run run.googleapis.com/request_count stackdriver_cloud_run_revision_run_googleapis_com_request_count gcp_run_request_count
run.googleapis.com/request_latencies stackdriver_cloud_run_revision_run_googleapis_com_request_latencies gcp_run_request_latencies
run.googleapis.com/container/cpu/utilization stackdriver_cloud_run_revision_run_googleapis_com_container_cpu_utilization gcp_run_container_cpu_utilization
run.googleapis.com/container/memory/utilization stackdriver_cloud_run_revision_run_googleapis_com_container_memory_utilization gcp_run_container_memory_utilization
run.googleapis.com/container/instance_count stackdriver_cloud_run_revision_run_googleapis_com_container_instance_count gcp_run_container_instance_count
Cloud Functions cloudfunctions.googleapis.com/function/execution_count stackdriver_cloud_function_cloudfunctions_googleapis_com_function_execution_count gcp_cloudfunctions_function_execution_count
cloudfunctions.googleapis.com/function/active_instances stackdriver_cloud_function_cloudfunctions_googleapis_com_function_active_instances gcp_cloudfunctions_function_active_instances
cloudfunctions.googleapis.com/function/execution_times stackdriver_cloud_function_cloudfunctions_googleapis_com_function_execution_times gcp_cloudfunctions_function_execution_times
cloudfunctions.googleapis.com/function/user_memory_bytes stackdriver_cloud_function_cloudfunctions_googleapis_com_function_user_memory_bytes gcp_cloudfunctions_function_user_memory_bytes
Pub/Sub Topic pubsub.googleapis.com/topic/send_request_count stackdriver_pubsub_topic_pubsub_googleapis_com_topic_send_request_count gcp_pubsub_topic_send_request_count
pubsub.googleapis.com/topic/message_sizes stackdriver_pubsub_topic_pubsub_googleapis_com_topic_message_sizes gcp_pubsub_topic_message_sizes
Pub/Sub Subscription pubsub.googleapis.com/subscription/num_outstanding_messages stackdriver_pubsub_subscription_pubsub_googleapis_com_subscription_num_outstanding_messages gcp_pubsub_subscription_num_outstanding_messages
pubsub.googleapis.com/subscription/oldest_unacked_message_age stackdriver_pubsub_subscription_pubsub_googleapis_com_subscription_oldest_unacked_message_age gcp_pubsub_subscription_oldest_unacked_message_age
AlloyDB alloydb.googleapis.com/database/cpu/utilization stackdriver_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_cpu_utilization gcp_alloydb_database_cpu_utilization
alloydb.googleapis.com/database/memory/utilization stackdriver_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_memory_utilization gcp_alloydb_database_memory_utilization
Workflows workflows.googleapis.com/finished_execution_count stackdriver_workflows_googleapis_com_Workflow_workflows_googleapis_com_finished_execution_count gcp_workflows_finished_execution_count
workflows.googleapis.com/failed_execution_count stackdriver_workflows_googleapis_com_Workflow_workflows_googleapis_com_failed_execution_count gcp_workflows_failed_execution_count
Firestore firestore.googleapis.com/api/request_count stackdriver_firestore_googleapis_com_Database_firestore_googleapis_com_api_request_count gcp_firestore_api_request_count
Cloud Tasks cloudtasks.googleapis.com/queue/depth stackdriver_cloud_tasks_queue_cloudtasks_googleapis_com_queue_depth gcp_cloudtasks_queue_depth
cloudtasks.googleapis.com/queue/task_attempt_count stackdriver_cloud_tasks_queue_cloudtasks_googleapis_com_queue_task_attempt_count gcp_cloudtasks_queue_task_attempt_count
Artifact Registry artifactregistry.googleapis.com/api/request_count stackdriver_artifactregistry_googleapis_com_*_artifactregistry_googleapis_com_api_request_count gcp_artifactregistry_api_request_count
Load Balancer (HTTPS) loadbalancing.googleapis.com/https/request_count stackdriver_https_lb_rule_loadbalancing_googleapis_com_https_request_count gcp_loadbalancing_https_request_count
Load Balancer (L3) loadbalancing.googleapis.com/l3/internal/egress_bytes_count stackdriver_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_egress_bytes_count gcp_loadbalancing_l3_internal_egress_bytes_count

Complete Alloy Relabel Configuration

prometheus.relabel "rename_metrics" {
  forward_to = [prometheus.remote_write.gcp_forward.receiver]

  // ============================================
  // Base rule: stackdriver_ → gcp_
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "stackdriver_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_$1"
  }

  // ============================================
  // Cloud Run
  // gcp_cloud_run_revision_run_googleapis_com_X → gcp_run_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_run_revision_run_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_run_$1"
  }

  // ============================================
  // Cloud Functions
  // gcp_cloud_function_cloudfunctions_googleapis_com_function_X → gcp_cloudfunctions_function_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_function_cloudfunctions_googleapis_com_function_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_cloudfunctions_function_$1"
  }

  // ============================================
  // Pub/Sub Topic
  // gcp_pubsub_topic_pubsub_googleapis_com_topic_X → gcp_pubsub_topic_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_pubsub_topic_pubsub_googleapis_com_topic_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_pubsub_topic_$1"
  }

  // ============================================
  // Pub/Sub Subscription
  // gcp_pubsub_subscription_pubsub_googleapis_com_subscription_X → gcp_pubsub_subscription_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_pubsub_subscription_pubsub_googleapis_com_subscription_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_pubsub_subscription_$1"
  }

  // ============================================
  // AlloyDB
  // gcp_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_X → gcp_alloydb_database_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_alloydb_googleapis_com_Instance_alloydb_googleapis_com_database_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_alloydb_database_$1"
  }

  // ============================================
  // Cloud Workflows
  // gcp_workflows_googleapis_com_Workflow_workflows_googleapis_com_X → gcp_workflows_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_workflows_googleapis_com_Workflow_workflows_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_workflows_$1"
  }

  // ============================================
  // Firestore
  // gcp_firestore_googleapis_com_Database_firestore_googleapis_com_X → gcp_firestore_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_firestore_googleapis_com_Database_firestore_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_firestore_$1"
  }

  // ============================================
  // Cloud Tasks
  // gcp_cloud_tasks_queue_cloudtasks_googleapis_com_X → gcp_cloudtasks_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_cloud_tasks_queue_cloudtasks_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_cloudtasks_$1"
  }

  // ============================================
  // Artifact Registry
  // gcp_artifactregistry_googleapis_com_*_artifactregistry_googleapis_com_X → gcp_artifactregistry_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_artifactregistry_googleapis_com_[^_]+_artifactregistry_googleapis_com_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_artifactregistry_$1"
  }

  // ============================================
  // Load Balancer HTTPS
  // gcp_https_lb_rule_loadbalancing_googleapis_com_https_X → gcp_loadbalancing_https_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_https_lb_rule_loadbalancing_googleapis_com_https_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_loadbalancing_https_$1"
  }

  // ============================================
  // Load Balancer L3/Internal
  // gcp_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_X → gcp_loadbalancing_l3_internal_X
  // ============================================
  rule {
    source_labels = ["__name__"]
    regex         = "gcp_internal_tcp_lb_rule_loadbalancing_googleapis_com_l3_internal_(.*)"
    target_label  = "__name__"
    replacement   = "gcp_loadbalancing_l3_internal_$1"
  }
}

Resulting Metric Names Summary

Service Datadog-compatible Metric Name
Cloud Run gcp_run_request_count
gcp_run_request_latencies
gcp_run_container_cpu_utilization
gcp_run_container_memory_utilization
gcp_run_container_instance_count
gcp_run_container_startup_latencies
Cloud Functions gcp_cloudfunctions_function_execution_count
gcp_cloudfunctions_function_active_instances
gcp_cloudfunctions_function_execution_times
gcp_cloudfunctions_function_user_memory_bytes
gcp_cloudfunctions_function_cpu_usage_seconds
gcp_cloudfunctions_function_memory_usage_bytes
Pub/Sub gcp_pubsub_topic_send_request_count
gcp_pubsub_topic_message_sizes
gcp_pubsub_subscription_num_outstanding_messages
gcp_pubsub_subscription_oldest_unacked_message_age
gcp_pubsub_subscription_backlog_bytes
AlloyDB gcp_alloydb_database_cpu_utilization
gcp_alloydb_database_memory_utilization
gcp_alloydb_database_disk_utilization
gcp_alloydb_database_active_connections
Workflows gcp_workflows_finished_execution_count
gcp_workflows_failed_execution_count
gcp_workflows_execution_times
Firestore gcp_firestore_api_request_count
gcp_firestore_network_active_connections
Cloud Tasks gcp_cloudtasks_queue_depth
gcp_cloudtasks_queue_task_attempt_count
gcp_cloudtasks_queue_task_attempt_delays
gcp_cloudtasks_api_request_count
Artifact Registry gcp_artifactregistry_api_request_count
Load Balancer gcp_loadbalancing_https_request_count
gcp_loadbalancing_https_backend_latencies
gcp_loadbalancing_l3_internal_egress_bytes_count

Documentation Links

Topic URL
Grafana Alloy Relabeling https://grafana.com/docs/alloy/latest/reference/components/prometheus/prometheus.relabel/
Grafana Alloy GCP Exporter https://grafana.com/docs/alloy/latest/reference/components/prometheus/prometheus.exporter.gcp/
Datadog Cloud Run Integration https://docs.datadoghq.com/integrations/google-cloud-run/
Datadog Cloud Functions Integration https://docs.datadoghq.com/integrations/google-cloud-functions/
Datadog Pub/Sub Integration https://docs.datadoghq.com/integrations/google-cloud-pubsub/
Datadog AlloyDB Integration https://docs.datadoghq.com/integrations/google-cloud-alloydb/
Datadog Cloud Tasks Integration https://docs.datadoghq.com/integrations/google-cloud-tasks/
Datadog Firestore Integration https://docs.datadoghq.com/integrations/google-cloud-firestore/
Datadog GCP Platform Integration https://docs.datadoghq.com/integrations/google-cloud-platform/

Notes

  1. Rule Order Matters - The base stackdriver_gcp_ rule must come first
  2. Regex Patterns - Patterns may need adjustment based on actual exported metric names
  3. Verification - Check actual metrics in Alloy's /metrics endpoint or Grafana Explore after deployment
  4. Underscores vs Dots - Prometheus uses underscores; Datadog native uses dots. This config uses underscores for Prometheus compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment