victoriametrics-query
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseVictoriaMetrics Metrics Query
VictoriaMetrics 指标查询
Query VictoriaMetrics HTTP API directly via curl. Covers instant/range queries, label/series discovery, alerts, rules, instance diagnostics, raw data export, metric usage statistics, and config debugging tools.
通过curl直接查询VictoriaMetrics HTTP API。涵盖即时/范围查询、标签/序列发现、告警、规则、实例诊断、原始数据导出、指标使用统计以及配置调试工具。
Environment
环境配置
bash
undefinedbash
undefined$VM_METRICS_URL - base URL
$VM_METRICS_URL - 基础URL
cluster: export VM_METRICS_URL="https://vmselect.example.com/select/0/prometheus"
集群模式: export VM_METRICS_URL="https://vmselect.example.com/select/0/prometheus"
single: export VM_METRICS_URL="http://localhost:8428"
单实例模式: export VM_METRICS_URL="http://localhost:8428"
$VM_AUTH_HEADER - auth header (set for prod, empty for local)
$VM_AUTH_HEADER - 认证头(生产环境设置,本地环境留空)
undefinedundefinedAuth Pattern
认证模式
All curl commands use conditional auth — works for both prod and local:
bash
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"} "$VM_METRICS_URL/api/v1/query?query=up" | jq .When is empty, flag is omitted automatically.
VM_AUTH_HEADER-H所有curl命令使用条件认证——同时适用于生产和本地环境:
bash
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"} "$VM_METRICS_URL/api/v1/query?query=up" | jq .当为空时,参数会自动省略。
VM_AUTH_HEADER-HCore Endpoints
核心端点
Instant Query
即时查询
bash
undefinedbash
undefinedQuery at current time
查询当前时间的数据
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=up" | jq .
"$VM_METRICS_URL/api/v1/query?query=up" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=up" | jq .
"$VM_METRICS_URL/api/v1/query?query=up" | jq .
Query at specific time
查询指定时间的数据
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=up&time=2026-03-07T09:00:00Z" | jq .
"$VM_METRICS_URL/api/v1/query?query=up&time=2026-03-07T09:00:00Z" | jq .
Parameters: `query` (required), `time` (optional, RFC3339 or Unix seconds), `step`, `timeout`curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=up&time=2026-03-07T09:00:00Z" | jq .
"$VM_METRICS_URL/api/v1/query?query=up&time=2026-03-07T09:00:00Z" | jq .
参数:`query`(必填)、`time`(可选,RFC3339格式或Unix时间戳)、`step`、`timeout`Range Query
范围查询
bash
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"} \
"$VM_METRICS_URL/api/v1/query_range?query=rate(http_requests_total[5m])&start=2026-03-07T00:00:00Z&end=2026-03-07T12:00:00Z&step=5m" | jq .Parameters: (required), (required), (optional), (required). Times in RFC3339 or Unix seconds.
querystartendstepbash
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"} \
"$VM_METRICS_URL/api/v1/query_range?query=rate(http_requests_total[5m])&start=2026-03-07T00:00:00Z&end=2026-03-07T12:00:00Z&step=5m" | jq .参数:(必填)、(必填)、(可选)、(必填)。时间格式支持RFC3339或Unix时间戳。
querystartendstepLabels Discovery
标签发现
bash
undefinedbash
undefinedAll label names
获取所有标签名称
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/labels" | jq '.data[]'
"$VM_METRICS_URL/api/v1/labels" | jq '.data[]'
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/labels" | jq '.data[]'
"$VM_METRICS_URL/api/v1/labels" | jq '.data[]'
Label values (label_name is a PATH parameter)
获取标签值(label_name为路径参数)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
Label values filtered by series matcher
通过序列匹配器过滤标签值
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={job="kubelet"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
--data-urlencode 'match[]={job="kubelet"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
undefinedcurl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={job="kubelet"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
--data-urlencode 'match[]={job="kubelet"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
undefinedSeries Discovery
序列发现
bash
undefinedbash
undefinedFind series matching selector
查找匹配选择器的序列
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={namespace="myapp"}'
"$VM_METRICS_URL/api/v1/series?limit=20" | jq '.data[].name'
--data-urlencode 'match[]={namespace="myapp"}'
"$VM_METRICS_URL/api/v1/series?limit=20" | jq '.data[].name'
Parameters: `match[]` (required), `start`, `end`, `limit`curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={namespace="myapp"}'
"$VM_METRICS_URL/api/v1/series?limit=20" | jq '.data[].name'
--data-urlencode 'match[]={namespace="myapp"}'
"$VM_METRICS_URL/api/v1/series?limit=20" | jq '.data[].name'
参数:`match[]`(必填)、`start`、`end`、`limit`Metric Metadata
指标元数据
bash
undefinedbash
undefinedSearch by metric name keyword
通过指标名称关键词搜索
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/metadata?metric=http_request&limit=10" | jq .
"$VM_METRICS_URL/api/v1/metadata?metric=http_request&limit=10" | jq .
Parameters: `metric` (search keyword), `limit`.curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/metadata?metric=http_request&limit=10" | jq .
"$VM_METRICS_URL/api/v1/metadata?metric=http_request&limit=10" | jq .
参数:`metric`(搜索关键词)、`limit`。Alerts and Rules
告警与规则
bash
undefinedbash
undefinedAll firing/pending alerts
获取所有触发/待处理的告警
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/alerts" | jq '.data.alerts[]'
"$VM_METRICS_URL/api/v1/alerts" | jq '.data.alerts[]'
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/alerts" | jq '.data.alerts[]'
"$VM_METRICS_URL/api/v1/alerts" | jq '.data.alerts[]'
All alerting and recording rules
获取所有告警规则和记录规则
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/rules" | jq '.data.groups[]'
"$VM_METRICS_URL/api/v1/rules" | jq '.data.groups[]'
undefinedcurl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/rules" | jq '.data.groups[]'
"$VM_METRICS_URL/api/v1/rules" | jq '.data.groups[]'
undefinedInstance Diagnostics
实例诊断
bash
undefinedbash
undefinedTSDB cardinality stats
TSDB基数统计
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/tsdb" | jq .
"$VM_METRICS_URL/api/v1/status/tsdb" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/tsdb" | jq .
"$VM_METRICS_URL/api/v1/status/tsdb" | jq .
Currently executing queries
当前正在执行的查询
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/active_queries" | jq .
"$VM_METRICS_URL/api/v1/status/active_queries" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/active_queries" | jq .
"$VM_METRICS_URL/api/v1/status/active_queries" | jq .
Most frequent/slowest queries
最频繁/最慢的查询
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/top_queries?topN=10" | jq .
"$VM_METRICS_URL/api/v1/status/top_queries?topN=10" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/top_queries?topN=10" | jq .
"$VM_METRICS_URL/api/v1/status/top_queries?topN=10" | jq .
Version info
版本信息
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/buildinfo" | jq .
"$VM_METRICS_URL/api/v1/status/buildinfo" | jq .
undefinedcurl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/buildinfo" | jq .
"$VM_METRICS_URL/api/v1/status/buildinfo" | jq .
undefinedExport Raw Data
导出原始数据
bash
undefinedbash
undefinedExport raw samples as JSON lines (one JSON object per line)
以JSON行格式导出原始样本(每行一个JSON对象)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]=http_requests_total'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T12:00:00Z'
"$VM_METRICS_URL/api/v1/export" | head -5
--data-urlencode 'match[]=http_requests_total'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T12:00:00Z'
"$VM_METRICS_URL/api/v1/export" | head -5
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]=http_requests_total'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T12:00:00Z'
"$VM_METRICS_URL/api/v1/export" | head -5
--data-urlencode 'match[]=http_requests_total'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T12:00:00Z'
"$VM_METRICS_URL/api/v1/export" | head -5
Export with reduced memory usage (for large exports)
以低内存占用模式导出(适用于大规模导出)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={namespace="myapp"}'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T01:00:00Z'
-d 'reduce_mem_usage=1'
"$VM_METRICS_URL/api/v1/export" > export.jsonl
--data-urlencode 'match[]={namespace="myapp"}'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T01:00:00Z'
-d 'reduce_mem_usage=1'
"$VM_METRICS_URL/api/v1/export" > export.jsonl
Parameters: `match[]` (required), `start`, `end`, `reduce_mem_usage`. Output is JSON lines (not wrapped in a standard API response).
Each line: `{"metric":{"__name__":"...","label":"value"},"values":[...],"timestamps":[...]}`
Also available: `/api/v1/export/csv` (CSV format), `/api/v1/export/native` (binary, for import via `/api/v1/import/native`).curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={namespace="myapp"}'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T01:00:00Z'
-d 'reduce_mem_usage=1'
"$VM_METRICS_URL/api/v1/export" > export.jsonl
--data-urlencode 'match[]={namespace="myapp"}'
-d 'start=2026-03-07T00:00:00Z' -d 'end=2026-03-07T01:00:00Z'
-d 'reduce_mem_usage=1'
"$VM_METRICS_URL/api/v1/export" > export.jsonl
参数:`match[]`(必填)、`start`、`end`、`reduce_mem_usage`。输出格式为JSON行(不包含标准API响应的包裹结构)。
每行格式:`{"metric":{"__name__":"...","label":"value"},"values":[...],"timestamps":[...]}`
还支持以下格式:`/api/v1/export/csv`(CSV格式)、`/api/v1/export/native`(二进制格式,可通过`/api/v1/import/native`导入)。Series Count
序列数量统计
bash
undefinedbash
undefinedTotal number of active time series
获取活跃时间序列的总数
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/series/count" | jq .
"$VM_METRICS_URL/api/v1/series/count" | jq .
Note: can be slow on large databases and may return slightly inflated values.curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/series/count" | jq .
"$VM_METRICS_URL/api/v1/series/count" | jq .
注意:在大型数据库上执行可能较慢,返回值可能略有偏高。Metric Usage Statistics
指标使用统计
bash
undefinedbash
undefinedWhich metrics are being queried, and how often
查询哪些指标被查询以及查询频率
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=20" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=20" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=20" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=20" | jq .
Metrics queried <= N times (find unused/rarely-used metrics)
查询被查询次数≤N的指标(找出未使用/极少使用的指标)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=50&le=1" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=50&le=1" | jq .
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=50&le=1" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?limit=50&le=1" | jq .
Filter by metric name pattern
按指标名称模式过滤
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?match_pattern=vm_&limit=20" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?match_pattern=vm_&limit=20" | jq .
Parameters: `limit` (max results), `le` (max query count threshold — find metrics queried at most N times), `match_pattern` (metric name prefix filter).curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/status/metric_names_stats?match_pattern=vm_&limit=20" | jq .
"$VM_METRICS_URL/api/v1/status/metric_names_stats?match_pattern=vm_&limit=20" | jq .
参数:`limit`(最大结果数)、`le`(最大查询次数阈值——找出查询次数最多为N次的指标)、`match_pattern`(指标名称前缀过滤器)。Flags (Non-Default)
非默认参数
bash
undefinedbash
undefinedView non-default runtime flags (returns plain text, one flag per line — NOT JSON)
查看非默认运行时参数(返回纯文本,每行一个参数——非JSON格式)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/flags"
"${VM_METRICS_URL%%/select/*}/flags"
Root-level endpoint. Returns plain text (not JSON), one flag per line. Shows only flags that differ from defaults — useful for debugging configuration.curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/flags"
"${VM_METRICS_URL%%/select/*}/flags"
根级端点。返回纯文本(非JSON),每行一个参数。仅显示与默认值不同的参数——有助于调试配置。Query Tools
查询工具
These are ROOT-level endpoints, NOT under . On cluster mode, strip the prefix to get the base host.
/api/v1//select/0/prometheusbash
undefined这些是根级端点,不在路径下。在集群模式下,需要去掉前缀以获取基础主机地址。
/api/v1//select/0/prometheusbash
undefinedExpand WITH expressions (returns text, not JSON)
展开WITH表达式(返回文本,非JSON)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/expand-with-exprs?query=WITH(x=up)x"
"${VM_METRICS_URL%%/select/*}/expand-with-exprs?query=WITH(x=up)x"
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/expand-with-exprs?query=WITH(x=up)x"
"${VM_METRICS_URL%%/select/*}/expand-with-exprs?query=WITH(x=up)x"
Prettify MetricsQL query (returns JSON)
格式化MetricsQL查询(返回JSON)
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/prettify-query?query=rate(x[5m])" | jq .
"${VM_METRICS_URL%%/select/*}/prettify-query?query=rate(x[5m])" | jq .
Note: `${VM_METRICS_URL%%/select/*}` strips everything from `/select` onward, yielding the base host. On single-node (local), `VM_METRICS_URL` has no `/select` prefix so it returns the URL unchanged.curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"${VM_METRICS_URL%%/select/*}/prettify-query?query=rate(x[5m])" | jq .
"${VM_METRICS_URL%%/select/*}/prettify-query?query=rate(x[5m])" | jq .
注意:`${VM_METRICS_URL%%/select/*}`会去掉`/select`之后的所有内容,得到基础主机地址。在单实例(本地)模式下,`VM_METRICS_URL`没有`/select`前缀,因此会直接返回原URL。Config Debug Tools
配置调试工具
Root-level endpoints for debugging relabeling, downsampling, and retention configurations. These accept POST with form data. Primarily used via VMUI but accessible via curl.
bash
undefined用于调试重标记、降采样和保留配置的根级端点。这些端点接受POST表单数据。主要通过VMUI使用,但也可通过curl访问。
bash
undefinedDebug metric relabeling rules — test how a metric is transformed
调试指标重标记规则——测试指标如何被转换
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'relabel_config=- target_label: cluster replacement: dev'
"${VM_METRICS_URL%%/select/*}/metric-relabel-debug"
-d 'metric=foo{bar="baz"}'
-d 'relabel_config=- target_label: cluster replacement: dev'
"${VM_METRICS_URL%%/select/*}/metric-relabel-debug"
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'relabel_config=- target_label: cluster replacement: dev'
"${VM_METRICS_URL%%/select/*}/metric-relabel-debug"
-d 'metric=foo{bar="baz"}'
-d 'relabel_config=- target_label: cluster replacement: dev'
"${VM_METRICS_URL%%/select/*}/metric-relabel-debug"
Debug downsampling filters — test which downsampling rules match a metric
调试降采样过滤器——测试哪些降采样规则匹配指标
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'downsampling_period=30d:5m,180d:1h'
"${VM_METRICS_URL%%/select/*}/downsampling-filters-debug"
-d 'metric=foo{bar="baz"}'
-d 'downsampling_period=30d:5m,180d:1h'
"${VM_METRICS_URL%%/select/*}/downsampling-filters-debug"
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'downsampling_period=30d:5m,180d:1h'
"${VM_METRICS_URL%%/select/*}/downsampling-filters-debug"
-d 'metric=foo{bar="baz"}'
-d 'downsampling_period=30d:5m,180d:1h'
"${VM_METRICS_URL%%/select/*}/downsampling-filters-debug"
Debug retention filters — test which retention policy applies to a metric
调试保留过滤器——测试哪些保留策略适用于指标
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'retention_period=2y,{env="dev"}:30d'
"${VM_METRICS_URL%%/select/*}/retention-filters-debug"
-d 'metric=foo{bar="baz"}'
-d 'retention_period=2y,{env="dev"}:30d'
"${VM_METRICS_URL%%/select/*}/retention-filters-debug"
These return HTML by default. For programmatic use, the VMUI at `${VM_METRICS_URL%%/select/*}/vmui/#/relabeling` provides an interactive interface.curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
-d 'metric=foo{bar="baz"}'
-d 'retention_period=2y,{env="dev"}:30d'
"${VM_METRICS_URL%%/select/*}/retention-filters-debug"
-d 'metric=foo{bar="baz"}'
-d 'retention_period=2y,{env="dev"}:30d'
"${VM_METRICS_URL%%/select/*}/retention-filters-debug"
这些端点默认返回HTML。如果用于编程场景,可通过VMUI的`${VM_METRICS_URL%%/select/*}/vmui/#/relabeling`界面进行交互式调试。Timestamp Format
时间戳格式
All times accept RFC3339 () or Unix seconds (). Default for instant queries is "now". Default for range queries is "now".
2026-03-07T09:00:00Z1709769600timeend所有时间参数支持RFC3339格式()或Unix时间戳()。即时查询的默认为“当前时间”。范围查询的默认为“当前时间”。
2026-03-07T09:00:00Z1709769600timeendResponse Parsing (jq)
响应解析(jq)
bash
undefinedbash
undefinedExtract metric values from instant query
从即时查询中提取指标值
... | jq '.data.result[] | {metric: .metric.name, value: .value[1]}'
... | jq '.data.result[] | {metric: .metric.name, value: .value[1]}'
Extract time series from range query
从范围查询中提取时间序列
... | jq '.data.result[] | {metric: .metric, values: [.values[] | {time: .[0], value: .[1]}]}'
... | jq '.data.result[] | {metric: .metric, values: [.values[] | {time: .[0], value: .[1]}]}'
List metric names from series response
从序列响应中列出指标名称
... | jq '[.data[] | .name] | unique'
... | jq '[.data[] | .name] | unique'
Count alerts by state
按状态统计告警数量
... | jq '.data.alerts | group_by(.state) | map({state: .[0].state, count: length})'
... | jq '.data.alerts | group_by(.state) | map({state: .[0].state, count: length})'
Top series by cardinality from tsdb status
从TSDB状态中获取基数最高的序列
... | jq '.data.seriesCountByMetricName[:10]'
undefined... | jq '.data.seriesCountByMetricName[:10]'
undefinedCommon Patterns
常见模式
bash
undefinedbash
undefinedCheck if a metric exists
检查指标是否存在
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=count({name=~"http_request.*"})" | jq '.data.result[].value[1]'
"$VM_METRICS_URL/api/v1/query?query=count({name=~"http_request.*"})" | jq '.data.result[].value[1]'
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
"$VM_METRICS_URL/api/v1/query?query=count({name=~"http_request.*"})" | jq '.data.result[].value[1]'
"$VM_METRICS_URL/api/v1/query?query=count({name=~"http_request.*"})" | jq '.data.result[].value[1]'
Get all namespaces with active pods
获取所有包含活跃Pod的命名空间
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={name="kube_pod_info"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
--data-urlencode 'match[]={name="kube_pod_info"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'match[]={name="kube_pod_info"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
--data-urlencode 'match[]={name="kube_pod_info"}'
"$VM_METRICS_URL/api/v1/label/namespace/values" | jq '.data[]'
Rate of errors over last hour
过去一小时内的错误率
curl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'query=sum(rate(http_requests_total{code=~"5.."}[5m])) by (namespace)'
"$VM_METRICS_URL/api/v1/query" | jq '.data.result[] | {ns: .metric.namespace, rate: .value[1]}'
--data-urlencode 'query=sum(rate(http_requests_total{code=~"5.."}[5m])) by (namespace)'
"$VM_METRICS_URL/api/v1/query" | jq '.data.result[] | {ns: .metric.namespace, rate: .value[1]}'
undefinedcurl -s ${VM_AUTH_HEADER:+-H "$VM_AUTH_HEADER"}
--data-urlencode 'query=sum(rate(http_requests_total{code=~"5.."}[5m])) by (namespace)'
"$VM_METRICS_URL/api/v1/query" | jq '.data.result[] | {ns: .metric.namespace, rate: .value[1]}'
--data-urlencode 'query=sum(rate(http_requests_total{code=~"5.."}[5m])) by (namespace)'
"$VM_METRICS_URL/api/v1/query" | jq '.data.result[] | {ns: .metric.namespace, rate: .value[1]}'
undefinedEnvironment Switching
环境切换
bash
undefinedbash
undefinedCheck current environment
检查当前环境
echo "VM_METRICS_URL: $VM_METRICS_URL"
echo "VM_AUTH_HEADER: $( [ -n "$VM_AUTH_HEADER" ] && echo '(set)' || echo '(empty)' )"
undefinedecho "VM_METRICS_URL: $VM_METRICS_URL"
echo "VM_AUTH_HEADER: $( [ -n "$VM_AUTH_HEADER" ] && echo '(已设置)' || echo '(为空)' )"
undefinedImportant Notes
重要注意事项
- POST endpoints accept (use
application/x-www-form-urlencodedfor query params with special chars)--data-urlencode - parameter requires the
match[]suffix —[]alone won't workmatch - For metric metadata, raw API uses param
metric - uses a path parameter:
label_values/api/v1/label/{label_name}/values - ,
expand-with-exprs,prettify-query,flags,metric-relabel-debug, anddownsampling-filters-debugare root-level paths, not underretention-filters-debug/api/v1/ - Export endpoint () returns JSON lines (one object per line), not standard API response JSON
/api/v1/export - Debug endpoints (, etc.) return HTML by default — best used via VMUI for interactive debugging
metric-relabel-debug - For full endpoint details, parameters, and response formats, see
references/api-reference.md
- POST端点接受格式(对于包含特殊字符的查询参数,请使用
application/x-www-form-urlencoded)--data-urlencode - 参数必须包含
match[]后缀——仅使用[]无效match - 指标元数据接口使用参数
metric - 使用路径参数:
label_values/api/v1/label/{label_name}/values - 、
expand-with-exprs、prettify-query、flags、metric-relabel-debug和downsampling-filters-debug是根级路径,不在retention-filters-debug下/api/v1/ - 导出端点()返回JSON行(每行一个对象),而非标准API响应JSON
/api/v1/export - 调试端点(如等)默认返回HTML——通过VMUI进行交互式调试体验更佳
metric-relabel-debug - 如需完整的端点详情、参数和响应格式,请查看
references/api-reference.md