Skip to main content

Plans & Pricing

InfraSage uses an event-based billing model. You pay for the telemetry you ingest, not the number of services you monitor.


Plan Comparison

FreeStarterProEnterprise
Price$0/mo$149/mo$599/moCustom
Events/month1 million50 million500 millionUnlimited
API keys2520100
Users31050500
Rate limit10 RPS100 RPS500 RPS5,000 RPS
Data retention7 days30 days90 days365 days
Anomaly detection
AI-powered RCA
ML Engine
Runbook automation
All integrations
Multi-tenancy
Federation
SLANone99.5%99.9%99.99%
SupportCommunityEmailPriorityDedicated SRE

What Counts as an Event?

One event = one telemetry record ingested via any method (JSON, OTLP, Prometheus remote-write).

Event TypeCounts as Events
Single metric data point1 event
Single log line1 event
Single trace span1 event
Batch of 100 records100 events
AWS CloudWatch metric poll (per data point)1 event
Kubernetes event1 event

Events are counted at ingestion time when they pass validation. Failed records sent to the DLQ do not count toward your quota.


Viewing Usage

Via API

curl http://localhost:8080/api/v1/usage \
-H "Authorization: Bearer $ADMIN_JWT"
{
"tenant_id": "acme-corp",
"plan": "pro",
"billing_period_start": "2026-04-01T00:00:00Z",
"billing_period_end": "2026-05-01T00:00:00Z",
"events_limit": 500000000,
"events_used": 142000000,
"events_remaining": 358000000,
"usage_by_type": {
"metric": 120000000,
"log": 15000000,
"trace": 5000000,
"event": 2000000
},
"rps_limit": 500,
"current_rps": 1247
}

Via ClickHouse

SELECT
toStartOfHour(timestamp) AS hour,
type,
count() AS events
FROM infrasage.infrasage_usage_metering
WHERE tenant_id = 'acme-corp'
AND timestamp > now() - INTERVAL 7 DAY
GROUP BY hour, type
ORDER BY hour DESC

Upgrading Your Plan

To upgrade:

curl -X POST http://localhost:8080/api/v1/billing/upgrade \
-H "Authorization: Bearer $SUPER_ADMIN_JWT" \
-d '{"plan": "enterprise"}'

Plan changes take effect immediately. You will be charged a prorated amount for the remainder of the billing period.


Rate Limiting

When you exceed your plan's RPS limit, the API returns:

HTTP/1.1 429 Too Many Requests
Retry-After: 1
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1712750461

Your data is not lost — back off and retry. The Ingestion Gateway includes a local buffer to absorb bursts.


Event Quota Enforcement

When you reach 90% of your monthly event quota, InfraSage:

  1. Sends a warning to your configured contact_email
  2. Posts an alert to your configured Slack channel (if configured)

When 100% is reached, new ingestion requests return HTTP 429 with:

{
"error": "quota_exceeded",
"message": "Monthly event quota exhausted (1,000,000/1,000,000). Upgrade your plan or wait for the next billing period."
}

Enterprise Plan

Enterprise is designed for organizations with:

  • More than 500 services monitored
  • Compliance requirements (SOC 2, HIPAA, FedRAMP)
  • Multi-region or multi-cloud deployments
  • Dedicated SRE support requirements
  • Custom data residency needs

Contact sales@infrasage.io to discuss Enterprise pricing and custom SLAs.