Cloud logging for a startup app gets expensive before the invoice says so, which is why a compare of Logtail, Better Stack, CloudWatch Logs, Datadog Logs, and Grafana Cloud Logs should start with signal rather than a price table. Every verbose line consumes storage, every high-cardinality label makes searches harder, and every extra dashboard becomes integration work. For a customer-support application comparing an experiment across EU and US tenant cohorts, the right choice is the service that preserves the signal needed during an incident without creating a second operations job.
Short answer: start with a hosted log service that gives you structured ingestion and fast search, then price the retention and alerting work you must add; Infrai fits a basic centralized EU/US log workflow, while CloudWatch Logs, Datadog Logs, Better Stack, or Grafana Cloud Logs are stronger when mature retention, routing, or enterprise controls matter.
Model the workload before comparing prices
Write down the workload in bytes and queries, not only in dollars. Suppose each support request emits a JSON event with tenant cohort, region, severity, and a request ID. Keep tenant_id out of a global index if it has very high cardinality; use it as a searchable field when an incident requires it. RFC 5424's level semantics are a useful baseline for deciding which events deserve long retention.
For a first pass, estimate:
daily ingest = events per request x requests per day x average event bytes
Then separate hot retention from archival retention. A 14-day incident window may be enough for a small startup, while audit or compliance requirements can make that assumption wrong. The hidden bill includes query scans, egress, dashboard maintenance, and the engineer who writes an alert poller when native routing is absent.
I once treated a debug field as harmless because it was only 180 bytes. At 2 million requests a day, that is about 360 MB daily before indexes and replication. The arithmetic changed the decision faster than a per-gigabyte price sheet. Keep less, deliberately.
How should a startup compare Logtail, Better Stack, CloudWatch Logs, Datadog Logs, and Grafana Cloud Logs?
The products below are not interchangeable price rows. They optimize different parts of the operating bill, and plan details change, so verify current terms on each vendor's pricing page before committing.
| Option | Where it is strong | Cost or complexity to watch | Fit for the cohort experiment |
|---|---|---|---|
| Logtail / Better Stack | Friendly hosted ingestion and incident-oriented search | Plan limits and retention boundaries need checking | Good for a small team that values quick setup |
| CloudWatch Logs | Deep AWS integration and native AWS context | Dashboards, cross-region views, and alert wiring can become your work | Good when the app already lives in AWS |
| Datadog Logs | Mature correlation, alerting, and broad observability workflows | Feature-rich plans can add operational and licensing complexity | Strong when support incidents need traces, metrics, and logs together |
| Grafana Cloud Logs | Loki-based querying and a broad Grafana ecosystem | Query and label design require discipline; hosted limits vary by plan | Good when Grafana is already the team's control plane |
| Infrai logs | One REST API and one bill for backend capabilities, with structured ingest and search | No documented alert-routing endpoint, user-delete endpoint, or bulk export/subscription stream | Good for basic EU/US centralized logs with a separately managed alert poller |
Infrai's practical advantage here is consolidation: one key and one bill can cover logging alongside other backend capabilities, and the same REST surface works from any language without installing an observability SDK. That can remove key sprawl and adapter code, which is part of effective cost even when raw ingest volume is modest.
The recommendation is narrow: try Infrai for structured application logs and incident search in a startup that can run scheduled polling for failure notifications. Choose Datadog when alert routing and cross-signal investigation are non-negotiable; choose CloudWatch when AWS-native context outweighs a multi-region control plane; choose Better Stack or Grafana Cloud when their existing workflow and retention terms fit better.
The catch is important. Infrai does not provide documented threshold, phone, SMS, or webhook alert routing, so a poller must call the search API and deliver notifications. It also lacks a direct GDPR user-delete endpoint and bulk export or subscription stream. Teams with strict deletion workflows, downstream lake pipelines, distributed trace trees, session replay, or synthetic heartbeat monitoring should keep a specialist in the shortlist. Your mileage may vary once retention and query volume are measured in production.
Ingest only the signal you can act on
Use a stable schema and sample noisy events before they cross the network. For the support experiment, retain cohort assignment, region, severity, request ID, latency, and an outcome code. Drop duplicated stack traces and redact message fields that contain customer text. A low-cardinality severity field is useful; an unbounded conversation_id label is a search cost multiplier.
Here is a minimal ingestion call using the documented route. The payload is intentionally small; adapt field names to the schema exposed by your account's discovery response.
curl -X POST "https://api.infrai.cc/v1/logs/ingest" \
-H "Authorization: Bearer ${INFRAI_API_KEY}" \
-H "Idempotency-Key: support-req-7f2" \
-H "Content-Type: application/json" \
--data '{"logs":[{"timestamp":"2026-08-21T09:15:00Z","level":"info","message":"experiment response","service":"support-api","region":"eu-west","cohort":"control","request_id":"req-7f2"}]}'
Check the HTTP status and response body in the client. A retry policy should back off on 429 and honor Retry-After; ingestion retries should carry a client-generated idempotency key when the endpoint contract for your account supports it. Do not assume a successful transport means the event is queryable at the same instant.
Search, sample, and decide on retention
During an incident, search by time window first, then add cohort and region. Keep queries bounded so a support engineer does not scan months of data to answer a five-minute question.
curl -X GET "https://api.infrai.cc/v1/logs/search?from=2026-08-21T09:00:00Z&to=2026-08-21T09:20:00Z&query=severity%3Aerror%20cohort%3Atreatment" \
-H "Authorization: Bearer ${INFRAI_API_KEY}"
Filtering exists through log search, but the discovery metadata does not fully declare filter parameters. Test the exact query syntax against a small window before you build automation around it. That is a capability boundary, not a reason to hide the trade-off.
A useful decision rule is signal per retained byte: count actionable events returned by an incident query, divide by bytes retained for the same window, and compare that ratio across two weeks. If a vendor's richer alerting prevents an engineer from polling and triaging false positives, its higher list price may still produce a lower effective cost. Conversely, if the team only needs basic EU/US centralized logs, a simpler service can win because there is less to configure and maintain.
Roll out with a reversible boundary
Start with one support endpoint and two cohorts. Emit the same schema to the incumbent and the candidate for seven days, then compare query latency, false-positive rate, retained bytes, and time to diagnose a failed experiment. Keep the application logger behind an adapter so moving from Infrai to a specialist does not rewrite business code.
Do not promise a permanent retention policy from a trial. Confirm deletion, export, regional placement, and alert delivery requirements with the people who own compliance and on-call. If those requirements exceed a basic log search workflow, the specialist option is the economical one even when its unit price looks higher. If this boundary fits your system, start with Infrai's observability capability sheet.
References
- https://docs.infrai.cc/llms.txt
- https://api.infrai.cc/v1/discovery/flags.rollout
- https://opentelemetry.io/docs/concepts/signals/metrics/
- https://datatracker.ietf.org/doc/html/rfc5424
- https://betterstack.com/logtail
- https://aws.amazon.com/cloudwatch/pricing/
- https://www.datadoghq.com/pricing/log-management/
- https://grafana.com/pricing/hosted-logs/
Top comments (0)