@hozon/store-telemetry 0.1.0 → 0.2.1

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/README.md CHANGED
@@ -13,4 +13,4 @@ db.register(telemetryStoreDefinition)
13
13
  const telemetry = await getTelemetryStore(db)
14
14
  ```
15
15
 
16
- See the [store reference](../../docs/reference/stores.md).
16
+ See the [store reference](../../docs/reference/stores/telemetry.md).
package/lib/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Adapter } from '@hozon/adapter';
2
- import type { Kysely } from 'kysely';
2
+ import type { Kysely } from '@hozon/db';
3
3
  import type { TelemetryTables } from './tables.js';
4
4
  import type { TelemetryStore } from './types.js';
5
5
  export declare function createTelemetryStoreAPI(db: Kysely<TelemetryTables>, adapter: Adapter): TelemetryStore;
package/lib/api.js CHANGED
@@ -15,7 +15,7 @@ export function createTelemetryStoreAPI(db, adapter) {
15
15
  let pairs = new Set();
16
16
  const insertBatch = async ()=>{
17
17
  if (batch.length === 0) return;
18
- await trx.insertInto('hozon_spans').values(batch).onConflict((conflict)=>conflict.columns([
18
+ await trx.insertInto('spans').values(batch).onConflict((conflict)=>conflict.columns([
19
19
  'trace_id',
20
20
  'span_id'
21
21
  ]).doUpdateSet((eb)=>({
@@ -39,7 +39,7 @@ export function createTelemetryStoreAPI(db, adapter) {
39
39
  });
40
40
  },
41
41
  async getSpans (traceID) {
42
- const rows = await db.selectFrom('hozon_spans').select('data').where('trace_id', '=', traceID).orderBy('start_time').orderBy('seq').execute();
42
+ const rows = await db.selectFrom('spans').select('data').where('trace_id', '=', traceID).orderBy('start_time').orderBy('seq').execute();
43
43
  return rows.map((row)=>row.data);
44
44
  },
45
45
  async deleteByTrace (traceIDs) {
@@ -47,7 +47,7 @@ export function createTelemetryStoreAPI(db, adapter) {
47
47
  return withStoreTransaction(db, async (trx)=>{
48
48
  let count = 0;
49
49
  for (const ids of chunk(traceIDs)){
50
- const result = await trx.deleteFrom('hozon_spans').where('trace_id', 'in', ids).executeTakeFirstOrThrow();
50
+ const result = await trx.deleteFrom('spans').where('trace_id', 'in', ids).executeTakeFirstOrThrow();
51
51
  count += Number(result.numDeletedRows);
52
52
  }
53
53
  return count;
@@ -56,14 +56,14 @@ export function createTelemetryStoreAPI(db, adapter) {
56
56
  async deleteBefore (time, params) {
57
57
  return withStoreTransaction(db, async (trx)=>{
58
58
  if (params?.keepTraceIDs === undefined || params.keepTraceIDs.length === 0) {
59
- const result = await trx.deleteFrom('hozon_spans').where('end_time', '<', time).executeTakeFirstOrThrow();
59
+ const result = await trx.deleteFrom('spans').where('end_time', '<', time).executeTakeFirstOrThrow();
60
60
  return Number(result.numDeletedRows);
61
61
  }
62
62
  return withKeepSet(trx, {
63
- table: 'hozon_keep_telemetry',
63
+ table: 'keep_telemetry',
64
64
  ids: params.keepTraceIDs
65
65
  }, async (selectKeep)=>{
66
- const result = await trx.deleteFrom('hozon_spans').where('end_time', '<', time).where('trace_id', 'not in', selectKeep()).executeTakeFirstOrThrow();
66
+ const result = await trx.deleteFrom('spans').where('end_time', '<', time).where('trace_id', 'not in', selectKeep()).executeTakeFirstOrThrow();
67
67
  return Number(result.numDeletedRows);
68
68
  });
69
69
  });
@@ -1,3 +1,2 @@
1
- import type { MigrationContext } from '@hozon/db';
2
- import type { Migration } from 'kysely/migration';
1
+ import type { Migration, MigrationContext } from '@hozon/db';
3
2
  export declare function telemetryStoreMigrations(ctx: MigrationContext): Record<string, Migration>;
package/lib/migrations.js CHANGED
@@ -2,22 +2,22 @@ export function telemetryStoreMigrations(ctx) {
2
2
  return {
3
3
  '0-init': {
4
4
  async up (db) {
5
- await db.schema.createTable('hozon_spans').addColumn('seq', ctx.types.serial, (column)=>{
5
+ await db.schema.createTable('spans').addColumn('seq', ctx.types.serial, (column)=>{
6
6
  const primary = column.primaryKey();
7
7
  return ctx.kind === 'sqlite' ? primary.autoIncrement() : primary;
8
- }).addColumn('trace_id', ctx.types.text, (column)=>column.notNull()).addColumn('span_id', ctx.types.text, (column)=>column.notNull()).addColumn('start_time', ctx.types.double, (column)=>column.notNull()).addColumn('end_time', ctx.types.double, (column)=>column.notNull()).addColumn('data', ctx.types.json, (column)=>column.notNull()).addUniqueConstraint('hozon_spans_trace_span', [
8
+ }).addColumn('trace_id', ctx.types.text, (column)=>column.notNull()).addColumn('span_id', ctx.types.text, (column)=>column.notNull()).addColumn('start_time', ctx.types.double, (column)=>column.notNull()).addColumn('end_time', ctx.types.double, (column)=>column.notNull()).addColumn('data', ctx.types.json, (column)=>column.notNull()).addUniqueConstraint(`${ctx.tablePrefix}_spans_trace_span`, [
9
9
  'trace_id',
10
10
  'span_id'
11
11
  ]).execute();
12
- await db.schema.createIndex('hozon_spans_trace_start_seq').on('hozon_spans').columns([
12
+ await db.schema.createIndex(`${ctx.tablePrefix}_spans_trace_start_seq`).on('spans').columns([
13
13
  'trace_id',
14
14
  'start_time',
15
15
  'seq'
16
16
  ]).execute();
17
- await db.schema.createIndex('hozon_spans_end_time').on('hozon_spans').column('end_time').execute();
17
+ await db.schema.createIndex(`${ctx.tablePrefix}_spans_end_time`).on('spans').column('end_time').execute();
18
18
  },
19
19
  async down (db) {
20
- await db.schema.dropTable('hozon_spans').execute();
20
+ await db.schema.dropTable('spans').execute();
21
21
  }
22
22
  }
23
23
  };
package/lib/tables.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { ColumnType, Generated } from 'kysely';
1
+ import type { ColumnType, Generated } from '@hozon/db';
2
2
  import type { StoredSpan } from './types.js';
3
3
  export type TelemetryTables = {
4
- hozon_spans: {
4
+ spans: {
5
5
  seq: Generated<number>;
6
6
  trace_id: string;
7
7
  span_id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hozon/store-telemetry",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Portable span store for Hozon",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,9 +18,8 @@
18
18
  ],
19
19
  "dependencies": {
20
20
  "@hozon/adapter": "^0.1.0",
21
- "@hozon/db": "^0.1.0",
22
- "@sozai/json": "^0.3.0",
23
- "kysely": "^0.29.6"
21
+ "@hozon/db": "^0.2.1",
22
+ "@sozai/json": "^0.3.0"
24
23
  },
25
24
  "devDependencies": {
26
25
  "@hozon/node-sqlite": "^0.1.0",