返回 Skill 列表
extension
分类: 开发与工程无需 API Key

cloud-metrics

使用cloud_metrics.py工具查询Google Cloud Monitoring指标。当用户询问GCP指标、Cloud Monitoring、Kubernetes指标(CPU、内存、网络)、容器资源使用情况,或需要导出监控数据时使用。触发条件包括“显示我CPU使用情况”、“列出可用指标”、“描述此指标”、“内存消耗大户”或任何与Google Cloud Monitoring相关的查询。

person作者: jakexiaohubgithub

Cloud Metrics

Query GCP Monitoring API using the bundled cloud_metrics.py script.

Prerequisites

Requires GCP authentication. Verify with:

gcloud auth application-default print-access-token

If not authenticated:

gcloud auth application-default login

Quick Reference

# Run with uv (handles dependencies automatically)
uv run scripts/cloud_metrics.py <command> [options]

# Commands
query     # Query metric data
describe  # Show metric labels and filter examples
list      # List available metrics

Common Workflows

Find top resource consumers

# Top 10 CPU consumers
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time --top 10 --stats

# Top memory users with latest values
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/memory/used_bytes --top 20 --latest

Explore available metrics

# List all kubernetes metrics
uv run scripts/cloud_metrics.py list -p PROJECT --prefix kubernetes.io

# Describe a metric (shows available labels for filtering)
uv run scripts/cloud_metrics.py describe -p PROJECT -m kubernetes.io/container/cpu/core_usage_time

Query with filters and aggregation

# Filter by namespace
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time \
  -f 'resource.labels.namespace_name="production"'

# Aggregate across containers, group by namespace
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time \
  --reducer REDUCE_SUM --group-by namespace_name

# Specific time range
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time \
  --start 2025-01-01T00:00:00Z --end 2025-01-01T12:00:00Z

Export data

# JSON output (for jq processing)
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time \
  --output json --stats | jq '.[] | select(.stats.max > 0.5)'

# CSV output
uv run scripts/cloud_metrics.py query -p PROJECT -m kubernetes.io/container/cpu/core_usage_time \
  --output csv --latest > cpu_usage.csv

Key Options

| Option | Description | |--------|-------------| | -p, --project | GCP project ID (required) | | -m, --metric | Metric type (required for query/describe) | | -f, --filter | Filter expression (repeatable) | | -d, --duration | Time range: 30m, 1h, 7d (default: 1h) | | --aligner | ALIGN_RATE, ALIGN_MEAN, ALIGN_SUM, ALIGN_MAX, ALIGN_MIN, ALIGN_DELTA | | --reducer | REDUCE_SUM, REDUCE_MEAN, REDUCE_MAX, REDUCE_COUNT, REDUCE_PERCENTILE_99/95/50 | | --group-by | Label to group by when using reducer | | --top N | Show only top N series by max value | | --stats | Show statistics (min, max, avg, p50, p95, p99) | | --latest | Show only latest value per series | | -o, --output | table (default), json, csv |

Common Metric Types

| Metric | Description | |--------|-------------| | kubernetes.io/container/cpu/core_usage_time | CPU usage (use ALIGN_RATE) | | kubernetes.io/container/memory/used_bytes | Memory usage | | kubernetes.io/container/restart_count | Container restarts | | kubernetes.io/pod/network/received_bytes_count | Network RX | | kubernetes.io/pod/network/sent_bytes_count | Network TX | | compute.googleapis.com/instance/cpu/utilization | VM CPU utilization | | compute.googleapis.com/instance/disk/read_bytes_count | Disk reads |