Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计通过

dpm-finderdpm 查找器

Agent Skill

dpm-finder 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

832

周安装

35

GitHub Stars

26

下载量

291
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dpm-finder(dpm 查找器)
来源仓库:https://github.com/grafana/skills
仓库路径:skills/dpm-finder
安装命令:
npx skills add https://github.com/grafana/skills --skill dpm-finder
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/grafana/skills --skill dpm-finder

简介

dpm-finder 分析 Prometheus 指标对 Grafana Cloud 每分钟数据点(DPM)的贡献度。

  • 适用于成本优化场景,识别高消耗指标并建议降采样或聚合策略。
  • 按标签维度拆解 DPM 分布,输出 CSV 报告与可视化图表辅助决策。
  • 需配置 Prometheus API 访问密钥与查询范围,确保数据时效性与完整性。
  • dpm-finder 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

dpm-finder

A Grafana Professional Services tool for identifying which Prometheus metrics drive high Data Points per Minute (DPM). Analyzes metric-level DPM with per-label breakdown to help optimize Grafana Cloud costs.

Source: https://github.com/grafana-ps/dpm-finder

Quick Start

Prerequisites

  • Python 3.9+
  • Access to a Grafana Cloud Prometheus endpoint (or any Prometheus-compatible API)

Setup

  1. Clone the repo and create a virtual environment:
git clone https://github.com/grafana-ps/dpm-finder.git
cd dpm-finder
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Configure credentials by copying .env_example to .env and filling in values:

- PROMETHEUS_ENDPOINT -- The Prometheus endpoint URL (must end in .net, nothing after) - PROMETHEUS_USERNAME -- Tenant ID / stack ID (numeric) - PROMETHEUS_API_KEY -- Grafana Cloud API key (glc_... format)

Stack Discovery with gcx

If gcx is available, use it to find stack details:

gcx config check              # Show active stack context
gcx config list-contexts      # List all configured stacks
gcx config view               # Full config with endpoints

The Prometheus endpoint follows the pattern:

https://prometheus-{cluster_slug}.grafana.net

The username is the numeric stack ID. gcx auto-discovers service URLs from the stack slug via GCOM.

Stack Discovery without gcx

Look up the stack in the Grafana Cloud portal, or query the usage datasource:

grafanacloud_instance_info{name=~"STACK_NAME.*"}

Extract cluster_slug for the endpoint URL and id for the username.

Running the Tool

One-Shot Analysis (primary use case)

./dpm-finder.py -f json -m 2.0 -t 8 --timeout 120 -l 10

CLI Flags Reference

FlagDefaultDescription
-f, --formatcsvOutput format: csv, text, txt, json, prom
-m, --min-dpm1.0Minimum DPM threshold to include a metric
-t, --threads10Concurrent processing threads
-l, --lookback10Lookback window in minutes for DPM calculation
--timeout60API request timeout in seconds
--cost-per-1000-series*(none)*Dollar cost per 1000 series; adds estimated_cost column
-q, --quietfalseSuppress progress output
-v, --verbosefalseEnable debug logging
-e, --exporterfalseRun as Prometheus exporter instead of one-shot
-p, --port9966Exporter server port
-u, --update-interval86400Exporter metric refresh interval in seconds

Output Formats

Output files are written to the current working directory.

JSON (-f json) -> metric_rates.json

Best for programmatic analysis. Includes per-series DPM breakdown:

  • metrics[].metric_name -- the metric name
  • metrics[].dpm -- data points per minute (maximum across this metric's individual series)
  • metrics[].series_count -- number of active time series
  • metrics[].series_detail[] -- per-label-set DPM breakdown (sorted by DPM descending)
  • total_metrics_above_threshold -- count of metrics above threshold
  • performance_metrics.total_runtime_seconds -- total processing time
  • performance_metrics.average_metric_processing_seconds -- avg time per metric
  • performance_metrics.total_metrics_processed -- total metrics analyzed
  • performance_metrics.metrics_per_second -- processing throughput

CSV (-f csv) -> metric_rates.csv

Columns: metric_name, dpm, series_count (plus estimated_cost if --cost-per-1000-series is set).

Text (-f text) -> metric_rates.txt

Human-readable format with per-series breakdown and performance statistics.

Prometheus (-f prom) -> metric_rates.prom

Prometheus exposition format suitable for Alloy's prometheus.exporter.unix textfile collector.

Interpreting Results

  • DPM = data points per minute (maximum across this metric's individual series)
  • series_count = number of active time series for that metric
  • series_detail (JSON/text only) = per-label-combination DPM breakdown
  • Sort by DPM descending to find the noisiest metrics
  • For top metrics, examine series_detail to identify which label combinations drive the highest DPM
  • If --cost-per-1000-series is set, use estimated_cost to prioritize by spend

Rate Limiting

When running dpm-finder against multiple stacks, limit to max 3 concurrent runs. Batch the stacks and wait for each batch to complete before starting the next.

Metric Filtering

The tool automatically excludes:

  • Histogram/summary components: *_count, *_bucket, *_sum suffixes
  • Grafana internal metrics: grafana_* prefix
  • Metrics with aggregation rules defined in the cluster (fetched from /aggregations/rules)

Exporter Mode

Run as a long-lived Prometheus exporter instead of one-shot analysis:

./dpm-finder.py -e -p 9966 -u 86400

Serves metrics at http://localhost:PORT/metrics. Recalculates at the configured interval (default: daily). See README.md for full exporter and Docker documentation.

Docker

Alternative to local Python setup:

docker build -t dpm-finder:latest .
docker run --rm --env-file .env -v $(pwd)/output:/app/output \
  dpm-finder:latest --format json --min-dpm 2.0

See README.md for full Docker Compose, production deployment, and monitoring integration docs.

Troubleshooting

Common Errors

  • Authentication failures (401/403): Verify the API key is valid and has metrics:read scope. Confirm PROMETHEUS_USERNAME matches the numeric stack ID.
  • Timeouts: Increase --timeout for large metric sets. The default is 60s; use 120s or higher for stacks with thousands of metrics.
  • HTTP 422 errors: Usually means the metric has aggregation rules. The tool logs a warning and skips these automatically.
  • Empty results: Lower the --min-dpm threshold. Check that PROMETHEUS_ENDPOINT does not have a trailing path after .net.
  • Connection errors: Verify network connectivity to the Prometheus endpoint. The tool retries with exponential backoff (up to 10 retries).

Retry Behavior

The tool retries failed API requests with exponential backoff (up to 10 retries). Rate-limited responses (HTTP 429) are backed off automatically. HTTP 4xx errors other than 429 are not retried.

Project Structure

dpm-finder.py          # Main CLI tool (one-shot + exporter modes)
requirements.txt       # Python dependencies
.env_example           # Template for credential configuration
Dockerfile             # Multi-stage Docker build
docker-compose.yml     # Docker Compose orchestration
README.md              # Full project documentation

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.55%
按下载量换算103

Claude

29.78%
按下载量换算87

Cursor

21.86%
按下载量换算64

Gemini CLI

10.06%
按下载量换算29

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills