Spitfirev0.70.0 · What's new

Where does your system break?Self-hosted, on-premise 24/7 load testing and performance testing

curl -fsSL https://spitfire.sh | SPITFIRE_LANG=en bash -s -- docker

System requirements →Install guide →What's new · v0.70.0 →

Breaking point: the load climbs step by step and the run stops when a threshold breaks.

Spitfire · liveexample system · illustrative
virtual users
420
req/s
3,780
p95
194ms
p(95)<500
✓ pass
24/7always-on

Not a tool you open now and then: on watch all the time

Spitfire works in two modes. On watch, your tests keep running on production at a low load and tell you once when something changes; when needed, the same test pushes the system with the full load.

1 · Watch

All the time, at a low load

Your critical flows are tried on production every 1–60 minutes with 1–10 virtual users, each scenario once. The system does not notice; you notice when something changes.

  • Uptime, step durations, recent failures
  • Living baseline: drift without thresholds
  • SLO and error budget
  • A 30-minute close watch after each deploy
  • One notice per incident, drift and budget
2 · Heavy when needed

When you ask, the full load

Before a sale, a big release or an infrastructure change, the same test becomes a distributed load test: the load climbs step by step and you see the breaking point and what slowed down in the backend.

  • Breaking point and thresholds
  • Scheduled runs and a CI release gate
  • Version comparison (A/B)
  • Root cause with OpenTelemetry and monitoring alerts
Always-on watchsample view
Watching6
Uptime (24 h)99.97%
Open incidents0
Last check12 s ago
Budget lowCheckout flownow 99.92% · target 99.9% · 20% left
Slower than normalOrder listp95 +25% (210 → 262 ms)
On target4 monitors keep their 30-day SLO.

How always-on works →

Productreal screens

Fill in a test like a form.

Scenario, stages, steps and thresholds on one screen. Behind it the same test is kept as JSON, so you can also write it as a file.

spitfire.local/tests/…/edit
Spitfire: Test editor

Scenario, load model and stages, with the plan drawn on the right. Steps, thresholds, environments and JSON on the same screen. Real screenshot, dark theme.

See a sample report →

Integrations

Your monitoring, inside the load test

When the system breaks, Spitfire writes into the same report what your monitoring alerted on at that moment. No agent, and nothing is written to these systems.

Also: Prometheus, Grafana Tempo, Jaeger, Loki, Jira, ServiceNow, Azure DevOps, GitLab, YouTrack, Redmine, Linear, Slack, Microsoft Teams, GitHub Actions, GitLab CI, Jenkins…

All integrations →

Version comparisonat the same time

Is the new release slower? Find out before it goes live.

Run the same test, with the same load, at the same time, against the environment running the old release and the one running the new release. Every runner splits its load evenly between the two, so network and timing differences do not skew the result. At the end Spitfire shows the difference step by step and says it plainly: better, no difference, or worse.

spitfire.local/comparisons/…
Spitfire: a finished comparison run. Verdict: worse; checkout p95 from 219 ms to 268 ms (+22%, 95% confidence interval ±2.4%), search from 150 ms to 130 ms (−13%, ±1.7%). Below, both releases' request rate and p95 charts.
A finished comparison run: the verdict card, the largest differences with their confidence intervals, and both releases' charts. Real screenshot.

Like for like

Before it starts it compares the two environments, and warns when they share a database or sit at different network distances.

Takes out the environment difference

A calibration run with the same release on both measures how the environments differ on their own; the result is corrected for it.

Release gate

In CI, a slower new release fails the step with exit 98, and the release does not go live.

NewTower and Collector

What are your servers and database doing as the load climbs?

While the test runs, the server's CPU, memory and disk and PostgreSQL's connections, commits and deadlocks are in the run report, right next to the load stages. No connection to add to the test.

Your networkCollectorserver · CPU, memoryCollectorPostgreSQL · pg_monitorOTLPTowerdisk bufferno inboundone outgoingSpitfirecontrollerRun reportBackend tabload · CPU
  1. Collector server · PostgreSQL
  2. Tower in your network, disk buffer
  3. One outgoing link no inbound
  4. Spitfire run report · Backend
