Skip to content
Calcrivo

Scrape Interval Calculator

Calculate Prometheus scrape load from target count and interval, and compare it against your scrape capacity.

Inputs

targets

Number of endpoints Prometheus scrapes.

seconds

Time between scrapes of each target.

ms

Average time to complete one scrape (network + target response + parse).

scrapes/sec

Concurrent scrapes your Prometheus instance can sustain (driven by scrape_timeout and worker concurrency).

Scrape Capacity Utilization

3.2%

Concurrent Scrape Load

1.60

Scrapes per Second

20.00/s

Max Targets at This Interval

9,375targets

Step by step

  1. Scrapes per second: targets ÷ interval

    300 ÷ 15s

    = 20.00/s

  2. Concurrent scrape load: rate × duration

    20.00/s × 0.080s

    = 1.60 concurrent

  3. Capacity utilization

    1.60 ÷ 50

    = 3.2%

  4. Max targets sustainable at this interval

    (50 ÷ 0.080s) × 15s

    = 9375 targets

How it works

Scrape load = targets ÷ interval, and multiplying by average scrape duration gives the effective number of concurrent in-flight scrapes: concurrent_load = (targets / interval) × avg_duration. Comparing this against your Prometheus instance's sustainable scrape capacity (bounded by scrape_timeout, network fan-out, and worker concurrency) shows whether your current interval/target combination is safe or will cause scrape delays and gaps.

Formula

samples_per_day = (86400 / scrape_interval_sec) × targets

scrape_interval_sec
Seconds between scrape attempts
targets
Number of scrape targets

Frequently Asked Questions

What happens if concurrent load exceeds capacity?

Scrapes start queuing and some may exceed `scrape_timeout`, resulting in missed/failed scrapes that show up as gaps in your metrics and `up == 0` for affected targets during the overload window.

Should I lower the scrape interval or add more Prometheus capacity first?

It depends on your goals — if you need higher-resolution data, scale capacity (more Prometheus replicas/shards, faster hardware, network tuning); if the current resolution is already sufficient, raising the interval is usually the cheaper fix.

Why does scrape duration matter as much as target count?

A target that's slow to respond (large metrics payload, slow app) ties up a scrape worker longer, so a smaller number of slow targets can create the same concurrent load pressure as many fast targets.

How do I measure real scrape capacity?

Watch `prometheus_target_scrapes_exceeded_sample_limit_total`, `scrape_duration_seconds`, and `up` metric flapping under load — sustained increases in scrape duration as target count grows is a sign you're approaching capacity.

You might also need