monoscope vs Elastic
An ELK alternative that keeps the request, not only the log line
Elastic is fast search over whatever you index, cheap per GB, and free to run yourself. Request bodies are opt-in in its APM agents and response bodies aren’t in the docs. monoscope keeps every request and response, yours and your suppliers’, and its AI SRE investigates with them.
Side by side
What you get, and what it costs
| ElasticELK and Elastic Cloud | ||
|---|---|---|
| Request and response bodies, in and out | Every call, unsampled on paid plans | Request bodies opt-in, cut at 2 KiB (Node.js agent); response bodies not in docs |
| Breaking changes in third-party APIs | Caught in the stored responses | Not in public docs |
| AI sees the full request | Yes | Elastic AI Agent works from indexed data; bodies only if captured |
| AI investigates the root cause | Built in, answers in Slack | AI Agent and Agent Builder, billed per run plus LLM tokens; fix PRs not in public docs |
| Pricing |
|
|
| Open source and self-hosting | AGPL-3.0, free to self-host | Elastic License 2.0, AGPLv3 or SSPL; self-managed is free |
| Data in your own bucket | Session replays in your S3 today, +$199/month | Searchable snapshots in your bucket when self-managed; frozen tier needs an Enterprise license |
| Coverage | Logs, traces, metrics, errors and session replay | Logs, APM, metrics, RUM, synthetics, infrastructure and security |
Sources and assumptions
Checked against Elastic’s public pricing pages and docs in October 2026. List prices, annual billing where offered. — means we couldn’t confirm it from public docs. Spotted something out of date? Email [email protected] and we’ll fix it.
- Observability Serverless prices, floor rates (checked 2026-10-29): elastic.co/pricing/serverless-observability
- Billing dimensions for Observability Serverless: elastic.co/docs/deploy-manage/cloud-organization/billing/elastic-observability-billing-dimensions
- Node.js agent capture_body (off by default) and 2 KiB limit: elastic.co/docs/reference/apm/agents/nodejs/configuration
- Elastic AI Agent replaces the Observability AI Assistant: elastic.co/docs/solutions/observability/ai/observability-ai-assistant
- Licensing: Elastic License 2.0, AGPLv3, SSPL: elastic.co/pricing/faq/licensing
- Searchable snapshots on S3, GCS or Azure: elastic.co/docs/deploy-manage/tools/snapshot-and-restore/searchable-snapshots
- Coverage: elastic.co/observability
Which one fits your team
Choose monoscope if
- You need the request and response body behind a failed call, including calls to third-party APIs
- You don’t want to run and tune an Elasticsearch cluster to keep your telemetry
- You want errors, breaking API changes and an AI SRE on the data without building them in Kibana
Choose Elastic if
- Search over very large log volumes at the lowest price per GB is the main job
- Your security team uses Elastic as its SIEM and observability shares the cluster
- You already run self-managed ELK and have the people to operate it
Already on Elastic?
Run monoscope next to it for a week or two, compare which errors and API changes each one catches, then move your services over. An engineer from our team can help.
What it costs
What you’d pay at three volumes
Same workload on both: logs and spans only, about 2 kB each, kept 30 days. At Elastic’s floor prices, ingest costs less there, and any bodies you capture count toward the GB ingested.
| Events a month | monoscope | Elastic |
|---|---|---|
| 20M (40 GB) | $29 | From $4.36 |
| 100M (200 GB) | $109 | From $21.80 |
| 1B (2 TB) | $1,009 | From $218 |
Elastic Observability Serverless Complete, checked 29 October 2026: ingest “as low as” $0.09 per GB plus $0.019 per GB-month retained. Elastic doesn’t publish its volume tiers, so these are floors; egress, support and AI usage are extra. Self-managed ELK has no license fee but you run the cluster. monoscope: $29 a month includes 20M events, then $1 per million. Bodies don’t add to the count.
What you keep
What Elastic doesn’t keep, and monoscope does
-
The request and response body
Elastic’s Node.js agent captures request bodies only if you turn it on, and truncates them past 2 KiB. monoscope’s SDKs keep headers, request body and response body on the span, and bodies don’t add to the price.
-
Calls to your suppliers
Outgoing calls to payment, shipping or auth APIs are kept with their bodies, linked to the incoming request, and checked for breaking changes.
-
An AI that reads both
The AI SRE investigates with the failing request and response in front of it, answers in Slack and reviews pull requests before merge.
Move over
Move from Elastic in three steps
-
1
Send OpenTelemetry to monoscope
If you ship logs with an OpenTelemetry Collector, add a monoscope exporter next to the Elastic one. Services on Elastic APM agents move to OpenTelemetry or the monoscope SDK.
-
2
Add the SDK where you want bodies
OpenTelemetry records the URL and status, not the body. The monoscope SDK for your framework keeps request and response bodies once you switch body capture on, plus outgoing calls.
-
3
Compare, then switch off the old exporter
Run both for a week or two. When monoscope catches what you need, stop sending to Elastic. An engineer from our team can help.
otel-collector.yaml
exporters:
otlp_grpc/monoscope:
endpoint: "otelcol.monoscope.tech:4317"
tls:
insecure: true
headers:
x-api-key: YOUR_API_KEY
service:
pipelines:
traces:
# keep your current exporter in the list
exporters: [otlp_grpc/monoscope]
logs:
exporters: [otlp_grpc/monoscope]
