log10x-mcp 1.30.15 → 1.30.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1232,30 +1232,103 @@ export function clickhouseOffloadHonesty() {
1232
1232
  return [
1233
1233
  '**What this buys, and what it costs.**',
1234
1234
  '',
1235
- '- The saving on ClickHouse is COMPUTE, through rows that never enter. Insert and merge ' +
1236
- 'CPU follows rows inserted, so a row held back at the edge is a row the cluster never ' +
1237
- 'tokenises, never inserts and never merges. Table bytes barely move, and table bytes ' +
1238
- 'are not where a ClickHouse bill lives. THAT COMES FROM A DIFFERENT MEASUREMENT: the ' +
1239
- 'compute-vs-rows arms in benchmarks/clickhouse-clickstack (benchmarks PR #10), insert ' +
1240
- 'CPU from system.query_log and merge CPU from system.part_log. The run this recipe is ' +
1241
- 'copied from measured no compute, no bill and no autoscaler.',
1235
+ '- NO LINE IS DROPPED. The cap decides what moves, never what disappears: the marked ' +
1236
+ 'lines go to the account\'s own bucket and are read beside the hot rows through the ' +
1237
+ 'Merge table below. Gap 5 counted 36,395 rows before the offload and 36,395 after, ' +
1238
+ 'matching to the row.',
1239
+ '- The saving on ClickHouse is the WRITE PATH, through rows that never enter: insert CPU, ' +
1240
+ 'merge CPU and merge IO, disk bandwidth, part metadata in Keeper, and object-store ' +
1241
+ 'requests. A row held back at the edge is a row the cluster never tokenises, never ' +
1242
+ 'inserts and never merges. Table bytes barely move, and table bytes are not where a ' +
1243
+ 'ClickHouse bill lives. THAT COMES FROM A DIFFERENT MEASUREMENT: the compute-vs-rows ' +
1244
+ 'arms in benchmarks/clickhouse-clickstack (benchmarks PR #10), insert CPU from ' +
1245
+ 'system.query_log and merge CPU from system.part_log. The run this recipe is copied ' +
1246
+ 'from measured no write path, no bill and no autoscaler.',
1247
+ '- WHAT THE INVOICE DOES. ClickHouse Cloud meters compute per minute in 8 GiB increments ' +
1248
+ 'and bills it per compute-unit-hour, where a unit is 8 GiB of RAM and 2 vCPU; storage ' +
1249
+ 'is metered on the compressed bytes stored. Fewer rows lower the work the cluster does, ' +
1250
+ 'and the invoice moves when that lets the autoscaler hold a smaller size, or lets the ' +
1251
+ 'service idle for longer. On a service already sitting at its floor, a smaller row ' +
1252
+ 'count changes nothing on the invoice at all. ClickHouse\'s own Managed ClickStack post ' +
1253
+ '(2026-02-04) says retention "effectively stops being a meaningful cost dimension" and ' +
1254
+ 'that "the remaining variable becomes compute".',
1255
+ '- NO PER-TYPE CPU FIGURE IS A MEASUREMENT. system.part_log records a merge against a ' +
1256
+ 'PART, never against a message type, and a part holds rows of every type inserted in ' +
1257
+ 'its window. What the compute arms measure is the whole table\'s insert and merge CPU ' +
1258
+ 'with a given set of rows removed before the load, which is an A/B of whole-table cost. ' +
1259
+ 'Any per-type figure derived from it is MODELED and is labeled modeled.',
1242
1260
  '- The offloaded rows stay searchable in place, through the Merge table, and reading them ' +
1243
1261
  'is SLOWER than reading the hot table. A cold read pays object-store requests; a hot ' +
1244
1262
  'read pays none.',
1263
+ '- SIZING THE REQUESTS, because this is where an operator sizes a bucket. One LIST per ' +
1264
+ 'query covers up to a thousand matched keys (s3_list_object_keys_size, default 1000), ' +
1265
+ 'and one further LIST for every thousand after that, so the LIST count rises with the ' +
1266
+ 'bucket. The runs behind this recipe never crossed that line: 14 objects end to end, 50 ' +
1267
+ 'in gap 2, 180 in gap 1. One GET per object is what a read of the whole object costs, ' +
1268
+ 'which is what JSONEachRow does. A columnar object large enough to seek past four ' +
1269
+ 'megabytes at a time (remote_read_min_bytes_for_seek, default 4194304) pays one GET per ' +
1270
+ 'skip on top. The Vector batch below is set at 33554432 bytes, eight times that ' +
1271
+ 'threshold, so the one-GET arithmetic holds for the JSON objects it writes and stops ' +
1272
+ 'holding the moment anything columnar is written at that size.',
1245
1273
  '- A query filtered only on time opens EVERY cold object in the bucket. Measured on the ' +
1246
1274
  'harness sample, which held 14 objects: time only read 37,536 rows through 14 S3 GET in ' +
1247
1275
  '118 ms, while the same query with a service predicate read 25,793 rows through 6 S3 GET ' +
1248
1276
  'in 77 ms, and adding a day predicate held at 6 GET and 43 ms. The hot table alone ' +
1249
- 'answered its count in 8 ms with zero requests. That sample carried one day of writes, ' +
1250
- 'so the day predicate had nothing further to prune, and the object path carries the ' +
1251
- 'WRITE time rather than the record time, so pruning across many days is unmeasured.',
1277
+ 'answered its count in 8 ms with zero requests.',
1278
+ '- Across thirty days of objects the same shape holds and costs more. Measured on 180 ' +
1279
+ 'objects, 30 days of the cold side: a time-only query opened all 180 in 7,449 ms, and ' +
1280
+ 'the same query with `day >= today() - 1` opened 12 in 468 ms. A service predicate ' +
1281
+ 'alone opened 60, that service\'s objects on every day. A pattern-hash predicate alone ' +
1282
+ 'opened all 180, because the hash is a column inside the file and not a path segment. ' +
1283
+ 'Every dashboard query that names only a time pays one request per object in the ' +
1284
+ 'bucket. THE DAY IN THE PATH IS THE UPLOAD DAY, NOT THE RECORD DAY: the S3 exporter ' +
1285
+ 'builds the key from the wall clock at upload (awss3exporter, ' +
1286
+ 'internal/upload/writer.go, clock.Now). On a steady feed the two agree. After a ' +
1287
+ 'backfill or a replay they do not, so a day predicate is a cost control and never a ' +
1288
+ 'substitute for the time filter.',
1252
1289
  '- Count-all dashboards read the counts-per-type table, not the Merge table: count all by ' +
1253
1290
  'service over the counts table read 2,539 rows with zero S3 requests in 6 ms. The ' +
1254
1291
  'counts table is fed twice, by a materialized view on the hot inserts and by an ' +
1255
1292
  'INSERT ... SELECT over the cold objects, because offloaded rows never pass through an ' +
1256
1293
  'insert.',
1257
- '- Alerts are NOT claimed unchanged. No alert was defined and none fired in the run this ' +
1258
- 'recipe is copied from.',
1294
+ '- Alerts are NOT claimed unchanged, and an alert an offload keeps must point at THE ' +
1295
+ 'COUNTS TABLE. HyperDX accepted an alert over the hot table, the Merge table and the ' +
1296
+ 'counts table, all 200, and an alert on the hot table stops firing once the rows it ' +
1297
+ 'counts are offloaded. Never point an alert at the Merge table: every evaluation opens ' +
1298
+ 'every cold object its predicates do not prune, so the alert pays object-store requests ' +
1299
+ 'on its own schedule, for as long as it is enabled. Whether HyperDX\'s own evaluation ' +
1300
+ 'loop fires is still unmeasured: a replayed capture is older than any interval short ' +
1301
+ 'enough to wait for.',
1302
+ '- THE HANDOFF IS NOT DURABLE, so "every line kept" is a claim about the POLICY and not ' +
1303
+ 'about the route. Neither hop keeps a queue on disk in this recipe. Measured by a ' +
1304
+ 'sequence number inside every line: with the routing collector killed mid-feed and ' +
1305
+ 'restarted twenty seconds later, 65,269 of 197,430 input lines were never stored and ' +
1306
+ '16,828 deliveries arrived twice; with the receiver killed instead, 84,762 were never ' +
1307
+ 'stored. Separately, the collector\'s sending queue REJECTS a batch that does not fit ' +
1308
+ 'and only logs it, so a feed reads as finished while lines are missing unless ' +
1309
+ '`sending_queue.block_on_overflow: true` is set on the exporter into the receiver. Set ' +
1310
+ 'it, and put a persistent queue behind both hops, before quoting anything about loss.',
1311
+ '- INSTALL ORDER, AND A DEFECT IT AVOIDS. Run the collector FIRST and confirm at least ' +
1312
+ 'one object exists under the prefix before the cold table is created. An S3 table ' +
1313
+ 'created with an explicit schema and use_hive_partitioning = 1 while the prefix is ' +
1314
+ 'still empty caches that empty listing as resolved: the partition columns then read ' +
1315
+ 'file defaults, and every path predicate returns ZERO ROWS, with no error, for the ' +
1316
+ 'lifetime of the table. ClickHouse issue 116888, open, filed 2026-08-28 by a ClickHouse ' +
1317
+ 'member. The DDL below carries the check as its own numbered step; do not skip it and ' +
1318
+ 'do not reorder the steps.',
1319
+ '- TTL MOVES ARE THE RIGHT TOOL FOR STORAGE, AND THIS RECIPE DOES NOT COMPETE WITH THEM. ' +
1320
+ 'A `TTL Timestamp + INTERVAL <n> DAY TO VOLUME \'cold\'` rule leaves the parts as ' +
1321
+ 'MergeTree parts, so the primary index and the eight skip indexes still apply, the ' +
1322
+ 'schema does not change, nothing is renamed, and no Merge table, no view and no counts ' +
1323
+ 'table are needed. An operator who wants cheaper STORAGE should use TTL moves. TTL is ' +
1324
+ 'evaluated during background merges, after the row has been parsed, indexed, written ' +
1325
+ 'and merged, so a TTL move never returns insert or merge work; the lever here is the ' +
1326
+ 'row that never enters. Two things worth knowing before choosing between them: ' +
1327
+ '`prefer_not_to_merge` on a cold volume, the standard way to keep merges off the ' +
1328
+ 'bucket, stops TTL deletes from running (ClickHouse issue 85636, open, confirmed ' +
1329
+ 'independently across 25.1 to 25.8), and Mohamed Aziz of Luciq published on 2026-08-10 ' +
1330
+ 'what merges on object storage cost when they do run there. No figure of ours is ' +
1331
+ 'attached to this comparison, because no TTL arm has been run.',
1259
1332
  '- THIS RECIPE REQUIRES ENGINE 1.1.79 OR NEWER. The three OpenTelemetry return-path ' +
1260
1333
  'defects that blocked it are fixed and released in 1.1.79 (pipeline-extensions ' +
1261
1334
  '8ebaf793, engine b9074b9a, engine PR #150). On an older image a record whose message ' +
@@ -1269,6 +1342,16 @@ export function clickhouseOffloadHonesty() {
1269
1342
  '`routeState` and a `timeUnixNano`, against 18,083 marked of 37,519 on 1.1.74. Hot plus ' +
1270
1343
  'offloaded reconciled to 37,536 with a gap of 0, on 13,010 hot rows and 24,526 ' +
1271
1344
  'offloaded, and 2,495 distinct type hashes came back on the wire against 2,495 stored.',
1345
+ '- A COLLECTOR-ONLY RULE CAN BEAT THIS ON HOT WRITE-PATH CPU. Measured over the whole ' +
1346
+ '197,430 ' +
1347
+ 'line capture on one container: a rule by service and severity, written off one reading ' +
1348
+ 'of the census, cost 2.7 insert-plus-merge CPU seconds against 8.1 for the per-type cap ' +
1349
+ 'and 10.1 for no offload at all, while keeping MORE rows. The receiver groups a ' +
1350
+ 'multi-line event into one record, so the per-type arm\'s rows are fewer and bigger, and ' +
1351
+ 'ClickStack indexes the text of every row. What the collector-only rule cannot do is ' +
1352
+ 'answer a question by message type: no row it writes carries a type hash, so the ' +
1353
+ 'question cannot be put at all. Sell the question, not the CPU second. Merge CPU is also ' +
1354
+ 'unstable run to run; it depends on which parts the scheduler merged inside the window.',
1272
1355
  '- The route arrives more often than the type does. In that rerun all 37,536 records ' +
1273
1356
  'carried `routeState`, 37,486 carried the type hash and 37,469 carried the type text, ' +
1274
1357
  'so the router moves every record while the counts-per-type table can only count what ' +
@@ -1451,82 +1534,129 @@ service:
1451
1534
  'contrib 0.160.0 on 2026-09-14.',
1452
1535
  };
1453
1536
  }
1454
- /** The Vector variant. Written from Vector's documented sink options, unexercised. */
1537
+ /** The Vector variant, copied from the harness run that exercised it. */
1455
1538
  function clickhouseVectorCollector(p) {
1456
1539
  const n = chNames(p);
1540
+ const endpoint = p.s3Endpoint ?? `https://s3.${p.region}.amazonaws.com`;
1457
1541
  return {
1458
1542
  variant: 'vector',
1459
- exercised: false,
1460
- language: 'toml',
1461
- body: `# NOT EXERCISED. The OpenTelemetry Collector variant is a copy of a config that
1462
- # ran end to end; this one is written from Vector's documented \`aws_s3\` sink
1463
- # options and has not been run against ClickHouse.
1543
+ exercised: true,
1544
+ language: 'yaml',
1545
+ body: `# COPIED from the harness config that ran end to end
1546
+ # (benchmarks/clickstack-e2e-gaps/gap2_vector_parquet.sh). Vector sits BEHIND
1547
+ # the routing collector: the collector still makes the split and forwards the
1548
+ # marked stream here over OTLP, and Vector writes the objects.
1549
+ #
1550
+ # VECTOR WRITES JSON HERE, AND JSON IS THE ARM THAT RAN. The sink below sets
1551
+ # \`encoding.codec: json\` with newline framing, which is what the cold table
1552
+ # reads. There is no \`ndjson\` codec, so newline delimited JSON is the \`json\`
1553
+ # codec with newline framing.
1554
+ #
1555
+ # Vector ALSO writes Parquet on the \`aws_s3\` sink, under
1556
+ # \`batch_encoding.codec: parquet\`, added in v0.55.0 (2026-04-22) and available
1557
+ # in official release builds from v0.56.0 (2026-06-03). That option is not
1558
+ # rendered here: the run behind this recipe pinned Vector 0.50.0, which predates
1559
+ # it, and probed \`encoding.codec\`, which is not where the option lives, so the
1560
+ # run measured nothing about Parquet in Vector. A Parquet variant is rendered
1561
+ # once a run exists, and not before.
1464
1562
  #
1465
- # ASSUMED: \`encoding.codec = "parquet"\` on \`aws_s3\`. Vector documents a parquet
1466
- # codec, and the build in the estate is what decides whether it is there, so
1467
- # confirm it before rolling this out.
1468
- # ASSUMED: the field names below. The 10x return stream carries \`routeState\`,
1469
- # \`${n.hashField}\` and \`message_pattern\` spliced into the event; which field holds
1470
- # the service and the body depends on the input, so the remap normalises them.
1471
-
1472
- # 1) Normalise the names the object path and the Parquet columns key on.
1473
- [transforms.tenx_shape]
1474
- type = "remap"
1475
- inputs = [ "tenx_return" ] # the 10x receiver's return stream
1476
- source = '''
1477
- .ServiceName = to_string(.ServiceName) ?? to_string(."service.name") ?? to_string(.k8s_container) ?? "unknown"
1478
- .Body = to_string(.message) ?? to_string(.body) ?? ""
1479
- .SeverityText = to_string(.severity_text) ?? to_string(.level) ?? ""
1480
- .Timestamp = to_timestamp(.timestamp) ?? now()
1481
- '''
1482
-
1483
- # 2) Route on the stamped action. The marker is a STRING, never a boolean.
1484
- # Everything the route does not match falls to _unmatched and keeps going to
1485
- # ClickHouse the way it already does.
1486
- [transforms.tenx_route]
1487
- type = "route"
1488
- inputs = [ "tenx_shape" ]
1489
- route.offload = '.routeState == "offload"'
1490
-
1491
- # 3) The offload write. Service and day in the key, Parquet in the object.
1492
- [sinks.tenx_cold]
1493
- type = "aws_s3"
1494
- inputs = [ "tenx_route.offload" ]
1495
- bucket = "${p.bucket}"
1496
- region = "${p.region}"
1497
- key_prefix = "service={{ ServiceName }}/day=%Y-%m-%d/"
1498
- filename_extension = "parquet"
1499
- compression = "none" # Parquet carries its own compression
1500
-
1501
- [sinks.tenx_cold.encoding]
1502
- codec = "parquet"
1503
-
1504
- # OBJECT COUNT IS THE QUERY-COST MULTIPLIER. Every cold query opens each object
1505
- # its predicates do not prune, and ClickHouse pays one request per object, so
1506
- # these two numbers decide what a cold read costs far more than the codec does.
1507
- # Large and slow is right here: a query reads one big object faster than a
1508
- # hundred small ones holding the same rows.
1509
- [sinks.tenx_cold.batch]
1510
- max_bytes = 268435456 # 256 MiB per object
1511
- timeout_secs = 300 # or five minutes, whichever comes first
1512
-
1513
- # 4) The rows that stay. The estate's existing ClickHouse or OTLP sink, with
1514
- # its inputs pointed at the unmatched route.
1515
- # [sinks.tenx_hot]
1516
- # inputs = [ "tenx_route._unmatched" ]
1517
- # ... unchanged`,
1518
- note: "Written from Vector's own documentation, not from a run. The shape mirrors the " +
1519
- 'OpenTelemetry Collector variant: one route on the stamped action, service and day ' +
1520
- 'in the object key, the identity columns inside the file. Two differences matter. ' +
1521
- 'Parquet is columnar, so ClickHouse prunes row groups inside an object as well as ' +
1522
- 'pruning objects by path, which the JSON path cannot do. And Vector writes the ' +
1523
- 'event fields directly, so the cold table below reads named columns rather than a ' +
1524
- 'body-and-attributes map. Nothing here is measured; the query numbers in the ' +
1525
- 'honesty block were taken on the JSON path.',
1563
+ # What differs from the file that ran: the bucket, the region and the S3
1564
+ # endpoint carry this deployment's values (the run wrote to MinIO at
1565
+ # \`http://cse-minio:9000\` with its root credentials, which is why the endpoint
1566
+ # and the auth block are here at all; on AWS S3 both come out and the sink takes
1567
+ # the instance's own credentials).
1568
+
1569
+ data_dir: /vector-data
1570
+
1571
+ sources:
1572
+ otlp:
1573
+ type: opentelemetry
1574
+ # End to end acknowledgements hold the gRPC response until the S3 batch
1575
+ # flushes, and the collector's exporter then holds the WHOLE route behind
1576
+ # it, hot side included. The first run of the harness script moved 1,425
1577
+ # records of 157,083 for that reason.
1578
+ acknowledgements:
1579
+ enabled: false
1580
+ grpc:
1581
+ address: 0.0.0.0:4319
1582
+ http:
1583
+ address: 0.0.0.0:4320
1584
+ keepalive:
1585
+ max_connection_age_secs: 600
1586
+
1587
+ transforms:
1588
+ # Route on the stamped action. The marker is a STRING, never a boolean.
1589
+ split:
1590
+ type: route
1591
+ inputs: [ otlp.logs ]
1592
+ route:
1593
+ cold: '.attributes.routeState == "offload"'
1594
+
1595
+ # The shape the cold table reads: the body and a flat attribute map, with the
1596
+ # service, the severity and the record time folded into it, because the object
1597
+ # carries no resource and no timestamp of its own.
1598
+ shape:
1599
+ type: remap
1600
+ inputs: [ split.cold ]
1601
+ source: |
1602
+ svc = string!(.resources."service.name" || .attributes.k8s_container || "unknown")
1603
+ stamp = now()
1604
+ if is_timestamp(.timestamp) { stamp = timestamp!(.timestamp) }
1605
+ ts = to_unix_timestamp(stamp)
1606
+ attrs = object!(.attributes || {})
1607
+ attrs.ServiceName = svc
1608
+ attrs.SeverityText = string(.severity_text) ?? ""
1609
+ attrs.TimestampSec = to_string(ts)
1610
+ attrs.TimestampNano = to_string(ts * 1000000000)
1611
+ body = string(.message) ?? string(.body) ?? ""
1612
+ . = { "body": body, "logAttributes": attrs, "svc": svc }
1613
+
1614
+ sinks:
1615
+ cold:
1616
+ type: aws_s3
1617
+ inputs: [ shape ]
1618
+ bucket: ${p.bucket}
1619
+ region: ${p.region}
1620
+ # MinIO only. Delete both on AWS S3.
1621
+ endpoint: ${endpoint}
1622
+ auth:
1623
+ access_key_id: <access-key>
1624
+ secret_access_key: <secret-key>
1625
+ key_prefix: "service={{ svc }}/day=%F/"
1626
+ filename_extension: json
1627
+ compression: none
1628
+ encoding:
1629
+ codec: json
1630
+ except_fields: [ svc ]
1631
+ framing:
1632
+ method: newline_delimited
1633
+ # OBJECT COUNT IS THE QUERY-COST MULTIPLIER. Every cold query opens each
1634
+ # object its predicates do not prune, and ClickHouse pays one request per
1635
+ # object, so these two numbers decide what a cold read costs far more than
1636
+ # the codec does. The harness run wrote 50 objects for the whole cold side
1637
+ # with the values below; larger and slower is right here.
1638
+ batch:
1639
+ max_bytes: 33554432
1640
+ timeout_secs: 5`,
1641
+ note: 'Ran end to end in benchmarks/clickstack-e2e-gaps (gap 2, 2026-09-15). Vector ' +
1642
+ 'took the returned stream, made the same routing decision on `routeState`, and ' +
1643
+ 'wrote 50 JSON objects holding 113,732 rows, which the SAME S3 table and the ' +
1644
+ 'SAME Merge table below read with no change to either, answering the same ' +
1645
+ 'queries with the same numbers. What the run did NOT settle is Parquet. Vector ' +
1646
+ 'writes Parquet on the `aws_s3` sink under `batch_encoding.codec: parquet`, added ' +
1647
+ 'in v0.55.0 and available in official builds from v0.56.0; the run pinned 0.50.0 ' +
1648
+ 'and probed `encoding.codec`, which is not where the option lives, so it measured ' +
1649
+ 'nothing about Parquet in Vector, and no Parquet variant is rendered until a run ' +
1650
+ 'exists. The OpenTelemetry collector\'s S3 exporter has no Parquet marshaler at ' +
1651
+ 'all, and the request for one (contrib issue 45103) was closed unplanned in May ' +
1652
+ '2026. A Parquet copy of exactly those rows, written by ClickHouse rather than by ' +
1653
+ 'a collector, held them in 3 objects and 1.3 MiB against 50 objects and 165 MiB ' +
1654
+ 'of JSON.',
1526
1655
  };
1527
1656
  }
1528
- /** The ClickHouse side. SQL the operator runs, keyed to the chosen collector. */
1529
- function clickhouseDdl(p, collector) {
1657
+ /** The ClickHouse side. SQL the operator runs. One shape reads what either
1658
+ * collector writes, because both write body plus a flat attribute map. */
1659
+ function clickhouseDdl(p) {
1530
1660
  const n = chNames(p);
1531
1661
  const key = `'<access-key>', '<secret-key>'`;
1532
1662
  const coldJson = `-- COPIED from the harness (benchmarks/clickstack-e2e/conf/schema_cold.sql).
@@ -1539,6 +1669,9 @@ function clickhouseDdl(p, collector) {
1539
1669
  -- {"body": ..., "logAttributes": {...}} per record, as one JSON array per
1540
1670
  -- object. \`service\` and \`day\` are not in the file at all; they come from the
1541
1671
  -- object path, which is why use_hive_partitioning is on.
1672
+ --
1673
+ -- The Vector variant's remap writes the same two keys, one record per line, and
1674
+ -- this table read Vector's objects unchanged in the gap 2 run.
1542
1675
  DROP TABLE IF EXISTS ${n.db}.${n.coldTable};
1543
1676
  CREATE TABLE ${n.db}.${n.coldTable}
1544
1677
  (
@@ -1559,44 +1692,6 @@ SELECT toDateTime64(toUInt64OrZero(logAttributes['TimestampSec']), 9) AS Timesta
1559
1692
  CAST(logAttributes['SeverityText'] AS LowCardinality(String)) AS SeverityText,
1560
1693
  logAttributes AS LogAttributes,
1561
1694
  day AS day
1562
- FROM ${n.db}.${n.coldTable};`;
1563
- const coldParquet = `-- ASSUMED, NOT MEASURED. This table reads what the Vector sink writes, and
1564
- -- that sink has never been run. The harness ran the OpenTelemetry Collector
1565
- -- variant of this recipe, which writes JSON and is read by a different cold
1566
- -- table; render the section with that collector to get it.
1567
- --
1568
- -- Parquet carries its own column names, so the cold table names the columns the
1569
- -- Vector remap wrote. \`service\` and \`day\` come from the object path, which is
1570
- -- why use_hive_partitioning is on.
1571
- DROP TABLE IF EXISTS ${n.db}.${n.coldTable};
1572
- CREATE TABLE ${n.db}.${n.coldTable}
1573
- (
1574
- Timestamp DateTime64(9),
1575
- ServiceName LowCardinality(String),
1576
- Body String,
1577
- SeverityText LowCardinality(String),
1578
- ${n.hashField} String,
1579
- message_pattern String,
1580
- routeState String,
1581
- service LowCardinality(String),
1582
- day Date
1583
- ) ENGINE = S3('${n.s3Endpoint}/${p.bucket}/**.parquet', ${key}, 'Parquet')
1584
- SETTINGS use_hive_partitioning = 1;
1585
-
1586
- -- Same reason as the JSON path: the S3 engine rejects ALIAS columns, so the
1587
- -- shaping is a view and the Merge table reads the view. The map rebuilds the
1588
- -- LogAttributes shape the hot table has, so one Merge table covers both sides
1589
- -- and the counts query reads the same expression on hot and cold.
1590
- DROP VIEW IF EXISTS ${n.db}.${n.coldView};
1591
- CREATE VIEW ${n.db}.${n.coldView} AS
1592
- SELECT Timestamp,
1593
- CAST(service AS LowCardinality(String)) AS ServiceName,
1594
- Body,
1595
- CAST(SeverityText AS LowCardinality(String)) AS SeverityText,
1596
- CAST(map('${n.hashField}', ${n.hashField},
1597
- 'message_pattern', message_pattern,
1598
- 'routeState', routeState) AS Map(String, String)) AS LogAttributes,
1599
- day AS day
1600
1695
  FROM ${n.db}.${n.coldTable};`;
1601
1696
  const body = `-- 1) The counts-per-type table and its materialized view. RUN THIS FIRST,
1602
1697
  -- before any data flows, or the view sees none of what is already there.
@@ -1630,10 +1725,26 @@ GROUP BY Minute, ServiceName, ${n.hashField}, message_pattern;
1630
1725
  -- as one.
1631
1726
  ALTER TABLE ${n.db}.${n.hot} ADD COLUMN IF NOT EXISTS day Date MATERIALIZED toDate(Timestamp);
1632
1727
 
1633
- -- 3) The offloaded objects, read in place.
1634
- ${collector === 'vector' ? coldParquet : coldJson}
1635
-
1636
- -- 4) Hot and cold as one table. \`_table\` names the side a row came from.
1728
+ -- 3) START THE COLLECTOR NOW, AND DO NOT CREATE THE COLD TABLE UNTIL AT LEAST
1729
+ -- ONE OBJECT EXISTS UNDER THE PREFIX. An S3 table created with an explicit
1730
+ -- schema and use_hive_partitioning = 1 while the prefix is still empty
1731
+ -- caches that empty listing as resolved: the partition columns then read
1732
+ -- file defaults and every path predicate returns ZERO ROWS, with no error,
1733
+ -- for the lifetime of the table. ClickHouse issue 116888, open, filed
1734
+ -- 2026-08-28 by a ClickHouse member. The s3 TABLE FUNCTION below lists at
1735
+ -- call time and caches nothing, so it is safe to run before the table
1736
+ -- exists. Wait for a non-zero count. A bucket listing answers the same
1737
+ -- question: aws s3 ls s3://${p.bucket}/ --recursive | head
1738
+ SELECT count() AS objects_ready
1739
+ FROM s3('${n.s3Endpoint}/${p.bucket}/**.json', ${key}, 'JSONEachRow');
1740
+
1741
+ -- 4) The offloaded objects, read in place. Create this only after step 3
1742
+ -- returned a non-zero count. The same table reads what either collector
1743
+ -- writes: the OpenTelemetry Collector's JSON encoding extension and Vector's
1744
+ -- remap both produce {"body": ..., "logAttributes": {...}}.
1745
+ ${coldJson}
1746
+
1747
+ -- 5) Hot and cold as one table. \`_table\` names the side a row came from.
1637
1748
  DROP TABLE IF EXISTS ${n.db}.${n.mergeTable};
1638
1749
  CREATE TABLE ${n.db}.${n.mergeTable}
1639
1750
  (
@@ -1645,7 +1756,7 @@ CREATE TABLE ${n.db}.${n.mergeTable}
1645
1756
  day Date
1646
1757
  ) ENGINE = Merge(${n.db}, '^(${n.hot}|${n.coldView})$');
1647
1758
 
1648
- -- 5) The cold side of the counts table, one pass over the objects. Offloaded
1759
+ -- 6) The cold side of the counts table, one pass over the objects. Offloaded
1649
1760
  -- rows never pass through an insert, so the materialized view never sees
1650
1761
  -- them. Run this on a schedule, or feed the cold side from the receiver's
1651
1762
  -- own counters instead.
@@ -1661,9 +1772,14 @@ GROUP BY Minute, ServiceName, ${n.hashField}, message_pattern;`;
1661
1772
  return {
1662
1773
  language: 'sql',
1663
1774
  body,
1664
- note: 'Order matters in one place: the counts table and its materialized view are ' +
1665
- 'created BEFORE any data flows, or the view sees none of the run. The rest is ' +
1666
- 'idempotent. Two findings from the run are baked into the shape above and are ' +
1775
+ note: 'ORDER MATTERS IN TWO PLACES, and both are numbered above. The counts table and ' +
1776
+ 'its materialized view are created BEFORE any data flows, or the view sees none of ' +
1777
+ 'the run; and the cold S3 table is created AFTER the collector has written its ' +
1778
+ 'first object, because a table created over an empty prefix with ' +
1779
+ 'use_hive_partitioning = 1 caches the empty listing and answers every path ' +
1780
+ 'predicate with zero rows, silently, for the life of the table (ClickHouse issue ' +
1781
+ '116888). Step 3 is the guard; run it until it returns a non-zero count. The rest ' +
1782
+ 'is idempotent. Two findings from the run are baked into the shape above and are ' +
1667
1783
  'easy to lose in a rewrite: the S3 table engine rejects ALIAS columns, so the ' +
1668
1784
  "rename to ClickStack's column names is a VIEW and the Merge table reads the " +
1669
1785
  "view rather than the S3 table; and ClickStack's shipped table has no day " +
@@ -1717,7 +1833,7 @@ export function clickhouseOffloadRecipe(params, collector = 'otel-collector') {
1717
1833
  collector: collector === 'vector'
1718
1834
  ? clickhouseVectorCollector(params)
1719
1835
  : clickhouseOtelCollector(params),
1720
- ddl: clickhouseDdl(params, collector),
1836
+ ddl: clickhouseDdl(params),
1721
1837
  hyperdx: clickhouseHyperdx(params),
1722
1838
  honesty: clickhouseOffloadHonesty(),
1723
1839
  };
@@ -1759,22 +1875,18 @@ export function renderClickhouseOffloadSection(params, collector) {
1759
1875
  '',
1760
1876
  ];
1761
1877
  if (variants.length > 1) {
1762
- lines.push('Two variants, one choice. The OpenTelemetry Collector variant is the one that ran ' +
1763
- 'end to end. The Vector variant writes Parquet and has not been run.', '');
1878
+ lines.push('Two variants, one choice. Both have been run: the OpenTelemetry Collector variant ' +
1879
+ 'end to end, and the Vector variant over the returned stream behind that same ' +
1880
+ 'collector. Both write JSON, and one cold table reads either.', '');
1764
1881
  }
1765
1882
  for (const v of variants) {
1766
1883
  const r = clickhouseOffloadRecipe(params, v).collector;
1767
- lines.push(`_${v === 'vector' ? 'Vector, Parquet objects (NOT EXERCISED)' : 'OpenTelemetry Collector, JSON objects (ran end to end)'}_`, '', '```' + r.language, r.body, '```', '', r.note, '');
1884
+ lines.push(`_${v === 'vector' ? 'Vector, JSON objects (ran behind the routing collector)' : 'OpenTelemetry Collector, JSON objects (ran end to end)'}_`, '', '```' + r.language, r.body, '```', '', r.note, '');
1768
1885
  }
1769
- const ddlVariant = variants[0];
1770
- const ddl = clickhouseDdl(params, ddlVariant);
1771
- lines.push('### 2. The ClickHouse side', '', variants.length > 1
1772
- ? 'The DDL below reads the JSON objects the OpenTelemetry Collector writes. On the ' +
1773
- 'Vector path the cold table reads named Parquet columns instead; render the ' +
1774
- 'section with that collector to get it.'
1775
- : ddlVariant === 'vector'
1776
- ? 'Reads the Parquet objects the Vector sink writes.'
1777
- : 'Reads the JSON objects the OpenTelemetry Collector writes.', '', '```sql', ddl.body, '```', '', ddl.note, '', '### 3. HyperDX', '');
1886
+ const ddl = clickhouseDdl(params);
1887
+ lines.push('### 2. The ClickHouse side', '', 'Reads the JSON objects either collector writes. The OpenTelemetry Collector\'s ' +
1888
+ 'JSON encoding extension and Vector\'s remap both produce a body and a flat ' +
1889
+ 'attribute map, so the same table, view and Merge table cover both paths.', '', '```sql', ddl.body, '```', '', ddl.note, '', '### 3. HyperDX', '');
1778
1890
  const hdx = clickhouseHyperdx(params);
1779
1891
  lines.push('```bash', hdx.body, '```', '', hdx.note, '', '### 4. Before quoting any of this', '');
1780
1892
  lines.push(...clickhouseOffloadHonesty());
@@ -1 +1 @@
1
- {"version":3,"file":"offload-recipes.js","sourceRoot":"","sources":["../../src/lib/offload-recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offload-recipes.js","sourceRoot":"","sources":["../../src/lib/offload-recipes.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,9 @@ The four options:
15
15
  | Drop at the analyzer | Vendor-native exclusion (Datadog / Splunk / CloudWatch / Elasticsearch). Pattern is dropped at ingest. | Paste the per-option `config_snippet` into your analyzer. |
16
16
  | Drop at the forwarder | Forwarder-side filter (fluent-bit, fluentd, otel-collector, etc.). Pattern is dropped before it leaves the host. | Paste the per-option `config_snippet` into your forwarder config. |
17
17
  | Cap at the Receiver | Per-container byte cap via the [rate regulator](../../../receiver/rate/). PR against the gitops repo. | [Engine PR](../install/configure-engine.md) |
18
- | Compact at the Receiver | Lossless volume reduction via [Compact mode](../../../receiver/compact/), events shrink ~50-80% (Splunk, self-hosted Elasticsearch, ClickHouse). PR against the gitops repo. | [Engine PR](../install/configure-engine.md) |
18
+ | Compact at the Receiver | Lossless volume reduction via [Compact mode](../../../receiver/compact/) on Splunk and self-hosted Elasticsearch, the destinations whose expander reads the compact form back. PR against the gitops repo. | [Engine PR](../install/configure-engine.md) |
19
+
20
+ Compact is not offered on ClickHouse. Compaction measured about 7% of table bytes there, and table bytes are not where a ClickHouse bill lives: what a row costs on the way in is the write path, meaning insert CPU, merge CPU and merge IO, disk bandwidth, part metadata in Keeper, and object-store requests. The lever is offload before insert. No line is dropped by it: the Receiver routes what a pattern spends over its cap to object storage the customer owns, the collector writes those objects as JSON, and ClickHouse reads them in place beside the hot rows through a Merge table over the hot table and the bucket.
19
21
 
20
22
  [Dependency check](dependency-check.md) is listed as a required pre-action for any drop-style option, so the safety gate stays enforced.
21
23
 
@@ -32,7 +34,7 @@ The four options:
32
34
  1. **Drop at Datadog**: `@tenx_hash:"sZw4qq3MCWE"` exclusion filter. Stops appearing in Logs Explorer. _Run [Dependency check](dependency-check.md) first._
33
35
  2. **Drop at fluent-bit**: drop rule on the forwarder; pattern never reaches Datadog. _Run [Dependency check](dependency-check.md) first._
34
36
  3. **Cap at the Receiver**: per-container byte cap with PR against `acme/log10x-config`. Pattern is sampled at the severity floor when it goes hot.
35
- 4. **Compact at the Receiver**: losslessly compact the pattern's container; ~50-80% volume reduction (Splunk, self-hosted Elasticsearch, ClickHouse) with full retriever expansion.
37
+ 4. **Compact at the Receiver**: losslessly compact the pattern's container (Splunk, self-hosted Elasticsearch) with full retriever expansion.
36
38
 
37
39
  Which?
38
40
 
@@ -8,6 +8,8 @@ Called after the user picks option 1 from [log10x_start](start.md). Returns a st
8
8
 
9
9
  At Receiver tier all 6 modes are available; at Reporter-only or Dev tier the menu collapses to 2 items (observe_only + install_receiver placeholder).
10
10
 
11
+ Compact is gated by destination. It is a lever on Splunk and on self-hosted Elasticsearch, the two destinations whose expander reads the compact form back at search time. On ClickHouse it is not offered: the column codecs and the text index already absorb the repetition compaction would remove, so the only modeled lever there is offload before insert, above a per-pattern cap. No line is dropped by that cap: the marked lines go to the customer's own bucket and are read beside the hot rows through a Merge table. What a row costs on the way in is the write path, meaning insert CPU, merge CPU and merge IO, disk bandwidth, part metadata in Keeper, and object-store requests. The ClickHouse figures this menu routes into rest on a modeled effective rate of $0.06 per GB ingested, derived from ClickHouse Cloud's compute-unit price rather than from a published per-GB list price.
12
+
11
13
  Three compliance levers (same shape as log10x_start):
12
14
 
13
15
  - **must_render_verbatim**: pre-rendered markdown surfaced as-is
@@ -29,7 +31,7 @@ Three compliance levers (same shape as log10x_start):
29
31
  Pick a mode:
30
32
  1. **drop**: stop events at the forwarder. Nothing reaches the SIEM.
31
33
  2. **sample**: keep 1 in N events. Trends stay valid.
32
- 3. **compact**: minify events ~50-80% losslessly (Splunk, self-hosted Elasticsearch, ClickHouse). All events still land in the SIEM.
34
+ 3. **compact**: minify events losslessly (Splunk, self-hosted Elasticsearch). All events still land in the SIEM.
33
35
  4. **tier_down**: SIEM stores events at a cheaper storage tier.
34
36
  _(not available: tier_down maps to billing reductions only on Datadog/CloudWatch/Azure Monitor. Detected SIEM: splunk.)_
35
37
  5. **offload**: events route to your S3 bucket instead of the SIEM.
@@ -61,18 +61,22 @@ Reporter deployed (for volume figures). Volume data is best-effort; the card ren
61
61
  "mode": {
62
62
  "type": "string",
63
63
  "enum": [
64
- "drop",
65
- "sample",
66
64
  "compact",
67
- "tier_down",
68
65
  "offload",
66
+ "tier_down",
67
+ "sample",
68
+ "drop",
69
69
  "observe_only"
70
70
  ],
71
- "description": "Which enforcement mode to explain. `drop` = engine hard-drops matched patterns at the Receiver before delivery. `sample` = engine passes 1-in-N events through to the SIEM. `compact` = engine minifies events ~50-80% losslessly (Splunk, self-hosted Elasticsearch, ClickHouse); all events still reach the SIEM. `tier_down` = engine stamps tenx_action marker; SIEM routes to a cheaper storage tier (Datadog Flex / CloudWatch IA / Azure Monitor Basic or Auxiliary Logs). `offload` = engine diverts matched events to a customer-owned S3 bucket; recoverable via log10x_retriever_query. `observe_only` = engine observes and fingerprints but does not act; use to baseline volume before committing."
71
+ "description": "Which enforcement mode to explain. Keep-everything levers come first, then the lossy opt-ins. `compact` = keeps everything: engine minifies events losslessly; all events still reach the stack. `offload` = keeps everything: engine diverts matched events to a customer-owned S3 bucket; readable via log10x_retriever_query. `tier_down` = keeps everything: engine stamps the routeState marker; a routing rule moves those events to a cheaper storage tier (Datadog Flex / CloudWatch IA / Azure Monitor Basic or Auxiliary Logs). `sample` = lossy opt-in: engine passes 1-in-N events through to the stack; the rest are discarded. `drop` = lossy opt-in: engine hard-drops matched patterns at the Receiver before delivery. `observe_only` = engine observes and fingerprints but does not act; use to baseline volume before committing."
72
72
  },
73
73
  "destination": {
74
74
  "type": "string",
75
- "description": "Auto-detected destination SIEM or forwarder. When omitted the tool infers from envs.json / env vars. Used to name the specific vendor in the explanation (\"your Datadog workspace\", \"your Splunk index\", etc.)."
75
+ "description": "Auto-detected destination stack or forwarder. When omitted the tool infers from envs.json / env vars. Used to name the specific vendor in the explanation (\"your Datadog workspace\", \"your Splunk index\", etc.)."
76
+ },
77
+ "effective_ingest_per_gb": {
78
+ "type": "number",
79
+ "description": "Customer-supplied $/GB rate used for the dollar overlay. When set, source_disclosure.rate_source='customer_supplied'. When absent, the shared rate resolver falls back to envs.json analyzerCost → LOG10X_ANALYZER_COST → destination list price → unset (no dollar overlay)."
76
80
  }
77
81
  },
78
82
  "required": [
@@ -105,7 +105,7 @@ Compact mode executes inside the [Receiver](../index.md) sidecar, compacting eve
105
105
 
106
106
  === ":simple-clickhouse: ClickHouse"
107
107
 
108
- Compact is not used on ClickHouse. The column codecs and the text index already absorb most of what compaction would recover there, so the lever is offload above a per-pattern cap: the Receiver routes the events a pattern spends over its cap to object storage you own, and the [Retriever](../../retriever/) fetches them back on demand.
108
+ Compact is not used on ClickHouse. The column codecs and the text index already absorb most of what compaction would recover there, so the lever is offload above a per-pattern cap. No line is dropped by that cap: the Receiver routes the events a pattern spends over its cap to object storage you own, and ClickHouse reads those objects in place beside the hot rows, through a Merge table over the hot table and the bucket, slower on the offloaded side than on the hot one.
109
109
 
110
110
  ## :material-shield-check-outline: Safety & Reliability
111
111
 
@@ -2,7 +2,7 @@
2
2
  icon: simple/datadog
3
3
  ---
4
4
 
5
- Install the log10x Datadog Agent check. It reads the 10x Engine's Prometheus metrics endpoint and submits per-pattern log volume and byte counters to Datadog: what the pipeline read, what it forwarded, the encoded size when compaction is on, and what went to offload storage and came back by query. The Datadog Agent scrapes the engine; the engine is not configured with any Datadog credential.
5
+ Install the log10x Datadog Agent check. It reads the 10x Engine's Prometheus metrics endpoint and submits per-pattern log volume and byte counters to Datadog: what the pipeline read, what it forwarded, the encoded size when compaction is on, and, from the Retriever, what went to offload storage and came back by query. The Datadog Agent scrapes the engine; the engine is not configured with any Datadog credential.
6
6
 
7
7
  !!! note "Catalogue status"
8
8
 
@@ -16,7 +16,7 @@ Install the log10x Datadog Agent check. It reads the 10x Engine's Prometheus met
16
16
  tenx @apps/receiver @run/output/metric/prometheus/scrape
17
17
  ```
18
18
 
19
- 2. Restart the pipeline. At startup it prints `Publishing TenXSummary metrics to Prometheus scrape on port: 9100`. To change the port, edit `port` in `run/output/metric/prometheus/scrape/config.yaml`.
19
+ 2. Restart the pipeline. At startup the engine prints `Publishing TenXSummary metrics to Prometheus` followed by the port it listens on, 9100 by default. To change the port, edit `port` in `run/output/metric/prometheus/scrape/config.yaml`.
20
20
 
21
21
  3. Confirm the endpoint serves series once the first aggregation flush has landed, about two seconds into traffic:
22
22
 
@@ -71,18 +71,20 @@ curl -LO https://raw.githubusercontent.com/log-10x/datadog-integration/v1.0.0/as
71
71
 
72
72
  Every metric is prefixed `log10x.` and carries the engine's [enrichment fields](https://doc.log10x.com/api/metrics/#available-labels) as tags: `message_pattern`, `severity_level`, `tenx_user_service`, `tenx_app`, `tenx_env`, `k8s_namespace`, `k8s_container`, `http_code`.
73
73
 
74
- | Metric | Type | Unit | Counts |
75
- |---|---|---|---|
76
- | `log10x.check.up` | gauge | | 1 on every run of the check |
77
- | `log10x.events.read.count` | count | event | events the pipeline read |
78
- | `log10x.bytes.read.count` | count | byte | bytes the pipeline read |
79
- | `log10x.events.forwarded.count` | count | event | events forwarded downstream |
80
- | `log10x.bytes.forwarded.count` | count | byte | bytes forwarded downstream |
81
- | `log10x.bytes.encoded.count` | count | byte | encoded size of forwarded events when compaction is on |
82
- | `log10x.events.offloaded.count` | count | event | events written to offload storage |
83
- | `log10x.bytes.offloaded.count` | count | byte | bytes written to offload storage |
84
- | `log10x.events.retrieved.count` | count | event | events a retrieval query returned |
85
- | `log10x.bytes.retrieved.count` | count | byte | bytes a retrieval query returned |
74
+ | Metric | Type | Unit | Emitted by | Counts |
75
+ |---|---|---|---|---|
76
+ | `log10x.check.up` | gauge | | the check | 1 on every run of the check |
77
+ | `log10x.events.read.count` | count | event | pipeline | events the pipeline read |
78
+ | `log10x.bytes.read.count` | count | byte | pipeline | bytes the pipeline read |
79
+ | `log10x.events.forwarded.count` | count | event | pipeline | events forwarded downstream |
80
+ | `log10x.bytes.forwarded.count` | count | byte | pipeline | bytes forwarded downstream |
81
+ | `log10x.bytes.encoded.count` | count | byte | pipeline | encoded size of forwarded events when compaction is on |
82
+ | `log10x.events.offloaded.count` | count | event | Retriever index | events written to offload storage |
83
+ | `log10x.bytes.offloaded.count` | count | byte | Retriever index | bytes written to offload storage |
84
+ | `log10x.events.retrieved.count` | count | event | Retriever query | events a retrieval query returned |
85
+ | `log10x.bytes.retrieved.count` | count | byte | Retriever query | bytes a retrieval query returned |
86
+
87
+ The last four come from the [Retriever](../apps/retriever/), which runs as its own deployment, so the Agent needs a second instance pointing at it: on Kubernetes an Autodiscovery annotation on the index, query and stream pods. On Lambda the Retriever has no endpoint for the Agent to scrape, so those four metrics do not arrive through this check.
86
88
 
87
89
  One service check, `log10x.openmetrics.health`, is `CRITICAL` when the Agent cannot reach the engine's endpoint and `OK` otherwise.
88
90
 
@@ -92,7 +94,7 @@ One service check, `log10x.openmetrics.health`, is `CRITICAL` when the Agent can
92
94
 
93
95
  **The check is not listed in `datadog-agent status`.** Confirm the install step completed and that `conf.d/log10x.d/conf.yaml` exists, then restart the Agent.
94
96
 
95
- **`log10x.openmetrics.health` is `CRITICAL`.** The Agent cannot reach the endpoint. Check the engine log for the `Publishing TenXSummary metrics to Prometheus scrape on port` line and that the port in `conf.yaml` matches it.
97
+ **`log10x.openmetrics.health` is `CRITICAL`.** The Agent cannot reach the endpoint. Check the engine log for the `Publishing TenXSummary metrics to Prometheus` line and that the port it names matches `conf.yaml`.
96
98
 
97
99
  **Series arrive with no `message_pattern` tag.** Pattern enrichment comes from the `run/initialize/message` module. Confirm it is included in the engine's app configuration.
98
100
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "log10x-mcp",
3
- "version": "1.30.15",
3
+ "version": "1.30.17",
4
4
  "description": "Rank log patterns by cost, then compact, tier down or offload them. No log data reaches log10x.",
5
5
  "mcpName": "io.github.log-10x/log10x-mcp",
6
6
  "type": "module",