ServerCPU %Memory %Load (1 min)Disk I/ONetwork I/O
PostgreSQLConnectionsConnections / max %commits/srollbacks/sdeadlocks/sRow operations/s
One outgoing link

The Tower only connects to the controller. Nothing connects into your network, and no internet access is needed.

Holds on when the link drops

If it can't reach the controller it keeps the metrics on disk (1 GB / 24 hours by default) and forwards them in order once the link is back.

A config in a few clicks

The config for the official OpenTelemetry Collector is made in the product; the token and the password stay out of the file and come from the environment.

Statistics, not your data

For PostgreSQL the pg_monitor role is enough: it can't read the data in your tables, only the statistics.

The free key includes 1 server + 1 database, kept 7 days; more as your plan grows, unlimited and 365 days on Enterprise. Plans →

What can it do?

Tests without code

Steps are set up in a form; or import OpenAPI, Postman, HAR, k6 or JMeter.

Beyond HTTP

gRPC, WebSocket, Kafka, MQTT, SQL and more in the same test.

Breaking point and findings

The load climbs in steps; where it broke and the slowest step, with the numbers.

A report to share

Every run becomes a PDF, HTML or a time-limited link in one click.

CI and scheduled runs

A release gate in the pipeline; nightly runs with Slack, Teams and e-mail alerts.

Safe, built for teams

A guard against production writes, SSO, roles and an audit log.

Every feature in detail →

Multi-locationone run

One run, several cities.

Split the load across locations by percentage and see each location's latency separately. Remote runners connect outbound to the controller over TLS with key pinning, so the load servers need no inbound ports.

A runner installs as a Docker image or as a single binary with a systemd unit; the UI prepares the install command.

controller
web UI · REST API · Postgres
gRPC/TLS :8471
runners dial out and verify the certificate pin
--ca-pin sha256:9f2c…e41a
istanbul
3 runner · Docker
60%
frankfurt
2 runner · systemd
40%
Enterprisesecurity · governance

Works by your organization's rules.

Spitfire runs on your infrastructure; identity, permissions and audit plug into your organization's processes.

Data stays in your network

The controller, database and runners run on your servers; test definitions and results are not sent out. The license is verified offline and works air-gapped.

Runners dial out

No inbound port on the load servers. The runner checks the controller's key against a SHA-256 pin, which protects against man-in-the-middle attacks.

Production write guard

SQL/MongoDB writes, dangerous Redis commands and data-changing HTTP requests are flagged; the test does not start until the person starting it sees the list and confirms. It asks again on every run.

Append-only audit log

Who did what, when and from where. A database trigger refuses updates and deletes; exports as CSV.

Encrypted secrets

Connection passwords, tokens and certificate keys are encrypted with AES-256-GCM in the database; the API never shows them again.

Database access by consent, least privilege

Query suggestions from the schema are for installation admins only; nothing is read until a consent is recorded: who, when, from where. A ready read-only user script is provided and only the catalog is read.

Read the full security statement → · Self-hosted load testing →

Single sign-on

OIDCSAML 2.0Entra IDOktaGoogleKeycloakLDAP / Active DirectorySCIM 2.0

Roles and groups are mapped from your identity provider. Password sign-in can be limited to admins; SSO users have no local password. On Enterprise, SCIM closes a leaver's access at once.

Roles and groups

Admins write the tests. Groups decide who sees which test and who may run it. Reports are shared with people without an account through a link valid for 1–90 days.

Audit log

Tests, connections, users, permissions, sign-ins, run start and stop, write confirmations, report shares. You set the retention period (at least 30 days). On Enterprise it streams live to a SIEM over syslog or a signed webhook.

Kubernetes or Docker

Installs with one command in your own data center, private cloud or AWS/Azure VPC; amd64 and arm64.

Multiple locations

Split a run's load across locations by percentage. Remote runners install with Docker or without it (systemd, Windows service) and dial out to the controller.

MobileAndroid

The run in your pocket

