惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
Engineering at Meta
Engineering at Meta
I
InfoQ
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
H
Help Net Security
博客园 - 【当耐特】
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
腾讯CDC
雷峰网
雷峰网
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
D
Docker

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
pedantic.run · PromQL query analyzer · pedantic.run
neinasaservi · 2026-06-20 · via Hacker News: Show HN
PromQL analysis · HTTP API

Lint your PromQL over a single HTTP call.

pedantic.run parses a query and returns the patterns that get expensive at runtime — negative-regex matchers, bare selectors, high-cardinality groupings. Send a query, get back JSON findings. No auth, no state.

Send a query

Post the query as JSON to /api/analyze:

The query is read from the first of these that is present:

?q= param

GET or POST query string

GET /api/analyze?q=rate(...)

query field

JSON or form body

{"query": "rate(...)"}

raw body

text/plain request body

POST body: rate(...)

What you get back

A JSON object with the original query, a summary tally of verdicts, and the flat list of findings.

verdict — how worried to be (worst first)

invalid

Doesn't type-check — won't run.

slow

Expensive whatever your data.

runtime_dependent

Cost depends on cardinality.

moderate

Noticeable but usually fine.

fast

No concerns found.

status codes

200

Analyzed — findings returned.

400

Empty query — nothing to analyze.

422

Could not parse or analyze the query.

Finding codes

Each finding carries a category and one or more codes. Here's what every code means.

matchers

BARE_SELECTOR
Selector with no label filters — scans every series for the metric.

REGEX_MATCHER
Uses =~ / !~ instead of equality; harder to index.

NEGATIVE_REGEX
!~ must scan all series just to exclude some.

CATCHALL_MATCHER
A .* / .+ value matches everything — no real filtering.

UNANCHORED_REGEX
Regex not anchored at both ends; can't shortcut the lookup.

range_vectors

LONG_RANGE_VECTOR
Window long enough to load a lot of samples (> 59m / > 2h).

SHORT_RANGE_VECTOR
Sub-minute window that may under-sample the metric.

NO_AGGREGATION_HIGH_CARD
A high-cardinality selector returned raw, with no aggregation.

SUBQUERY
A subquery re-evaluates the inner query at every step.

NESTED_SUBQUERY
A subquery inside a subquery multiplies that work.

aggregation

HIGH_CARD_GROUPING
Grouping by an unbounded label (request_id, trace_id, pod, …).

SORT_AGGREGATION
topk / bottomk / quantile must sort the full result set.

structure & type_error

VECTOR_JOIN
A binary op with empty on() matching.

REDUNDANT_SUBEXPR
The same sub-expression is computed more than once.

ARITY_MISMATCH
A function called with the wrong number of arguments.

ARG_TYPE_MISMATCH
An argument has the wrong type (e.g. instant where a range is required).