@dudousxd/nestjs-telescope-mikro-orm 1.15.1 → 1.15.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @dudousxd/nestjs-telescope-mikro-orm
2
2
 
3
+ ## 1.15.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#174](https://github.com/DavideCarvalho/nestjs-telescope/pull/174) [`8a61f3d`](https://github.com/DavideCarvalho/nestjs-telescope/commit/8a61f3d41366b79a28caa1b211989614b890bcba) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Cheaper dashboard reads and flushes, and rollups that no longer lose counts across pods.
8
+
9
+ - Per-type stats scan without entry content (cache stats excepted) and read only the content they show: one row per query or exception family, and request status codes from the `status:` tag.
10
+ - Exception alerts are evaluated in their own queue behind the flush, so a slow channel, geo lookup or AI diagnosis no longer delays the next flush; each family is checked once per flush, and the per-family cooldown map is bounded.
11
+ - `/health` reuses its capture-cost measurement for a minute.
12
+ - The in-memory store keeps entries sorted and reads a page from the newest end instead of copying and sorting everything per page.
13
+ - Redis: rollup reads are two pipelined round trips; content-less reads use a content-free copy of each entry (`m:<id>`, falling back to the full entry for data written before it); `{ type, familyHash }` queries page the family index; tags with no entries left are removed from the tag counts.
14
+ - MikroORM: rollups are written with one native upsert per chunk (MySQL/MariaDB, PostgreSQL, SQLite) that merges counts, max and histogram in the database, so concurrent pods never lose or reject each other's increments.
15
+ - Parquet: listing an hour with many files is linear in the file count.
16
+ - Query and log watchers compute the family hash / serialize the log message only when the recorder keeps the entry.
17
+
18
+ - [#171](https://github.com/DavideCarvalho/nestjs-telescope/pull/171) [`eeb1798`](https://github.com/DavideCarvalho/nestjs-telescope/commit/eeb1798ad13e6b40e6534b1b5141e0b437d462ea) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - The pruner's batches no longer read the whole retained backlog to find the rows they delete.
19
+
20
+ The global cutoff (every type but the ones with their own retention) ran as one
21
+ `created_at < ? AND type NOT IN (…) ORDER BY created_at` query. The planner walked the `created_at`
22
+ index from the oldest row and stepped over every row of the excluded types, which are excluded
23
+ because they are kept longer: next to 2.8M `durable` entries kept for 24 h, a batch of 1,000 rows
24
+ took 10 s, so a cycle's batches ran back to back on the database. The batch now prunes one type at a
25
+ time (the types found by index seeks), each as a range of a new `(type, created_at, id)` index, which
26
+ the additive schema update adds on the next boot on every dialect. A type with nothing expired costs
27
+ one index seek. Same rows deleted, oldest first within each type, one shared `limit` per batch.
28
+
29
+ - [#172](https://github.com/DavideCarvalho/nestjs-telescope/pull/172) [`833fab2`](https://github.com/DavideCarvalho/nestjs-telescope/commit/833fab2f54efaf41e5a8a4e6e5cf3e044bee17d6) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Flushes are written as plain multi-row INSERTs instead of going through the unit of work.
30
+
31
+ `store()` created a managed entity per entry and ran `em.flush()`, which computes a change set per
32
+ entity. Entries are write-once, so that work was not needed, and on a host recording a wide durable
33
+ fan (80k entries in a 40k-step run) it cost more CPU than the INSERTs themselves. The batch is now
34
+ inserted directly, in chunks of the ORM's `batchSize` so a large flush stays under every driver's
35
+ bound-parameter limit. A flush that spans several chunks still runs in one transaction, so it is
36
+ stored whole or not at all and the recorder's retry never collides with rows from a failed attempt.
37
+ The same rows are written, for about half the CPU per flush.
38
+
39
+ ## 1.15.2
40
+
41
+ ### Patch Changes
42
+
43
+ - [#165](https://github.com/DavideCarvalho/nestjs-telescope/pull/165) [`6a1ecea`](https://github.com/DavideCarvalho/nestjs-telescope/commit/6a1ecea013ea550167c362b69fcc74f27ec1c749) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - `MikroOrmStorageProvider.tags()` honours the `TagQuery`: counts come back most used first with ties by tag, `search` matches anywhere in the tag, and `limit`/`offset` page over that order. It returned counts in first-seen order and ignored `search`, which the dashboard's tag picker does not re-apply. Found by the new storage conformance suite.
44
+
3
45
  ## 1.15.1
4
46
 
5
47
  ### Patch Changes
package/README.md CHANGED
@@ -160,6 +160,16 @@ How it works:
160
160
  - **Keyset pagination** is newest-first (`createdAt DESC, id DESC`); the cursor
161
161
  encodes a `(createdAt, id)` position via `$or`, so paging resumes correctly
162
162
  even after older entries are pruned.
163
+ - **Flushes are plain multi-row `INSERT`s** (`em.insertMany`), outside the
164
+ unit of work, at most the ORM's `batchSize` rows (default 300) per statement.
165
+ A flush that needs several statements runs them in one transaction, so it is
166
+ stored whole or not at all.
167
+ - **Rollups merge in the database.** `telescope_rollups` is written with one
168
+ native upsert per 100 buckets (`ON DUPLICATE KEY UPDATE` on MySQL/MariaDB,
169
+ `ON CONFLICT … DO UPDATE` on PostgreSQL and SQLite/libSQL) that adds count,
170
+ sum and histogram cells and keeps the larger max against the stored row, so
171
+ concurrent pods never lose or reject each other's increments. Other drivers
172
+ use a transactional read-modify-write, safe only with a single writer.
163
173
  - **Tag filtering** runs against a space-padded `tagsText` column with
164
174
  `LIKE '% <tag> %'` (JSON-array predicates are not portable across MySQL and
165
175
  SQLite). The `tags` JSON column remains the source of truth for retrieval.
@@ -1,4 +1,4 @@
1
- import type { BoundedPruneCapable, BoundedPruneResult, BoundedPruneScope, Entry, EntryQuery, EntryWithBatch, LeaseCapableStorage, Page, PruneScope, RollupBucket, RollupDelta, RollupStore, TagCount } from '@dudousxd/nestjs-telescope';
1
+ import type { BoundedPruneCapable, BoundedPruneResult, BoundedPruneScope, Entry, EntryQuery, EntryWithBatch, LeaseCapableStorage, Page, PruneScope, RollupBucket, RollupDelta, RollupStore, TagCount, TagQuery } from '@dudousxd/nestjs-telescope';
2
2
  import type { Options } from '@mikro-orm/core';
3
3
  import { MikroORM } from '@mikro-orm/core';
4
4
  /**
@@ -44,12 +44,19 @@ export declare class MikroOrmStorageProvider implements BoundedPruneCapable, Lea
44
44
  private reconcileSchema;
45
45
  close(): Promise<void>;
46
46
  private forkEm;
47
+ /**
48
+ * Plain multi-row INSERTs, not `em.create()` + `flush()`: entries are write-once, so managed
49
+ * entities and change sets bought nothing and cost several times the INSERT itself on a busy
50
+ * host. Chunked by the ORM's `batchSize` so a large flush stays under every driver's
51
+ * bound-parameter limit; a flush spanning several chunks runs in one transaction so it lands
52
+ * whole or not at all, and the recorder's retry never re-inserts rows a failed attempt wrote.
53
+ */
47
54
  store(entries: Entry[]): Promise<void>;
48
55
  update(id: string, patch: Partial<Entry>): Promise<void>;
49
56
  find(id: string): Promise<EntryWithBatch | null>;
50
57
  get(query: EntryQuery): Promise<Page<Entry>>;
51
58
  batch(batchId: string): Promise<Entry[]>;
52
- tags(prefix?: string): Promise<TagCount[]>;
59
+ tags(prefix?: string, query?: TagQuery): Promise<TagCount[]>;
53
60
  prune(olderThan: Date, keepLast?: number): Promise<number>;
54
61
  pruneScopedBatch(input: BoundedPruneScope): Promise<BoundedPruneResult>;
55
62
  tryAcquireLease(key: string, owner: string, ttlMs: number, nowMs: number): Promise<boolean>;
@@ -57,22 +64,19 @@ export declare class MikroOrmStorageProvider implements BoundedPruneCapable, Lea
57
64
  pruneScoped(input: PruneScope): Promise<number>;
58
65
  clear(): Promise<void>;
59
66
  /**
60
- * Additively merge deltas into `telescope_rollups`, matching the sqlite
61
- * provider's `on conflict do update set count = count + excluded.count, ...`
62
- * semantics: accumulate count/sum and keep a running max per
67
+ * Additively merge deltas into `telescope_rollups`: count/sum accumulate, `max`
68
+ * keeps the running maximum and the histogram adds element-wise, per
63
69
  * (metric, bucketStart).
64
70
  *
65
- * Implemented as a read-modify-write inside ONE transaction rather than a
66
- * native upsert. MikroORM's `em.upsert` / `qb.onConflict().merge()` REPLACE
67
- * conflicting columns; neither expresses a portable `count = count +
68
- * excluded.count` self-referential increment across MySQL and SQLite without
69
- * driver-specific raw SQL. The transactional read-modify-write is portable,
70
- * cast-free, and — because the whole batch commits atomically with row locks
71
- * on the touched PKs — safe to call repeatedly and concurrently: concurrent
72
- * writers serialize on the same (metric, bucketStart) rows, so no increment is
73
- * lost. New buckets are inserted; existing ones accumulate.
71
+ * On MySQL/MariaDB, PostgreSQL and SQLite this is one native upsert per chunk
72
+ * of buckets, with every merge done by the database against the row as it is
73
+ * at write time, so concurrent writers (other pods) never lose each other's
74
+ * increments. Buckets are written in key order, so two writers touching the
75
+ * same buckets lock them in the same order. Other drivers fall back to a
76
+ * transactional read-modify-write.
74
77
  */
75
78
  recordRollups(deltas: RollupDelta[]): Promise<void>;
79
+ private recordRollupsReadModifyWrite;
76
80
  queryRollups(metrics: string[], fromBucket: number, toBucket: number): Promise<RollupBucket[]>;
77
81
  }
78
82
  //# sourceMappingURL=mikro-orm-storage.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm-storage.provider.d.ts","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,QAAQ,EACT,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAoEhD;;;;;;;;GAQG;AACH,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAuT3F;;;;GAIG;AACH,qBAAa,uBACX,YAAW,mBAAmB,EAAE,mBAAmB,EAAE,WAAW;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,GAAG,CAAyB;gBAGlC,MAAM,EAAE,QAAQ,GAAG,8BAA8B,EACjD,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;IAYnC,OAAO,CAAC,eAAe;IAoBjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;;;;;;;OAaG;YACW,eAAe;IAmCvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,MAAM;IAOR,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQhD,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAkE5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAMxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkB1C,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiCvE,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IA8Bb,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnD,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC;CAgB3B"}
1
+ {"version":3,"file":"mikro-orm-storage.provider.d.ts","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACT,MAAM,4BAA4B,CAAC;AASpC,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAoEhD;;;;;;;;GAQG;AACH,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AA6W3F;;;;GAIG;AACH,qBAAa,uBACX,YAAW,mBAAmB,EAAE,mBAAmB,EAAE,WAAW;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,GAAG,CAAyB;gBAGlC,MAAM,EAAE,QAAQ,GAAG,8BAA8B,EACjD,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;IAYnC,OAAO,CAAC,eAAe;IAoBjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;;;;;;;OAaG;YACW,eAAe;IAmCvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,MAAM;IAOd;;;;;;OAMG;IACG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQhD,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAkE5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAMxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0B5D,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0BvE,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IA8Bb,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA8B3C,4BAA4B;IAiCpC,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC;CAgB3B"}
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { decodeCursor, encodeCursor, isBatchOrigin, mergeHistograms, normalizeHistogram, } from '@dudousxd/nestjs-telescope';
2
+ import { HISTOGRAM_BUCKET_COUNT, decodeCursor, encodeCursor, isBatchOrigin, mergeHistograms, normalizeHistogram, } from '@dudousxd/nestjs-telescope';
3
3
  import { MikroORM, raw } from '@mikro-orm/core';
4
4
  import { TelescopeEntry } from './telescope-entry.entity.js';
5
5
  import { TelescopeLease } from './telescope-lease.entity.js';
@@ -98,6 +98,52 @@ function scopedWhere(scope) {
98
98
  }
99
99
  return where;
100
100
  }
101
+ /**
102
+ * The oldest `limit` rows of `where`, deleted: SELECT their ids, then DELETE BY PRIMARY KEY.
103
+ *
104
+ * This shape is chosen for PORTABILITY, and the obvious alternative is not portable: `DELETE ...
105
+ * ORDER BY created_at LIMIT n` is MySQL/MariaDB-only. PostgreSQL has no ORDER BY/LIMIT on DELETE at
106
+ * all (it needs exactly this subquery on the primary key), SQLite only has it when compiled with
107
+ * SQLITE_ENABLE_UPDATE_DELETE_LIMIT, and SQL Server spells it `DELETE TOP (n)` with no ordering.
108
+ * Expressed at the ORM level as find-then-delete it renders correctly on every driver MikroORM
109
+ * supports, takes no row locks to read, and the DELETE touches exactly those primary keys.
110
+ *
111
+ * With a `type = ?` filter the read is a range of the `(type, created_at, id)` index, already in
112
+ * the ORDER BY's order: it starts at that type's oldest row, stops after `limit` matches, and costs
113
+ * one index seek when nothing of that type has expired. Without it the planner sorts or walks
114
+ * another index past the rows of every other type, on PostgreSQL every row of the table.
115
+ *
116
+ * `hasMore` comes from what was SELECTED, not from what was deleted: another pruner racing us can
117
+ * delete some of these rows first, which lowers `deleted` while saying nothing about whether work
118
+ * remains.
119
+ */
120
+ async function pruneOldestBatch(em, where, limit) {
121
+ const doomed = await em.find(TelescopeEntry, where, {
122
+ orderBy: { createdAt: 'asc', id: 'asc' },
123
+ limit,
124
+ fields: ['id'],
125
+ });
126
+ if (doomed.length === 0)
127
+ return { deleted: 0, hasMore: false };
128
+ const deleted = await em.nativeDelete(TelescopeEntry, {
129
+ id: { $in: doomed.map((row) => row.id) },
130
+ });
131
+ return { deleted, hasMore: doomed.length === limit };
132
+ }
133
+ /**
134
+ * Every `type` present, one index seek each (`type > ?`, first in order): a skip scan by hand, since
135
+ * a plain `DISTINCT` reads the whole index on engines without one (PostgreSQL before 18).
136
+ */
137
+ async function distinctTypes(em) {
138
+ const types = [];
139
+ for (;;) {
140
+ const previous = types[types.length - 1];
141
+ const [next] = await em.find(TelescopeEntry, previous === undefined ? {} : { type: { $gt: previous } }, { orderBy: { type: 'asc' }, fields: ['type'], limit: 1 });
142
+ if (!next)
143
+ return types;
144
+ types.push(next.type);
145
+ }
146
+ }
101
147
  function resolveLimit(limit) {
102
148
  return typeof limit === 'number' && Number.isInteger(limit) && limit > 0 ? limit : DEFAULT_LIMIT;
103
149
  }
@@ -418,14 +464,27 @@ export class MikroOrmStorageProvider {
418
464
  }
419
465
  return this.orm.em.fork();
420
466
  }