Follow the run live on your phone and stop it with one tap if it goes wrong. When it ends, the result and findings are in front of you; notifications reach your phone encrypted. Free.

Get it on Google PlayComing soon to the App Store Mobile app →
Scan with your phone to open Google Play
Spitfire mobile: live runSpitfire mobile: result and findings
Costcalculator

What does a month of load testing cost?

Don't let your bill grow with your virtual users: on Enterprise, VUs, requests/s and retention are unlimited at a flat price.

Example: 2,000 VUs · 60 min · 20 runs a month
Spitfire Growth license (the yearly plan, per month)$242billed yearly: $2,900 (incl. taxes)
Your own runner VMs (2 runners, estimated)$4
Monthly total with Spitfire$246
Yearly total with Spitfire (license + 12 months of runners)$2,948
Just one month: the Growth one-time month (no stored card, no renewal); the runner cost is the same$299

License: list price incl. taxes; the yearly and one-time monthly plans are paid once, no card is stored and nothing renews automatically; there is no usage-based Spitfire fee (per VU or per run hour). Runners run on your servers or in your cloud account; you pay your provider for those machines, not Spitfire. The calculator counts one runner per 1,000 VUs and assumes $0.10 for a runner VM hour. An estimate, not a quote.

Start free

Every testing feature in every edition · no usage charges, a fixed license price.

Free

$0with a free key, no expiry
  • Active users1
  • Runs at a time1
  • Concurrent virtual users100
  • Requests / second500
  • Run length15 min
  • Browser VUs (Web Vitals)1
  • Runners · locations per run1 · 1
  • Per-second results kept7 days
  • Scheduled tests1
  • Notification channels1
  • Server and database metrics The Collector is the official OpenTelemetry Collector on your server: it gathers CPU, memory, disk, network and PostgreSQL metrics. A Tower is a small gateway in your network: it forwards the Collectors' metrics to Spitfire over one outgoing link, so the run report shows what the server and the database did next to the load stages. The numbers: servers with metrics · databases · days the metrics are kept. Full explanation →1 server
    1 database
    kept 7 days
  • Synthetic monitors1 · every 15 min at most
  • SSO · LDAP · audit log—
  • Version comparison1 a month
  • Performance budgets · PR comments1 test · 1 repository
  • Monitoring events (Zabbix, Datadog, New Relic, Dynatrace, Instana)add-on · 7-day trial
  • Issue tracking (Jira, ServiceNow, Azure DevOps…)add-on · 7-day trial
  • PDF / shared report“Free” mark
  • SupportCommunity
  • Price lock (on renewal)—
  • Add-on packs (more limits, same plan)—

Starter

$83/mo incl. taxes · Starter yearly

billed yearly: $990 (incl. taxes) Yearly: paid once, the license does not renew itself; you get a reminder before it ends.

  • Active users2
  • Runs at a time1
  • Concurrent virtual users500
  • Requests / second2,500
  • Run length1 h
  • Browser VUs (Web Vitals)5
  • Runners · locations per run2 · 1
  • Per-second results kept30 days
  • Scheduled testsunlimited
  • Notification channelsunlimited
  • Server and database metrics The Collector is the official OpenTelemetry Collector on your server: it gathers CPU, memory, disk, network and PostgreSQL metrics. A Tower is a small gateway in your network: it forwards the Collectors' metrics to Spitfire over one outgoing link, so the run report shows what the server and the database did next to the load stages. The numbers: servers with metrics · databases · days the metrics are kept. Full explanation →3 servers
    1 database
    kept 30 days
  • Synthetic monitors3
  • SSO · LDAP · audit log✓
  • Version comparison✓
  • Performance budgets · PR comments1 test · 1 repository
  • Monitoring events (Zabbix, Datadog, New Relic, Dynatrace, Instana)—
  • Issue tracking (Jira, ServiceNow, Azure DevOps…)—
  • PDF / shared reportunbranded
  • SupportE-mail support, answered within 2 business days
  • Price lock (on renewal)✓
  • Add-on packs (more limits, same plan)—

