Savings
When leadership asks "what is Log10x saving us?" or you're building a quarterly ROI summary. Returns dollar attribution split across Receiver filtering, Compact mode, and Retriever archive, plus an annual projection.
Example
You
savings this month?
Log10x
$215K saved this month, on track for $1.1M/year:
- Receiver (filter): $79K (drops 38% of WARN/INFO at the edge)
- Compact mode: $106K (3.4× reduction in shipped bytes)
- Retriever (archive): $30K (62% of debug events stay in S3, fetched on demand)
More to ask
- "ROI for the quarter"
- "stack savings YTD"
- "projected savings if we add Compact mode"
Prerequisites
This tool requires the Reporter deployed. Savings attribution needs per-app continuous metric emission.
Schema and samples
Input example
Real call against the demo env (captured by scripts/capture-tool-envelopes.mjs).
Input schema
Agent-facing JSON Schema (the canonical shape the MCP server publishes via tools/list):
{
"type": "object",
"properties": {
"timeRange": {
"type": "string",
"enum": [
"15m",
"1h",
"6h",
"24h",
"1d",
"7d",
"30d"
],
"default": "7d",
"description": "Time range. '24h' and '1d' are equivalent."
},
"analyzerCost": {
"type": "number",
"description": "DEPRECATED alias for effective_ingest_per_gb. SIEM ingestion cost in $/GB."
},
"effective_ingest_per_gb": {
"type": "number",
"description": "Customer-supplied SIEM ingestion cost in $/GB. When provided, rate_source=customer_supplied and dollars are populated. When omitted and no profile rate is available, rate_source=unset and the headline reports percent + bytes only (no dollars)."
},
"storageCost": {
"type": "number",
"description": "S3 storage cost in $/GB/month. Defaults to $0.023 (S3 Standard)."
},
"environment": {
"type": "string",
"description": "Environment nickname"
},
"view": {
"type": "string",
"const": "summary",
"default": "summary",
"description": "Output format. Always \"summary\" — the typed envelope (data.totals, data.edge, data.retriever, data.run_rate). Field retained for backward-compat."
}
},
"additionalProperties": false
}
Source: src/tools/savings.ts.
Output example
Real envelope from the demo env. view: "summary" returns the full StructuredOutput with typed data. Long arrays + base64 PNG bodies trimmed for readability; the real call returns them in full.
Headline (the 1-line agent-facing answer):
Pipeline savings (this week): $0.64/wk realized, $33/yr projected.
{
"schema_version": "1.0",
"schema_epoch": "2026-05-25",
"tool": "log10x_savings",
"generated_at": "2026-05-26T15:37:15.000Z",
"view": "summary",
"summary": {
"headline": "Pipeline savings (this week): $0.64/wk realized, $33/yr projected."
},
"data": {
"time_range": "this week",
"cost_per_gb": 1.5,
"storage_per_gb": 0.023,
"period": "/wk",
"edge": {
"input_bytes": 49585873423.42818,
"emitted_bytes": 49130222413.30134,
"reduced_bytes": 455651010.1268387,
"savings_dollars": 0.6365371078162063,
"emission_missing": false
},
"retriever": {
"indexed_bytes": 0,
"streamed_bytes": 0,
"savings_dollars": 0,
"chunks_ok_ratio": 1,
"chunks_ok": 14,
"chunks_total": 14
},
"totals": {
"realized_dollars": 0.6365371078162063,
"annual_projection_dollars": 33.1908634789879,
"has_data": true
},
"pipeline_instances": 1,
"services_monitored": 28
},
"actions": [
{
"tool": "log10x_top_patterns",
"args": {
"timeRange": "this week",
"limit": 10
},
"reason": "see which patterns currently drive cost (where the savings come from)"
},
{
"tool": "log10x_top_patterns",
"args": {
"timeRange": "this week",
"limit": 10,
"comparison_window": "this week"
},
"reason": "delta-versus-baseline view to check whether costs are growing"
}
],
"truncated": false,
"warnings": []
}
Output schema
The data block inside the StructuredOutput envelope:
interface ToolData {
time_range: string;
cost_per_gb: number;
storage_per_gb: number;
period: string;
edge: { input_bytes: number; emitted_bytes: number; reduced_bytes: number; savings_dollars: number; emission_missing: boolean };
retriever: { indexed_bytes: number; streamed_bytes: number; savings_dollars: number; chunks_ok_ratio: number; chunks_ok: number; chunks_total: number };
totals: { realized_dollars: number; annual_projection_dollars: number; has_data: boolean };
pipeline_instances: number;
services_monitored: number;
}
Envelope-level fields the agent should also read: summary.headline (1-line answer), actions[] (next-call chain hints as {tool, args, reason}), truncated: boolean, images[] (PNG attachments where applicable), schema_epoch (engine-ID stability boundary).