467
+ /**
468
+ * Plain multi-row INSERTs, not `em.create()` + `flush()`: entries are write-once, so managed
469
+ * entities and change sets bought nothing and cost several times the INSERT itself on a busy
470
+ * host. Chunked by the ORM's `batchSize` so a large flush stays under every driver's
471
+ * bound-parameter limit; a flush spanning several chunks runs in one transaction so it lands
472
+ * whole or not at all, and the recorder's retry never re-inserts rows a failed attempt wrote.
473
+ */
421
474
  async store(entries) {
422
475
  if (entries.length === 0)
423
476
  return;
424
477
  const em = this.forkEm();
425
- for (const entry of entries) {
426
- em.create(TelescopeEntry, entryToRowData(entry));
478
+ const chunk = em.config.get('batchSize');
479
+ if (entries.length <= chunk) {
480
+ await em.insertMany(TelescopeEntry, entries.map(entryToRowData));
481
+ return;
427
482
  }
428
- await em.flush();
483
+ await em.transactional(async (tx) => {
484
+ for (let offset = 0; offset < entries.length; offset += chunk) {
485
+ await tx.insertMany(TelescopeEntry, entries.slice(offset, offset + chunk).map(entryToRowData));
486
+ }
487
+ });
429
488
  }
430
489
  async update(id, patch) {
431
490
  const em = this.forkEm();
@@ -515,18 +574,28 @@ export class MikroOrmStorageProvider {
515
574
  const rows = await em.find(TelescopeEntry, { batchId }, { orderBy: { sequence: 'asc' } });
516
575
  return rows.map((row) => rowToEntry(row));
517
576
  }
518
- async tags(prefix) {
577
+ async tags(prefix, query) {
519
578
  const em = this.forkEm();
520
579
  const rows = await em.find(TelescopeEntry, {}, { orderBy: { createdAt: 'desc', id: 'desc' }, limit: 10000, fields: ['tags'] });
580
+ const search = query?.search?.trim().toLowerCase();
521
581
  const counts = new Map();
522
582
  for (const row of rows) {
523
583
  for (const tag of row.tags) {
524
584
  if (prefix && !tag.startsWith(prefix))
525
585
  continue;
586
+ if (search && !tag.toLowerCase().includes(search))
587
+ continue;
526
588
  counts.set(tag, (counts.get(tag) ?? 0) + 1);
527
589
  }
528
590
  }
529
- return [...counts.entries()].map(([tag, count]) => ({ tag, count }));
591
+ // Count descending, ties by tag: the total order `offset` pages over.
592
+ const ordered = [...counts.entries()]
593
+ .map(([tag, count]) => ({ tag, count }))
594
+ .sort((a, b) => b.count - a.count || (a.tag < b.tag ? -1 : a.tag > b.tag ? 1 : 0));
595
+ if (query?.limit === undefined)
596
+ return ordered;
597
+ const offset = query.offset ?? 0;
598
+ return ordered.slice(offset, offset + query.limit);
530
599
  }
531
600
  async prune(olderThan, keepLast) {
532
601
  const em = this.forkEm();
@@ -541,36 +610,26 @@ export class MikroOrmStorageProvider {
541
610
  }
542
611
  async pruneScopedBatch(input) {
543
612
  const em = this.forkEm();
544
- const where = scopedWhere(input);
545
- // SELECT the oldest `limit` ids, then DELETE BY PRIMARY KEY. This shape is
546
- // chosen for PORTABILITY, and the obvious alternative is not portable:
547
- // `DELETE ... ORDER BY created_at LIMIT n` is MySQL/MariaDB-only. PostgreSQL
548
- // has no ORDER BY/LIMIT on DELETE at all (it needs exactly this subquery on
549
- // the primary key), SQLite only has it when compiled with
550
- // SQLITE_ENABLE_UPDATE_DELETE_LIMIT, and SQL Server spells it `DELETE TOP (n)`
551
- // with no ordering. Since this provider is driver-agnostic — it is the same
552
- // class on MySQL, PostgreSQL, MariaDB and SQLite — it cannot emit a dialect's
553
- // private syntax. Expressing the bound at the ORM level as find-then-delete
554
- // renders correctly on every driver MikroORM supports.
555
- //
556
- // It is also the better plan on the table that motivated this. The SELECT
557
- // walks the `created_at` index from the oldest row and stops after `limit`
558
- // matches instead of scanning the table, and it takes no row locks; the
559
- // DELETE then touches exactly those primary keys and commits in milliseconds.
560
- const doomed = await em.find(TelescopeEntry, where, {
561
- orderBy: { createdAt: 'asc', id: 'asc' },
562
- limit: input.limit,
563
- fields: ['id'],
564
- });
565
- if (doomed.length === 0)
566
- return { deleted: 0, hasMore: false };
567
- const deleted = await em.nativeDelete(TelescopeEntry, {
568
- id: { $in: doomed.map((row) => row.id) },
569
- });
570
- // `hasMore` comes from what was SELECTED, not from what was deleted: another
571
- // pruner racing us can delete some of these rows first, which lowers
572
- // `deleted` while saying nothing about whether work remains.
573
- return { deleted, hasMore: doomed.length === input.limit };
613
+ const limit = input.limit;
614
+ if (input.type !== undefined || !input.excludeTypes?.length) {
615
+ return pruneOldestBatch(em, scopedWhere(input), limit);
616
+ }
617
+ // All types but some, one type at a time. As one `type NOT IN (…)` query the planner walks the
618
+ // `created_at` index from the oldest row and steps over every row of the excluded types, which
619
+ // are excluded because they are kept longer: on a table where they hold most of the rows, each
620
+ // batch read the whole retained backlog to find a few hundred rows (10 s for 1,000 rows next to
621
+ // 2.8M kept `durable` entries). Per type it reads only that type's expired rows.
622
+ const excluded = new Set(input.excludeTypes);
623
+ let deleted = 0;
624
+ for (const type of await distinctTypes(em)) {
625
+ if (excluded.has(type))
626
+ continue;
627
+ const batch = await pruneOldestBatch(em, scopedWhere({ before: input.before, type }), limit - deleted);
628
+ deleted += batch.deleted;
629
+ if (batch.hasMore)
630
+ return { deleted, hasMore: true };
631
+ }
632
+ return { deleted, hasMore: false };
574
633
  }
575
634
  async tryAcquireLease(key, owner, ttlMs, nowMs) {
576
635
  const em = this.forkEm();
@@ -628,25 +687,44 @@ export class MikroOrmStorageProvider {
628
687
  }
629
688
  // ── RollupStore SPI ────────────────────────────────────────────────────────
630
689
  /**
631
- * Additively merge deltas into `telescope_rollups`, matching the sqlite
632
- * provider's `on conflict do update set count = count + excluded.count, ...`
633
- * semantics: accumulate count/sum and keep a running max per
690
+ * Additively merge deltas into `telescope_rollups`: count/sum accumulate, `max`
691
+ * keeps the running maximum and the histogram adds element-wise, per
634
692
  * (metric, bucketStart).
635
693
  *
636
- * Implemented as a read-modify-write inside ONE transaction rather than a
637
- * native upsert. MikroORM's `em.upsert` / `qb.onConflict().merge()` REPLACE
638
- * conflicting columns; neither expresses a portable `count = count +
639
- * excluded.count` self-referential increment across MySQL and SQLite without
640
- * driver-specific raw SQL. The transactional read-modify-write is portable,
641
- * cast-free, and — because the whole batch commits atomically with row locks
642
- * on the touched PKs — safe to call repeatedly and concurrently: concurrent
643
- * writers serialize on the same (metric, bucketStart) rows, so no increment is
644
- * lost. New buckets are inserted; existing ones accumulate.
694
+ * On MySQL/MariaDB, PostgreSQL and SQLite this is one native upsert per chunk
695
+ * of buckets, with every merge done by the database against the row as it is
696
+ * at write time, so concurrent writers (other pods) never lose each other's
697
+ * increments. Buckets are written in key order, so two writers touching the
698
+ * same buckets lock them in the same order. Other drivers fall back to a
699
+ * transactional read-modify-write.
645
700
  */
646
701
  async recordRollups(deltas) {
647
702
  if (deltas.length === 0)
648
703
  return;
649
704
  const em = this.forkEm();
705
+ const platform = em.getPlatform();
706
+ const dialect = rollupUpsertDialect(platform.constructor.name);
707
+ if (dialect === null) {
708
+ await this.recordRollupsReadModifyWrite(em, deltas);
709
+ return;
710
+ }
711
+ const tableName = em.getMetadata().get(TelescopeRollup).tableName;
712
+ const quote = (identifier) => platform.quoteIdentifier(identifier);
713
+ const buckets = mergeDeltasByBucket(deltas);
714
+ const connection = em.getConnection();
715
+ for (let offset = 0; offset < buckets.length; offset += ROLLUP_UPSERT_CHUNK) {
716
+ const chunk = buckets.slice(offset, offset + ROLLUP_UPSERT_CHUNK);
717
+ await connection.execute(rollupUpsertSql(dialect, quote, tableName, chunk.length), chunk.flatMap((delta) => [
718
+ delta.metric,
719
+ delta.bucketStart,
720
+ delta.count,
721
+ delta.sum,
722
+ delta.max,
723
+ JSON.stringify(normalizeHistogram(delta.histogram)),
724
+ ]), 'run');
725
+ }
726
+ }
727
+ async recordRollupsReadModifyWrite(em, deltas) {
650
728
  await em.transactional(async (tx) => {
651
729
  for (const delta of deltas) {
652
730
  const existing = await tx.findOne(TelescopeRollup, {
@@ -691,4 +769,71 @@ export class MikroOrmStorageProvider {
691
769
  }));
692
770
  }
693
771
  }
772
+ /** Buckets per rollup upsert statement (6 bound values each). */
773
+ const ROLLUP_UPSERT_CHUNK = 100;
774
+ /** The upsert flavour for a MikroORM platform class name, or null when it has none here. */
775
+ function rollupUpsertDialect(platformName) {
776
+ const name = platformName.toLowerCase();
777
+ if (name.includes('mysql') || name.includes('maria'))
778
+ return 'mysql';
779
+ if (name.includes('postgre'))
780
+ return 'postgresql';
781
+ if (name.includes('sqlite') || name.includes('libsql'))
782
+ return 'sqlite';
783
+ return null;
784
+ }
785
+ /** One delta per (metric, bucketStart), sorted by that key: an upsert may touch a row once. */
786
+ function mergeDeltasByBucket(deltas) {
787
+ const byKey = new Map();
788
+ for (const delta of deltas) {
789
+ const key = `${delta.metric}\u0000${delta.bucketStart}`;
790
+ const existing = byKey.get(key);
791
+ if (existing === undefined) {
792
+ byKey.set(key, { ...delta, histogram: normalizeHistogram(delta.histogram) });
793
+ }
794
+ else {
795
+ existing.count += delta.count;
796
+ existing.sum += delta.sum;
797
+ existing.max = Math.max(existing.max, delta.max);
798
+ existing.histogram = mergeHistograms(existing.histogram, delta.histogram);
799
+ }
800
+ }
801
+ return [...byKey.values()].sort((a, b) => (a.metric < b.metric ? -1 : a.metric > b.metric ? 1 : 0) || a.bucketStart - b.bucketStart);
802
+ }
803
+ /**
804
+ * `INSERT ... ON CONFLICT/ON DUPLICATE KEY UPDATE` for `rows` rollup buckets.
805
+ * The histogram is a fixed-length JSON array, rebuilt cell by cell as the sum
806
+ * of the stored cell (0 when the column is null or short) and the new one.
807
+ */
808
+ function rollupUpsertSql(dialect, quote, tableName, rows) {
809
+ const table = quote(tableName);
810
+ const columns = ['metric', 'bucket_start', 'count', 'sum', 'max', 'histogram'];
811
+ const values = Array.from({ length: rows }, () => `(${columns.map(() => '?').join(', ')})`);
812
+ const insert = `insert into ${table} (${columns.map(quote).join(', ')}) values ${values.join(', ')}`;
813
+ const [count, sum, max, histogram] = ['count', 'sum', 'max', 'histogram'].map(quote);
814
+ const cells = Array.from({ length: HISTOGRAM_BUCKET_COUNT }, (_, index) => index);
815
+ if (dialect === 'mysql') {
816
+ const cell = (source, index) => `cast(coalesce(json_extract(${source}, '$[${index}]'), 0) as signed)`;
817
+ const merged = cells
818
+ .map((index) => `${cell(histogram, index)} + ${cell(`values(${histogram})`, index)}`)
819
+ .join(', ');
820
+ return `${insert} on duplicate key update ${count} = ${count} + values(${count}), ${sum} = ${sum} + values(${sum}), ${max} = greatest(${max}, values(${max})), ${histogram} = json_array(${merged})`;
821
+ }
822
+ const current = (column) => `${table}.${column}`;
823
+ const incoming = (column) => `excluded.${column}`;
824
+ const conflict = `on conflict (${quote('metric')}, ${quote('bucket_start')}) do update set`;
825
+ const totals = `${count} = ${current(count)} + ${incoming(count)}, ${sum} = ${current(sum)} + ${incoming(sum)}`;
826
+ if (dialect === 'postgresql') {
827
+ const cell = (source, index) => `coalesce((${source} ->> ${index})::bigint, 0)`;
828
+ const merged = cells
829
+ .map((index) => `${cell(current(histogram), index)} + ${cell(incoming(histogram), index)}`)
830
+ .join(', ');
831
+ return `${insert} ${conflict} ${totals}, ${max} = greatest(${current(max)}, ${incoming(max)}), ${histogram} = jsonb_build_array(${merged})`;
832
+ }
833
+ const cell = (source, index) => `coalesce(json_extract(${source}, '$[${index}]'), 0)`;
834
+ const merged = cells
835
+ .map((index) => `${cell(current(histogram), index)} + ${cell(incoming(histogram), index)}`)
836
+ .join(', ');
837
+ return `${insert} ${conflict} ${totals}, ${max} = max(${current(max)}, ${incoming(max)}), ${histogram} = json_array(${merged})`;
838
+ }
694
839
  //# sourceMappingURL=mikro-orm-storage.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm-storage.provider.js","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mikro-orm-storage.provider.js","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"telescope-entry.entity.d.ts","sourceRoot":"","sources":["../src/telescope-entry.entity.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,iGA0BzB,CAAC"}
1
+ {"version":3,"file":"telescope-entry.entity.d.ts","sourceRoot":"","sources":["../src/telescope-entry.entity.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,iGA4BzB,CAAC"}
@@ -36,5 +36,7 @@ export const TelescopeEntry = new EntitySchema({
36
36
  spanId: { type: 'string', nullable: true, length: 16 },
37
37
  createdAt: { type: 'datetime', index: true },
38
38
  },
39
+ // The pruner's per-type read: `type = ? AND created_at < ? ORDER BY created_at, id LIMIT n`.
40
+ indexes: [{ properties: ['type', 'createdAt', 'id'] }],
39
41
  });
40
42
  //# sourceMappingURL=telescope-entry.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telescope-entry.entity.js","sourceRoot":"","sources":["../src/telescope-entry.entity.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,gFAAgF;AAChF,sEAAsE;AACtE,uDAAuD;AACvD,EAAE;AACF,kFAAkF;AAClF,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAoB;IAChE,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACjD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACvE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;QAC3C,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,6DAA6D;QAC7D,4EAA4E;QAC5E,4EAA4E;QAC5E,0DAA0D;QAC1D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACtD,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;KAC7C;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"telescope-entry.entity.js","sourceRoot":"","sources":["../src/telescope-entry.entity.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,gFAAgF;AAChF,sEAAsE;AACtE,uDAAuD;AACvD,EAAE;AACF,kFAAkF;AAClF,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAoB;IAChE,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACjD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACvE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;QAC3C,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,6DAA6D;QAC7D,4EAA4E;QAC5E,4EAA4E;QAC5E,0DAA0D;QAC1D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACtD,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;KAC7C;IACD,6FAA6F;IAC7F,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"telescope-mikro-orm.logger.d.ts","sourceRoot":"","sources":["../src/telescope-mikro-orm.logger.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;mFAGmF;AACnF,qBAAa,uBAAwB,SAAQ,aAAa;IAGtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFvB,OAAO,EAAE,aAAa,EACL,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,EACnD,MAAM,EAAE,MAAM;IAMxB,QAAQ,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,GAAG,IAAI;CAwBjE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,CAAC,aAAa,EAAE,aAAa,KAAK,uBAAuB,CAAC;AAC7D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,CAAC,aAAa,EAAE,aAAa,KAAK,uBAAuB,CAAC"}
1
+ {"version":3,"file":"telescope-mikro-orm.logger.d.ts","sourceRoot":"","sources":["../src/telescope-mikro-orm.logger.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;mFAGmF;AACnF,qBAAa,uBAAwB,SAAQ,aAAa;IAGtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFvB,OAAO,EAAE,aAAa,EACL,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,EACnD,MAAM,EAAE,MAAM;IAMxB,QAAQ,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,GAAG,IAAI;CA8BjE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,CAAC,aAAa,EAAE,aAAa,KAAK,uBAAuB,CAAC;AAC7D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,CAAC,aAAa,EAAE,aAAa,KAAK,uBAAuB,CAAC"}
@@ -24,6 +24,7 @@ export class TelescopeMikroOrmLogger extends DefaultLogger {
24
24
  // can construct this logger (via `MikroORM.init()`) before Nest DI has
25
25
  // wired `TelescopeService`, and `telescopeRecord` is a no-op until then.
26
26
  const record = this._record ?? telescopeRecord;
27
+ let familyHash;
27
28
  record({
28
29
  type: EntryType.Query,
29
30
  content: {
@@ -31,7 +32,12 @@ export class TelescopeMikroOrmLogger extends DefaultLogger {
31
32
  bindings: Array.isArray(context.params) ? [...context.params] : [],
32
33
  took,
33
34
  },
34
- familyHash: queryFamilyHash(sql),
35
+ // Read by the recorder only once it keeps the entry, so a sampled-out
36
+ // or paused query never pays for normalizing its SQL.
37
+ get familyHash() {
38
+ familyHash ??= queryFamilyHash(sql);
39
+ return familyHash;
40
+ },
35
41
  durationMs: took,
36
42
  ...(tags.length > 0 ? { tags } : {}),
37
43
  });
@@ -1 +1 @@
1
- {"version":3,"file":"telescope-mikro-orm.logger.js","sourceRoot":"","sources":["../src/telescope-mikro-orm.logger.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EACL,SAAS,EAET,eAAe,EACf,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAuC,MAAM,iBAAiB,CAAC;AAarF;;;mFAGmF;AACnF,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAGrC;IACA;IAHnB,YACE,OAAsB,EACL,OAAmD,EACnD,MAAc;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHE,YAAO,GAAP,OAAO,CAA4C;QACnD,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED,+DAA+D;IACtD,QAAQ,CAAC,OAAuC;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,MAAM,IAAI,GAAa,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;YAC/C,MAAM,CAAC;gBACL,IAAI,EAAE,SAAS,CAAC,KAAK;gBACrB,OAAO,EAAE;oBACP,GAAG;oBACH,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAClE,IAAI;iBACL;gBACD,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC;gBAChC,UAAU,EAAE,IAAI;gBAChB,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF;AAgCD,MAAM,UAAU,uBAAuB,CACrC,eAAyE,EACzE,eAAuC,EAAE;IAEzC,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,OAAO,GACX,OAAO,eAAe,KAAK,UAAU,IAAI,eAAe,KAAK,SAAS;QACpE,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,eAAe,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,8EAA8E;IAC9E,4EAA4E;IAC5E,mEAAmE;IACnE,OAAO,CAAC,aAA4B,EAAE,EAAE,CACtC,IAAI,uBAAuB,CACzB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,EACtE,MAAM,EACN,MAAM,CACP,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"telescope-mikro-orm.logger.js","sourceRoot":"","sources":["../src/telescope-mikro-orm.logger.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EACL,SAAS,EAET,eAAe,EACf,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAuC,MAAM,iBAAiB,CAAC;AAarF;;;mFAGmF;AACnF,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAGrC;IACA;IAHnB,YACE,OAAsB,EACL,OAAmD,EACnD,MAAc;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHE,YAAO,GAAP,OAAO,CAA4C;QACnD,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED,+DAA+D;IACtD,QAAQ,CAAC,OAAuC;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,MAAM,IAAI,GAAa,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;YAC/C,IAAI,UAA8B,CAAC;YACnC,MAAM,CAAC;gBACL,IAAI,EAAE,SAAS,CAAC,KAAK;gBACrB,OAAO,EAAE;oBACP,GAAG;oBACH,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAClE,IAAI;iBACL;gBACD,sEAAsE;gBACtE,sDAAsD;gBACtD,IAAI,UAAU;oBACZ,UAAU,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;oBACpC,OAAO,UAAU,CAAC;gBACpB,CAAC;gBACD,UAAU,EAAE,IAAI;gBAChB,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF;AAgCD,MAAM,UAAU,uBAAuB,CACrC,eAAyE,EACzE,eAAuC,EAAE;IAEzC,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,OAAO,GACX,OAAO,eAAe,KAAK,UAAU,IAAI,eAAe,KAAK,SAAS;QACpE,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,eAAe,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,8EAA8E;IAC9E,4EAA4E;IAC5E,mEAAmE;IACnE,OAAO,CAAC,aAA4B,EAAE,EAAE,CACtC,IAAI,uBAAuB,CACzB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,EACtE,MAAM,EACN,MAAM,CACP,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dudousxd/nestjs-telescope-mikro-orm",
3
- "version": "1.15.1",
3
+ "version": "1.15.3",
4
4
  "description": "MikroORM query watcher for @dudousxd/nestjs-telescope.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -8,6 +8,17 @@
8
8
  "url": "git+https://github.com/DavideCarvalho/nestjs-telescope.git",
9
9
  "directory": "packages/mikro-orm"
10
10
  },
11
+ "homepage": "https://davidecarvalho.github.io/aviary/docs/telescope",
12
+ "bugs": {
13
+ "url": "https://github.com/DavideCarvalho/nestjs-telescope/issues"
14
+ },
15
+ "keywords": [
16
+ "nestjs",
17
+ "telescope",
18
+ "mikro-orm",
19
+ "observability",
20
+ "query"
21
+ ],
11
22
  "author": "Davi Carvalho <davi@goflip.ai>",
12
23
  "type": "module",
13
24
  "sideEffects": false,
@@ -32,36 +43,30 @@
32
43
  "@nestjs/common": ">=10.0.0",
33
44
  "@nestjs/core": ">=10.0.0",
34
45
  "reflect-metadata": ">=0.1.13",
35
- "@dudousxd/nestjs-telescope": "^1.28.1"
46
+ "@dudousxd/nestjs-telescope": "^1.30.1"
36
47
  },
37
48
  "devDependencies": {
38
- "@mikro-orm/core": "^7.0.0",
39
- "@mikro-orm/decorators": "^7.0.0",
40
- "@mikro-orm/sql": "^7.0.0",
41
- "@mikro-orm/nestjs": "^7.0.0",
42
- "@mikro-orm/sqlite": "^7.0.0",
43
- "@nestjs/common": "^12.0.0",
44
- "@nestjs/core": "^12.0.0",
45
- "@nestjs/testing": "^12.0.0",
46
- "@types/node": "^20.0.0",
47
- "reflect-metadata": "^0.2.2",
48
- "@types/supertest": "^6.0.2",
49
- "rxjs": "^7.8.1",
50
- "supertest": "^7.0.0",
51
- "typescript": "^5.4.0",
52
- "vitest": "^3.0.0",
53
- "@dudousxd/nestjs-telescope": "1.28.1"
49
+ "@mikro-orm/core": "7.1.3",
50
+ "@mikro-orm/decorators": "7.1.3",
51
+ "@mikro-orm/nestjs": "7.1.0",
52
+ "@mikro-orm/sql": "7.1.3",
53
+ "@mikro-orm/sqlite": "7.1.3",
54
+ "@nestjs/common": "12.0.3",
55
+ "@nestjs/core": "12.0.3",
56
+ "@nestjs/testing": "12.0.3",
57
+ "@types/node": "20.19.43",
58
+ "@types/supertest": "6.0.3",
59
+ "reflect-metadata": "0.2.2",
60
+ "rxjs": "7.8.2",
61
+ "supertest": "7.2.2",
62
+ "typescript": "5.9.3",
63
+ "vitest": "3.2.7",
64
+ "@dudousxd/nestjs-telescope": "1.30.1",
65
+ "@dudousxd/nestjs-telescope-testing": "1.13.0"
54
66
  },
55
67
  "engines": {
56
68
  "node": ">=20"
57
69
  },
58
- "keywords": [
59
- "nestjs",
60
- "telescope",
61
- "mikro-orm",
62
- "observability",
63
- "query"
64
- ],
65
70
  "scripts": {
66
71
  "build": "tsc -p tsconfig.json",
67
72
  "test": "vitest run --passWithNoTests",