Growth

$242/mo incl. taxes · Growth yearly

billed yearly: $2,900 (incl. taxes) Yearly: paid once, the license does not renew itself; you get a reminder before it ends.

  • Active users5
  • Runs at a time3
  • Concurrent virtual users2,000
  • Requests / second10,000
  • Run length4 h
  • Browser VUs (Web Vitals)5
  • Runners · locations per run10 · 3
  • Per-second results keptunlimited
  • Scheduled testsunlimited
  • Notification channelsunlimited
  • Server and database metrics The Collector is the official OpenTelemetry Collector on your server: it gathers CPU, memory, disk, network and PostgreSQL metrics. A Tower is a small gateway in your network: it forwards the Collectors' metrics to Spitfire over one outgoing link, so the run report shows what the server and the database did next to the load stages. The numbers: servers with metrics · databases · days the metrics are kept. Full explanation →10 servers
    3 databases
    kept 90 days
  • Synthetic monitors10
  • SSO · LDAP · audit log✓
  • Version comparison✓ · CI and schedules on yearly
  • Performance budgets · PR commentsunlimited
  • Monitoring events (Zabbix, Datadog, New Relic, Dynatrace, Instana)add-on · 7-day trial
  • Issue tracking (Jira, ServiceNow, Azure DevOps…)add-on · 7-day trial
  • PDF / shared reportunbranded
  • SupportE-mail support, answered within 2 business days
  • Price lock (on renewal)✓
  • Add-on packs (more limits, same plan)✓

Scale

$575/mo incl. taxes · Scale yearly

billed yearly: $6,900 (incl. taxes) Yearly: paid once, the license does not renew itself; you get a reminder before it ends.

  • Active users15
  • Runs at a time5
  • Concurrent virtual users10,000
  • Requests / second50,000
  • Run length8 h
  • Browser VUs (Web Vitals)20
  • Runners · locations per run30 · 6
  • Per-second results keptunlimited
  • Scheduled testsunlimited
  • Notification channelsunlimited
  • Server and database metrics The Collector is the official OpenTelemetry Collector on your server: it gathers CPU, memory, disk, network and PostgreSQL metrics. A Tower is a small gateway in your network: it forwards the Collectors' metrics to Spitfire over one outgoing link, so the run report shows what the server and the database did next to the load stages. The numbers: servers with metrics · databases · days the metrics are kept. Full explanation →30 servers
    10 databases
    kept 180 days
  • Synthetic monitors30
  • SSO · LDAP · audit log✓
  • Version comparison✓ · CI and schedules on yearly
  • Performance budgets · PR commentsunlimited
  • Monitoring events (Zabbix, Datadog, New Relic, Dynatrace, Instana)add-on · 7-day trial
  • Issue tracking (Jira, ServiceNow, Azure DevOps…)add-on · 7-day trial
  • PDF / shared reportunbranded
  • SupportE-mail support, answered within 1 business day
  • Price lock (on renewal)✓
  • Add-on packs (more limits, same plan)✓

Enterprise

By quote

Priced for your scale and number of installations

  • Active usersunlimited
  • Runs at a timeunlimited
  • Concurrent virtual usersunlimited
  • Requests / secondunlimited
  • Run lengthunlimited
  • Browser VUs (Web Vitals)unlimited
  • Runners · locations per rununlimited
  • Per-second results keptunlimited
  • Scheduled testsunlimited
  • Notification channelsunlimited
  • Server and database metrics The Collector is the official OpenTelemetry Collector on your server: it gathers CPU, memory, disk, network and PostgreSQL metrics. A Tower is a small gateway in your network: it forwards the Collectors' metrics to Spitfire over one outgoing link, so the run report shows what the server and the database did next to the load stages. The numbers: servers with metrics · databases · days the metrics are kept. Full explanation →unlimited servers
    unlimited databases
    kept 365 days
  • Synthetic monitorsunlimited
  • SSO · LDAP · audit log✓
  • Version comparison✓ + CI and schedules
  • Performance budgets · PR commentsunlimited
  • Monitoring events (Zabbix, Datadog, New Relic, Dynatrace, Instana)included
  • Issue tracking (Jira, ServiceNow, Azure DevOps…)included
  • PDF / shared reportunbranded
  • SupportPriority support, answered within 1 business day
  • Price lock (on renewal)by contract
  • Add-on packs (more limits, same plan)not needed

1 production + 1 test installation (same legal entity) · support by e-mail, weekdays 09:00–18:00 UTC+3 (Istanbul); 1 business day is the time to a first response, not to a fix · 10–15% off for several years

Request a quote

Add-ons and payment details →

Frequently asked questions

The questions we hear most, from installing Spitfire to what happens during a run.

Is my test data sent anywhere?Security
No. The controller, runners and results run on your own servers, and the license key is verified offline.
Was this answer helpful?
Do I need to write code?Getting started
No. A test is built step by step in the web editor. If you prefer, write the same test as a JSON file and run it with the CLI.
Was this answer helpful?
Can I bring my k6 or JMeter tests?Getting started
Yes. Tests → Open file turns a k6 script or a .jmx plan into a Spitfire test and opens it in the editor; the file is read, not run. Load model, requests, checks, values taken from responses, think times and thresholds are converted; what has no equivalent, like loops, conditions and custom metrics, is reported with its line. Details in the migration guide.
Was this answer helpful?
How much load can my system take?Tests
"Find the breaking point" in the Run dialog climbs one scenario's load in steps (say 10, 20, 30… iterations a second) and judges each step on its own numbers against the p95 and error rate you give. The first step that fails stops the run; the run page says "met the criteria at 200 iterations/s, not at 230". If the climb stopped because virtual users ran out, it also says that this is not the system's limit.
Was this answer helpful?
Can I run the same test against staging and production?Tests
Yes. On the test's Environments tab each environment gives its own address and variables and maps the steps' connections to its own (orders-db → orders-db-staging). You pick the environment when starting a run or a schedule and can scale the load (10% for a smoke test); the run shows which environment and scale it used. The test stays one test with one version history.
Was this answer helpful?
Can I test live screens that use WebSocket or Server-Sent Events?Tests
Yes. In a WebSocket step every virtual user keeps one connection, like a browser tab: it sends a message, waits for the reply or for a message the server pushes (containing a given text), and the message goes to checks and extraction. The connection carries the cookies from login and reconnects on the next step if it drops; the handshake is measured as ws_connecting. An SSE step opens the event stream and reads until the given number of events (by type or content) arrived; the time to the first event is the sse_time_to_first_event metric. Both can have thresholds. More: the WebSocket and SSE load testing guide.
Was this answer helpful?
Can I run stress, spike and soak tests too?Tests
Yes, with the same test; only the load model changes. A load test stays at the expected traffic, a stress test climbs the load to find the limit, a spike test jumps it within seconds and looks at the recovery, and a soak test runs for hours to catch what appears over time, like memory leaks. Run length depends on the license. More: the load, stress, spike and soak testing guide.
Was this answer helpful?
What if a runner or the controller drops during a run?Setup and operation
A runner whose connection drops and comes back within 10 seconds carries on; if it does not, the run stops, or continues without it if the test says so. If the controller is stopped (an update, a restart), it stops the active runs and stores their results first; if it goes down unexpectedly, the run closes as interrupted when it starts again. Either way the runners drop the load at once and webhook receivers get the end notice. Stop and thresholds work even while the database is slow; if some data could not be stored, the run says so as a warning.
Was this answer helpful?
Can I run a fixed number of operations instead of a duration?Tests
Yes. "Shared iterations" splits a fixed number of iterations among the VUs; "per-VU iterations" has every VU run the same number. The test ends when the work is done, with a max duration as the ceiling. Across several runners the work is split exactly by each runner's share of the VUs. Good for data loading, smoke tests and one-off jobs.
Was this answer helpful?
I have a Swagger document, a Postman collection or a browser recording. Do I write the test from scratch?Getting started
No. Tests → Import API / HAR: give an OpenAPI 3, Swagger 2.0 or Postman v2.x collection, or a HAR recording (browser DevTools → Network → "Save all as HAR"), and pick requests. In a HAR, static files are dropped, tokens and ids become variables automatically, and cookies stay separate per virtual user. Only GET requests are taken by default; POST, PUT/PATCH and DELETE need a per-group approval plus the target host name, the approval is written to the audit log, and the test asks again on every run. More: the OpenAPI and Postman guide.
Was this answer helpful?
Our monitoring alarms during load tests. What can we do?Tests
On the Integrations page, announce run start and end with a webhook and send live metrics over OTLP or Prometheus. Your monitoring can mark the test window from these events and tell symptoms during the test apart from real incidents.
Was this answer helpful?
Can people sign in with their company account (Entra ID, Okta, Active Directory)?Security
Yes. On the single sign-on page set up your OpenID Connect provider (Entra ID, Okta, Google, Keycloak…) or your LDAP / Active Directory. Accounts can open on first sign-in, or only accounts an admin created may enter; you can limit sign-in to groups, map admin groups to the admin role and sync memberships into Spitfire groups of the same name. Password sign-in can be left to admins only; LDAP passwords are never stored in Spitfire.
Was this answer helpful?
Can a test run every night and tell us when something is wrong?Tests
Yes. On the test's page, Schedule: pick a cron and time zone; the run starts with the rights of whoever created the schedule. Under Integrations → Notification channels add a Slack, Microsoft Teams, e-mail or SMS channel (SMS works with any SMS service's HTTP API or your own gateway) and turn on "Only notify on problems": you hear when a threshold breaks, a run fails, or a scheduled run does not start (no runners, missed). The e-mail carries the run's PDF report.
Was this answer helpful?
How do I send results outside the team?Tests
On the run page, Report → Download PDF or Share link. The link shows the HTML and PDF report without signing in; it lasts 1–90 days, can be revoked at any time, and every view is written to the audit log. Reports come in Turkish or English.
Was this answer helpful?
How do I run tests from my CI/CD pipeline?Tests
Create a token under profile menu → API tokens, add it to the pipeline as the SPITFIRE_TOKEN secret, and run spitfire cloud run "Test name" in a step. The CLI comes from the controller or the Docker image; the CI button on a test's page prepares GitHub Actions and GitLab CI steps. The step exits 0 (passed) or 99 (thresholds failed).
Was this answer helpful?
Where can I install it?Setup and operation
Docker or Kubernetes, on amd64 and arm64; Linux, macOS and Windows (Docker Desktop, one PowerShell command). A runner in a remote location can also run without Docker: with systemd on Linux, as a Windows service on Windows.
Was this answer helpful?
I lost the setup code shown after installation. What now?Setup and operation
The code stays valid until the first admin exists and is stored: SPITFIRE_SETUP_CODE in ~/spitfire/deploy/docker/.env on Docker, the spitfire-secrets Secret on Kubernetes. The controller log also prints setup_code=, and re-running the installer shows the same code.
Was this answer helpful?
Our API wants a client certificate (mTLS); can I test it?Security
Yes. Save the certificate, the key and, if needed, the private CA to trust once under Connections → Client certificate (mTLS); HTTP, WebSocket and SSE steps pick it under "Client certificate". The key is stored encrypted and never enters the test definition; saving checks the certificate and key belong together, and the Test button checks the certificate has not expired.
Was this answer helpful?
How long are results kept?Setup and operation
You decide: the Data retention setting on the License page keeps per-second chart data, run logs and error samples (90 days by default), whole runs and the audit log for their own number of days; what you leave empty is kept forever. Tests' baseline runs are never deleted, and the page shows what would go before you save. The audit log is append-only: only entries older than 30 days are deleted this way, and the deletion is recorded too. On the free edition per-second results are kept for at most 7 days.
Was this answer helpful?
What happens when the license expires?Licensing and pricing
The yearly plans and the one-time month (and Project pass and Quarter licenses bought before) do not renew automatically; we remind you by e-mail 14 and 3 days before the end. When the license ends, a 14-day grace period starts and the application says so. After it Spitfire runs within the free edition's limits (1 user, 1 run at a time, 100 virtual users, 500 requests/s, 15-minute runs, 1 runner and 1 location, 7 days of results, 1 scheduled test, 1 notification channel and 1 synthetic monitor (at most every 15 minutes)); starting new runs needs a free key or a new license. Nothing is deleted: tests, runs and reports stay, extra users become read-only, extra schedules pause, the SSO settings are kept. Paste the new key on the License page and the limits open again at once, without reinstalling.
Was this answer helpful?
How do I hear about new releases, and is updating hard?Setup and operation
The application tells you about a new release itself (from a signature-checked release list), and security updates are marked. Updating is the same single install command: the database is backed up first and the settings kept; if anything goes wrong, --rollback returns to the previous release and its data. Runners installed without Docker update themselves from the Runners page or with auto-update.
Was this answer helpful?
When does the license term start?Licensing and pricing
For the yearly plans and the one-time month, the day you first enter the key on Spitfire's License page. Install a week after you got the key and you still lose no days; just enter it within 30 days of it being issued. The License page shows the activation date, the end and the days left; the key is still verified offline.
Was this answer helpful?
What happens to what I paid when I upgrade?Licensing and pricing
It is taken off. Paste your key under “Upgrade my license” on the buy page: upgrade a Project pass or a one-time month within 30 days of issue and all you paid comes off; for the Quarter, Growth and Scale yearly, the value of the days left does (Growth to Scale too). It shows as its own line on the invoice. Days left are rounded up in your favour; the credit never exceeds the new plan's price and nothing is refunded. The new key replaces the old one.
Was this answer helpful?
Does the price change when I renew?Licensing and pricing
Growth, Scale and Enterprise yearly have a price lock: renew with your current key within the last 30 days before the end and the new year costs what your original order paid (or the list price, if it went down). The lock covers one period. The new period starts the day after the current one ends, so renewing early loses no days.
Was this answer helpful?
What is the price lock? What else comes with yearly?Licensing and pricing
Price lock: renew your yearly license with your current key in the last 30 days before the end and the new year costs what you first paid, or the list price if it went down. If you bought Growth yearly today for $2,900 incl. taxes, you pay $2,900 incl. taxes again when you renew on time, even if the list price has gone up. The lock covers one period; a license bought as a renewal renews at the current price next time. Synthetic monitoring: your scenario runs on production at low load every 1–60 minutes and alerts you on Slack, Teams, SMS or e-mail when it breaks or slows down; yearly gives 10 monitors on Growth and 30 on Scale, other plans 1. PR comments: the CI run is compared with the baseline run and posted as a pull/merge request comment; a breached per-endpoint performance budget fails the pipeline. Add-on packs: raise the limits without changing plan: +5 users ($419 / year), +2,000 virtual users (+10,000 requests/s) ($749 / year), +4 hours of run length ($299 / year), +5 runners · +2 locations ($499 / year), +10 servers (metrics) ($119 / year), +5 databases (metrics) ($119 / year).
Was this answer helpful?
If Growth's limits are not enough, must I move to Scale or Enterprise?Licensing and pricing
Not necessarily. Growth and Scale yearly take add-on packs: +5 users ($419 / year), +2,000 virtual users (+10,000 requests/s) ($749 / year), +4 hours of run length ($299 / year), +5 runners · +2 locations ($499 / year), +10 servers (metrics) ($119 / year), +5 databases (metrics) ($119 / year); prices incl. taxes. Packs added to a running license are priced for the days left and come with a new key. If Growth with packs comes near the Scale price and fits within Scale's limits, the buy page suggests Scale; if it does not fit, or Scale with packs reaches Enterprise level, it suggests Enterprise.
Was this answer helpful?
Do your prices include VAT or sales tax?Licensing and pricing
Prices in US dollars are what you pay; nothing is added at checkout. We are a company in Türkiye and sales abroad are exempt from Turkish VAT, so your invoice shows 0% VAT. Depending on where you are, your business may have to account for VAT or sales tax itself (in the EU, for example, under the reverse charge); your accountant can tell you. Prices in Turkish lira are before VAT (20%), which is added at checkout.
Was this answer helpful?
Can I get a discount by inviting friends?Licensing and pricing
Yes. When the first friend takes a free key with the invite code in your account, you both get a 10% coupon; from the 2nd to the 5th invite yours grows by 5% each time (30% at the 5th). After 5, each invite adds 30 days to a yearly license or 3 days to a one-time month. Details: Invite a friend.
Was this answer helpful?
Can we pay by bank transfer or get a quote?Licensing and pricing
Growth and Scale are bought by card; bank transfer and proforma are not taken on the buy page at the moment. If your organisation pays only by transfer, write to us. Enterprise is sold by quote: quote form; 1 production + 1 test installation, support by e-mail weekdays 09:00–18:00 UTC+3 (Istanbul); 1 business day is the time to a first response, not to a fix.
Was this answer helpful?
Which plan fits me?Licensing and pricing
For one testing period (before a launch or a campaign), the one-time month; for continuous testing (CI, nightly runs), yearly: it costs less a month, and only the yearly plan has price lock, synthetic monitoring, PR comments, add-on packs. Both have the same plan limits. Growth: 5 users, 3 concurrent runs; per run 2,000 virtual users, 10,000 requests/s, 4-hour runs, 10 runners and 3 locations; e-mail support, answered within 2 business days. For several teams, several runs at once or more load, Scale: 15 users, 5 concurrent runs; per run 10,000 virtual users, 50,000 requests/s, 8-hour runs, 30 runners and 6 locations; e-mail support, answered within 1 business day. If you need more than that, unlimited concurrent runs or priority support, Enterprise yearly has no limits, by quote. The yearly and one-time monthly plans are paid once; the license does not renew itself and nothing is charged again. Every testing feature and protocol is open in every edition. Team and organisation features (SSO, audit log, multiple runners) are in the paid plans.
Was this answer helpful?
What does the free edition limit?Licensing and pricing
Scale and team features: 1 user, 1 run at a time, 100 virtual users, 500 requests/s, 15-minute runs, 1 runner and 1 location, 7 days of results, 1 scheduled test, 1 notification channel and 1 synthetic monitor (at most every 15 minutes). SSO / LDAP, the audit log and multiple runners are in the paid plans; PDF and shared reports say "Made with Spitfire Free". Every testing feature, all protocols and CI pass/fail are open. 14 days after installing, new runs need a free key: you get it by e-mail, it does not expire and is verified offline. Your tests and results never leave your servers; the only request Spitfire makes on its own is a daily version check that sends just its version number and can be turned off.
Was this answer helpful?
How do I know whether the new release is slower than the old one?Tests
With a comparison run. Pick the environment running the old release as A and the one running the new release as B. Spitfire runs the same test against both at the same time, and every runner splits its load evenly between them. The result shows the difference and the verdict for every step: better, no difference, or worse. Version comparison →
Was this answer helpful?
My two environments are not identical. Can I still trust the result?Tests
Before it starts, Spitfire compares the two environments and warns about the differences it sees. To measure how the environments differ on their own, run a calibration with the same release on both; later comparisons show that difference apart from the result.
Was this answer helpful?
Why not run twice and compare the two runs?Tests
Between two runs at different times the network, the caches and the load on shared infrastructure can change. Running both at once spreads those outside effects evenly over the two sides; what is left is the difference the release makes.
Was this answer helpful?
I have one test environment. Can I still use it?Tests
Yes. In sequential mode the two releases take turns on the same environment (A, B, A, B); each time you switch the release, Spitfire moves on to the next round.
Was this answer helpful?
Can CI stop the deployment when the new release is slower?Tests
Yes. Give spitfire cloud run the --compare flag; if the new release is worse the step exits with 98 and the deployment stops.
Was this answer helpful?
Didn't find your answer?

Write your question to support@usespitfire.com or try Spitfire on your own systems with the 30-day pilot; our team will help you.

Write to us →