@adonis-agora/telescope 0.13.0 → 0.15.0

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.
Files changed (91) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/providers/telescope_provider.d.ts.map +1 -1
  3. package/dist/providers/telescope_provider.js +7 -2
  4. package/dist/providers/telescope_provider.js.map +1 -1
  5. package/dist/providers/telescope_ui_provider.d.ts.map +1 -1
  6. package/dist/providers/telescope_ui_provider.js +19 -3
  7. package/dist/providers/telescope_ui_provider.js.map +1 -1
  8. package/dist/providers/telescope_watchers_provider.d.ts +25 -0
  9. package/dist/providers/telescope_watchers_provider.d.ts.map +1 -1
  10. package/dist/providers/telescope_watchers_provider.js +67 -5
  11. package/dist/providers/telescope_watchers_provider.js.map +1 -1
  12. package/dist/src/ai/index.d.ts +1 -1
  13. package/dist/src/ai/index.js +1 -1
  14. package/dist/src/alerts/index.d.ts +1 -1
  15. package/dist/src/alerts/index.js +1 -1
  16. package/dist/src/extension/registry.d.ts +14 -1
  17. package/dist/src/extension/registry.d.ts.map +1 -1
  18. package/dist/src/extension/registry.js +38 -0
  19. package/dist/src/extension/registry.js.map +1 -1
  20. package/dist/src/extension/types.d.ts +22 -0
  21. package/dist/src/extension/types.d.ts.map +1 -1
  22. package/dist/src/extension/types.js.map +1 -1
  23. package/dist/src/index.d.ts +6 -4
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +3 -2
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/mcp/index.d.ts +1 -1
  28. package/dist/src/mcp/index.js +1 -1
  29. package/dist/src/metrics/metrics_service.d.ts +36 -2
  30. package/dist/src/metrics/metrics_service.d.ts.map +1 -1
  31. package/dist/src/metrics/metrics_service.js +61 -6
  32. package/dist/src/metrics/metrics_service.js.map +1 -1
  33. package/dist/src/metrics/screens.d.ts +41 -0
  34. package/dist/src/metrics/screens.d.ts.map +1 -0
  35. package/dist/src/metrics/screens.js +70 -0
  36. package/dist/src/metrics/screens.js.map +1 -0
  37. package/dist/src/metrics/timeseries.d.ts +13 -0
  38. package/dist/src/metrics/timeseries.d.ts.map +1 -1
  39. package/dist/src/metrics/timeseries.js +38 -0
  40. package/dist/src/metrics/timeseries.js.map +1 -1
  41. package/dist/src/profiling/index.d.ts +1 -1
  42. package/dist/src/profiling/index.js +1 -1
  43. package/dist/src/registry.d.ts +30 -0
  44. package/dist/src/registry.d.ts.map +1 -1
  45. package/dist/src/registry.js +21 -0
  46. package/dist/src/registry.js.map +1 -1
  47. package/dist/src/request_watcher.d.ts +39 -0
  48. package/dist/src/request_watcher.d.ts.map +1 -1
  49. package/dist/src/request_watcher.js +45 -0
  50. package/dist/src/request_watcher.js.map +1 -1
  51. package/dist/src/store.d.ts +78 -0
  52. package/dist/src/store.d.ts.map +1 -1
  53. package/dist/src/stores/lucid.d.ts +37 -1
  54. package/dist/src/stores/lucid.d.ts.map +1 -1
  55. package/dist/src/stores/lucid.js +83 -0
  56. package/dist/src/stores/lucid.js.map +1 -1
  57. package/dist/src/stores/memory.d.ts +11 -1
  58. package/dist/src/stores/memory.d.ts.map +1 -1
  59. package/dist/src/stores/memory.js +61 -0
  60. package/dist/src/stores/memory.js.map +1 -1
  61. package/dist/src/telescope_middleware.d.ts +8 -0
  62. package/dist/src/telescope_middleware.d.ts.map +1 -1
  63. package/dist/src/telescope_middleware.js +19 -0
  64. package/dist/src/telescope_middleware.js.map +1 -1
  65. package/dist/src/ui/api.d.ts +16 -1
  66. package/dist/src/ui/api.d.ts.map +1 -1
  67. package/dist/src/ui/api.js +53 -5
  68. package/dist/src/ui/api.js.map +1 -1
  69. package/dist/src/ui/define_config.d.ts +12 -0
  70. package/dist/src/ui/define_config.d.ts.map +1 -1
  71. package/dist/src/ui/define_config.js +1 -0
  72. package/dist/src/ui/define_config.js.map +1 -1
  73. package/dist/src/ui/index.d.ts +1 -1
  74. package/dist/src/ui/index.js +1 -1
  75. package/dist/src/watchers/define_config.d.ts +28 -0
  76. package/dist/src/watchers/define_config.d.ts.map +1 -1
  77. package/dist/src/watchers/define_config.js +10 -0
  78. package/dist/src/watchers/define_config.js.map +1 -1
  79. package/dist/src/watchers/index.d.ts +4 -4
  80. package/dist/src/watchers/index.d.ts.map +1 -1
  81. package/dist/src/watchers/index.js +2 -3
  82. package/dist/src/watchers/index.js.map +1 -1
  83. package/dist/src/watchers/logs_watcher.d.ts +0 -19
  84. package/dist/src/watchers/logs_watcher.d.ts.map +1 -1
  85. package/dist/src/watchers/logs_watcher.js +22 -0
  86. package/dist/src/watchers/logs_watcher.js.map +1 -1
  87. package/dist/src/watchers/redis_watcher.d.ts +78 -1
  88. package/dist/src/watchers/redis_watcher.d.ts.map +1 -1
  89. package/dist/src/watchers/redis_watcher.js +124 -1
  90. package/dist/src/watchers/redis_watcher.js.map +1 -1
  91. package/package.json +1 -1
@@ -11,6 +11,7 @@ import type { TelescopeStore } from '../store.js';
11
11
  *
12
12
  * @remarks Semver 0.x — the shape may change until 1.0.
13
13
  */
14
+ import type { ScheduleRegistration } from '../watchers/schedule_watcher.js';
14
15
  export interface TelescopeExtension {
15
16
  /** Unique id — used in collision errors and for deterministic ordering. */
16
17
  name: string;
@@ -20,7 +21,28 @@ export interface TelescopeExtension {
20
21
  dashboards?(ctx: ExtensionContext): DashboardSpec[];
21
22
  /** Named server-side queries that panels bind to via `{ provider, query }`. */
22
23
  dataProviders?(ctx: ExtensionContext): DataProvider[];
24
+ /**
25
+ * Contribute known scheduled tasks to the Live Schedules screen.
26
+ *
27
+ * That screen lists what `registerSchedule()` was TOLD exists, which means a host
28
+ * that already knows its own schedules — a workflow engine with a `@Scheduled`
29
+ * decorator, say — still had to repeat the list by hand, and the copy drifts from
30
+ * the decorators on the first change. An extension that owns a scheduler can
31
+ * answer here instead, and the list stays derived from the real source.
32
+ *
33
+ * Called once at boot, alongside the other hooks. Contributions are merged with
34
+ * anything registered imperatively; a name registered both ways is registered once.
35
+ */
36
+ schedules?(ctx: ExtensionContext): ScheduleContribution[] | Promise<ScheduleContribution[]>;
23
37
  }
38
+ /**
39
+ * A scheduled task an extension knows about.
40
+ *
41
+ * An ALIAS of {@link ScheduleRegistration}, not a copy of it: a second declaration of
42
+ * the same shape is a second place for `ScheduleKind` to drift, and the drift shows
43
+ * up as a type error in the provider rather than anywhere near the mistake.
44
+ */
45
+ export type ScheduleContribution = ScheduleRegistration;
24
46
  /** The slice of the AdonisJS container an extension needs to resolve host services. */
25
47
  export interface ContainerLike {
26
48
  make<T>(token: unknown): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"AAsMA,yEAAyE;AACzE,MAAM,UAAU,wBAAwB,CAAC,GAAuB;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"AA8NA,yEAAyE;AACzE,MAAM,UAAU,wBAAwB,CAAC,GAAuB;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.13.0";
2
+ export declare const VERSION = "0.15.0";
3
3
  export { configure } from '../configure.js';
4
4
  export type { DiagnoserLike, DiagnosisCoordinatorOptions, DiagnosisSummary, } from './ai/diagnosis_coordinator.js';
5
5
  export { DiagnosisCoordinator, formatDiagnosisMarkdown, } from './ai/diagnosis_coordinator.js';
@@ -19,7 +19,7 @@ export { exceptionFamilyHash } from './exception_family_hash.js';
19
19
  export type { ExceptionEntryContent, RecordExceptionContext, } from './exception_watcher.js';
20
20
  export { buildExceptionInput, recordException, recordExceptionInStore, } from './exception_watcher.js';
21
21
  export { ExtensionRegistry } from './extension/registry.js';
22
- export type { Column, ContainerLike, DashboardSection, DashboardSpec, DataBinding, DataProvider, ExtensionContext, ExtensionEntryType, LinkSpec, Panel, PanelThresholds, TelescopeExtension, } from './extension/types.js';
22
+ export type { Column, ContainerLike, DashboardSection, DashboardSpec, DataBinding, DataProvider, ExtensionContext, ExtensionEntryType, LinkSpec, Panel, PanelThresholds, ScheduleContribution, TelescopeExtension, } from './extension/types.js';
23
23
  export { defineTelescopeExtension } from './extension/types.js';
24
24
  export type { DiagnoseExceptionHook, JsonRpcRequest, McpToolName, McpToolSpec, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, TelescopeMcpServerOptions, } from './mcp/index.js';
25
25
  export { MCP_INTERNAL_ERROR, MCP_METHOD_NOT_FOUND, MCP_TOOL_NAMES, MCP_TOOLS, MCP_UNAUTHORIZED, TelescopeMcpServer, } from './mcp/index.js';
@@ -28,6 +28,8 @@ export { MetricsService } from './metrics/metrics_service.js';
28
28
  export type { PulseCardName, PulseExceptionGroup, PulseHotspot, PulseNPlusOne, PulseOptions, PulseQuery, PulseRequestHealth, PulseServiceOptions, PulseSlowEntry, PulseSummary, PulseThroughput, PulseUserLoad, } from './metrics/pulse.js';
29
29
  export { PULSE_CARDS, PulseService, summarizePulse } from './metrics/pulse.js';
30
30
  export { buildHistogram, emptyHistogram, estimatePercentileFromHistogram, HISTOGRAM_BUCKET_COUNT, histogramBucketIndex, incrementHistogram, LATENCY_BOUNDARIES_MS, mergeHistograms, normalizeHistogram, ROLLUP_BUCKET_MS, } from './metrics/rollup.js';
31
+ export type { ScreenStats, SummarizeScreensOptions } from './metrics/screens.js';
32
+ export { summarizeScreens } from './metrics/screens.js';
31
33
  export type { CacheStats, ExceptionGroupStats, FamilyLatency, LatencyPercentilesOverride, LatencyStats, StatsResult, StatusBreakdown, SummarizeStatsInput, } from './metrics/stats.js';
32
34
  export { estimateLatencyPercentiles, percentile, summarizeStats, } from './metrics/stats.js';
33
35
  export type { TimeseriesBucket, TimeseriesReport } from './metrics/timeseries.js';
@@ -47,8 +49,8 @@ export { compileRedactSpec, DEFAULT_MASK, DEFAULT_REDACT_KEYS, redact, redactBou
47
49
  export { RedactingTelescopeStore } from './redaction/redacting_store.js';
48
50
  export type { TelescopeRuntime } from './registry.js';
49
51
  export { getTelescopeRuntime, resetTelescopeRuntime, setTelescopeDiagnosisCoordinator, setTelescopeEntryEvents, setTelescopeExtensionRegistry, setTelescopePaused, setTelescopeRuntime, } from './registry.js';
50
- export type { CaptureRequestInfo, HttpContextLike, RecordRequestOptions, RequestCaptureOptions, RequestEnrichment, RequestEnrichmentResult, RequestEntryContent, ResolvedRequestCapture, } from './request_watcher.js';
51
- export { MAX_ENRICHMENT_TAG_LENGTH, MAX_ENRICHMENT_TAGS, recordRequest, resolveRequestCapture, } from './request_watcher.js';
52
+ export type { CaptureRequestInfo, HttpContextLike, RecordRequestOptions, RequestCaptureOptions, RequestEnrichment, RequestEnrichmentResult, RequestEntryContent, RequestKind, ResolvedRequestCapture, } from './request_watcher.js';
53
+ export { classifyRequest, MAX_ENRICHMENT_TAG_LENGTH, MAX_ENRICHMENT_TAGS, recordRequest, resolveRequestCapture, } from './request_watcher.js';
52
54
  export type { SamplingConfig, SamplingRule } from './sampling/sampling.js';
53
55
  export { isErrorEntry, passesSampling, resolveSampling, samplingRates, } from './sampling/sampling.js';
54
56
  export { SamplingTelescopeStore } from './sampling/sampling_store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.13.0';
2
+ export const VERSION = '0.15.0';
3
3
  // Re-export the configure hook from the package root so `node ace configure` finds it
4
4
  export { configure } from '../configure.js';
5
5
  // — AI diagnosis coordinator (wires the MCP tool + the alerter; SDK-free) —
@@ -26,6 +26,7 @@ export { MCP_INTERNAL_ERROR, MCP_METHOD_NOT_FOUND, MCP_TOOL_NAMES, MCP_TOOLS, MC
26
26
  export { MetricsService } from './metrics/metrics_service.js';
27
27
  export { PULSE_CARDS, PulseService, summarizePulse } from './metrics/pulse.js';
28
28
  export { buildHistogram, emptyHistogram, estimatePercentileFromHistogram, HISTOGRAM_BUCKET_COUNT, histogramBucketIndex, incrementHistogram, LATENCY_BOUNDARIES_MS, mergeHistograms, normalizeHistogram, ROLLUP_BUCKET_MS, } from './metrics/rollup.js';
29
+ export { summarizeScreens } from './metrics/screens.js';
29
30
  export { estimateLatencyPercentiles, percentile, summarizeStats, } from './metrics/stats.js';
30
31
  export { bucketTimeseries } from './metrics/timeseries.js';
31
32
  export { summarizeTraces } from './metrics/traces.js';
@@ -40,7 +41,7 @@ export { compileRedactSpec, DEFAULT_MASK, DEFAULT_REDACT_KEYS, redact, redactBou
40
41
  export { RedactingTelescopeStore } from './redaction/redacting_store.js';
41
42
  // — runtime (advanced) —
42
43
  export { getTelescopeRuntime, resetTelescopeRuntime, setTelescopeDiagnosisCoordinator, setTelescopeEntryEvents, setTelescopeExtensionRegistry, setTelescopePaused, setTelescopeRuntime, } from './registry.js';
43
- export { MAX_ENRICHMENT_TAG_LENGTH, MAX_ENRICHMENT_TAGS, recordRequest, resolveRequestCapture, } from './request_watcher.js';
44
+ export { classifyRequest, MAX_ENRICHMENT_TAG_LENGTH, MAX_ENRICHMENT_TAGS, recordRequest, resolveRequestCapture, } from './request_watcher.js';
44
45
  // — sampling (tail-sampling on the write path) —
45
46
  export { isErrorEntry, passesSampling, resolveSampling, samplingRates, } from './sampling/sampling.js';
46
47
  export { SamplingTelescopeStore } from './sampling/sampling_store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.13.0";
2
+ export declare const VERSION = "0.15.0";
3
3
  export type { McpToolName, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, } from './define_config.js';
4
4
  export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
5
5
  export type { DiagnoseExceptionHook, JsonRpcRequest, McpToolSpec, TelescopeMcpServerOptions, } from './server.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.13.0';
2
+ export const VERSION = '0.15.0';
3
3
  // — config —
4
4
  export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
5
5
  // — server (plain, testable JSON-RPC surface) —
@@ -1,5 +1,7 @@
1
1
  import { type NPlusOneInsight, type NPlusOnePattern } from '../query/n_plus_one.js';
2
+ import type { RequestKind } from '../request_watcher.js';
2
3
  import type { TelescopeStore } from '../store.js';
4
+ import { type ScreenStats } from './screens.js';
3
5
  import { type StatsResult } from './stats.js';
4
6
  import { type TimeseriesReport } from './timeseries.js';
5
7
  import { type TraceSummary } from './traces.js';
@@ -9,6 +11,19 @@ export interface StatsQuery {
9
11
  type: string;
10
12
  windowMs: number;
11
13
  buckets?: number;
14
+ /**
15
+ * How many exception groups to return. The default (8) is a dashboard-card
16
+ * default: it is right for the Overview tile and wrong for the Exceptions screen,
17
+ * where capping at 8 means the 9th most common exception is not merely
18
+ * out-of-sight, it is unreachable. That screen asks for more.
19
+ */
20
+ topExceptions?: number;
21
+ }
22
+ export interface ScreensQuery {
23
+ windowMs: number;
24
+ /** Only page visits, only API calls, or only assets. Omit for all. */
25
+ kind?: RequestKind;
26
+ limit?: number;
12
27
  }
13
28
  export interface TimeseriesQuery {
14
29
  windowMs: number;
@@ -44,8 +59,27 @@ export declare class MetricsService {
44
59
  getStats(query: StatsQuery): Promise<StatsResult>;
45
60
  /** Throughput time-series over a trailing window (total + per-type per bucket). */
46
61
  getTimeseries(query: TimeseriesQuery): Promise<TimeseriesReport>;
47
- /** Recent traces, newest-last-seen first. */
48
- getTraces(limit?: number): Promise<TraceSummary[]>;
62
+ /**
63
+ * Recent traces, newest-last-seen first, one page at a time.
64
+ *
65
+ * The store picks the page of trace ids (an indexed `GROUP BY` when it can — see
66
+ * {@link TelescopeStore.listTraceIds}) and only THEN do we fetch the entries of
67
+ * those traces. That ordering is the whole point: grouping first meant reading up
68
+ * to `scanCap` entries to answer a request for 50 traces, and on a busy table the
69
+ * chattiest watcher filled that budget before the interesting traces were reached
70
+ * — the screen was both slow AND incomplete.
71
+ *
72
+ * A store without the capability falls back to scan-and-group, which is what this
73
+ * method always used to do.
74
+ */
75
+ getTraces(limit?: number, offset?: number): Promise<TraceSummary[]>;
76
+ /**
77
+ * Per-route traffic over a window — what the "screens" view is built on.
78
+ *
79
+ * Windowed and type-filtered at the store, so this reads `request` entries only
80
+ * rather than the whole table.
81
+ */
82
+ getScreens(query: ScreensQuery): Promise<ScreenStats[]>;
49
83
  /** The span waterfall for a single trace, or `null` when the trace is empty. */
50
84
  getWaterfall(traceId: string): Promise<Waterfall | null>;
51
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"metrics_service.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics_service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAA8B,KAAK,WAAW,EAAkB,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAShE,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C,YACmB,KAAK,EAAE,cAAc,EACtC,OAAO,GAAE,qBAA0B,EAMpC;IAED,iDAAiD;IAC3C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA6BtD;IAED,mFAAmF;IAC7E,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYrE;IAED,6CAA6C;IACvC,SAAS,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGnD;IAED,gFAAgF;IAC1E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG7D;IAED;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAMjF;IAED,4DAA4D;IACtD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAIrF;IAED,OAAO,CAAC,YAAY;IAIpB,0EAA0E;YAC5D,OAAO;IAKrB;;;;;;;;;;;OAWG;YACW,eAAe;CAc9B"}
1
+ {"version":3,"file":"metrics_service.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics_service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,cAAc,CAAC;AAClE,OAAO,EAA8B,KAAK,WAAW,EAAkB,MAAM,YAAY,CAAC;AAC1F,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAShE,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C,YACmB,KAAK,EAAE,cAAc,EACtC,OAAO,GAAE,qBAA0B,EAMpC;IAED,iDAAiD;IAC3C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA8BtD;IAED,mFAAmF;IAC7E,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0BrE;IAED;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,KAAK,SAAK,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmB/D;IAED;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAO5D;IAED,gFAAgF;IAC1E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG7D;IAED;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAMjF;IAED,4DAA4D;IACtD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAIrF;IAED,OAAO,CAAC,YAAY;IAIpB,0EAA0E;YAC5D,OAAO;IAKrB;;;;;;;;;;;OAWG;YACW,eAAe;CAc9B"}
@@ -1,7 +1,8 @@
1
- import { EXCEPTION_ENTRY_TYPES, isExceptionType } from '../entry.js';
1
+ import { EntryType, EXCEPTION_ENTRY_TYPES, isExceptionType } from '../entry.js';
2
2
  import { detectNPlusOne, detectNPlusOnePatterns, } from '../query/n_plus_one.js';
3
+ import { summarizeScreens } from './screens.js';
3
4
  import { estimateLatencyPercentiles, summarizeStats } from './stats.js';
4
- import { bucketTimeseries } from './timeseries.js';
5
+ import { bucketTimeseries, bucketTimeseriesFromCounts, } from './timeseries.js';
5
6
  import { summarizeTraces } from './traces.js';
6
7
  import { buildWaterfall } from './waterfall.js';
7
8
  const DEFAULT_BUCKETS = 60;
@@ -51,6 +52,7 @@ export class MetricsService {
51
52
  return summarizeStats({
52
53
  entries,
53
54
  type: query.type,
55
+ ...(query.topExceptions !== undefined ? { topExceptions: query.topExceptions } : {}),
54
56
  windowStart,
55
57
  windowEnd,
56
58
  windowMs: query.windowMs,
@@ -68,16 +70,69 @@ export class MetricsService {
68
70
  const buckets = this.clampBuckets(query.buckets);
69
71
  const windowEnd = new Date();
70
72
  const windowStart = new Date(windowEnd.getTime() - query.windowMs);
73
+ // Fast path: the chart needs only `createdAt` and `type`, and a store that can
74
+ // count per bucket gives us exactly that — instead of `select('*')` shipping every
75
+ // entry's `content` blob out of the database so we can throw it away.
76
+ if (typeof this.store.countByBucket === 'function') {
77
+ const spanMs = Math.max(1, windowEnd.getTime() - windowStart.getTime());
78
+ const rows = await this.store.countByBucket({
79
+ after: windowStart,
80
+ before: windowEnd,
81
+ bucketMs: Math.max(1, Math.floor(spanMs / Math.max(1, buckets))),
82
+ ...(query.type !== undefined ? { type: query.type } : {}),
83
+ });
84
+ return bucketTimeseriesFromCounts(rows, windowStart, windowEnd, buckets);
85
+ }
71
86
  const { entries } = await this.collect({
72
87
  after: windowStart,
73
88
  ...(query.type !== undefined ? { type: query.type } : {}),
74
89
  });
75
90
  return bucketTimeseries(entries, windowStart, windowEnd, buckets);
76
91
  }
77
- /** Recent traces, newest-last-seen first. */
78
- async getTraces(limit = 50) {
79
- const { entries } = await this.collect({});
80
- return summarizeTraces(entries, { limit });
92
+ /**
93
+ * Recent traces, newest-last-seen first, one page at a time.
94
+ *
95
+ * The store picks the page of trace ids (an indexed `GROUP BY` when it can — see
96
+ * {@link TelescopeStore.listTraceIds}) and only THEN do we fetch the entries of
97
+ * those traces. That ordering is the whole point: grouping first meant reading up
98
+ * to `scanCap` entries to answer a request for 50 traces, and on a busy table the
99
+ * chattiest watcher filled that budget before the interesting traces were reached
100
+ * — the screen was both slow AND incomplete.
101
+ *
102
+ * A store without the capability falls back to scan-and-group, which is what this
103
+ * method always used to do.
104
+ */
105
+ async getTraces(limit = 50, offset = 0) {
106
+ const page = Math.max(0, Math.floor(limit));
107
+ const skip = Math.max(0, Math.floor(offset));
108
+ if (typeof this.store.listTraceIds !== 'function') {
109
+ const { entries } = await this.collect({});
110
+ return summarizeTraces(entries, { limit: page + skip }).slice(skip);
111
+ }
112
+ const rows = await this.store.listTraceIds({ limit: page, offset: skip });
113
+ if (rows.length === 0)
114
+ return [];
115
+ const entries = await this.store.list({
116
+ traceIds: rows.map((row) => row.traceId),
117
+ limit: this.scanCap,
118
+ });
119
+ // summarizeTraces re-derives the ordering from the entries it is given, so the
120
+ // page order survives without the store and the summarizer having to agree on it.
121
+ return summarizeTraces(entries, { limit: page });
122
+ }
123
+ /**
124
+ * Per-route traffic over a window — what the "screens" view is built on.
125
+ *
126
+ * Windowed and type-filtered at the store, so this reads `request` entries only
127
+ * rather than the whole table.
128
+ */
129
+ async getScreens(query) {
130
+ const windowStart = new Date(Date.now() - query.windowMs);
131
+ const { entries } = await this.collect({ type: EntryType.Request, after: windowStart });
132
+ return summarizeScreens(entries, {
133
+ ...(query.kind !== undefined ? { kind: query.kind } : {}),
134
+ ...(query.limit !== undefined ? { limit: query.limit } : {}),
135
+ });
81
136
  }
82
137
  /** The span waterfall for a single trace, or `null` when the trace is empty. */
83
138
  async getWaterfall(traceId) {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics_service.js","sourceRoot":"","sources":["../../../src/metrics/metrics_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics_service.js","sourceRoot":"","sources":["../../../src/metrics/metrics_service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type Entry } from '../entry.js';
2
+ import type { RequestKind } from '../request_watcher.js';
3
+ /** One route's traffic over the window. */
4
+ export interface ScreenStats {
5
+ /** The request path, e.g. `/pesquisador/escrita`. */
6
+ url: string;
7
+ /** How the route was reached — `page`, `api` or `asset`. */
8
+ kind: RequestKind;
9
+ /** How many requests hit it. */
10
+ count: number;
11
+ /** Distinct authenticated users who hit it (`0` when nobody was identified). */
12
+ users: number;
13
+ /** Mean duration in ms across the window, rounded. */
14
+ avgMs: number;
15
+ /** Slowest single request in the window, rounded. */
16
+ maxMs: number;
17
+ /** How many responded 4xx/5xx. */
18
+ errors: number;
19
+ /** Most recent hit, ISO. */
20
+ lastAt: string;
21
+ }
22
+ export interface SummarizeScreensOptions {
23
+ /** Only this kind. Omit for all. */
24
+ kind?: RequestKind;
25
+ limit?: number;
26
+ }
27
+ /**
28
+ * Group `request` entries by url into per-route traffic.
29
+ *
30
+ * Grouping is by (url, kind) and not url alone: the same path can legitimately be
31
+ * both — a page visit to `/relatorios` and the Inertia partial reload of it — and
32
+ * merging them would report one number that answers neither "how many people opened
33
+ * this screen" nor "how hard is this endpoint being hit".
34
+ *
35
+ * Entries recorded before `kind` existed are treated as `api`, which is what the
36
+ * majority of unclassified traffic is; they age out with retention.
37
+ *
38
+ * Pure.
39
+ */
40
+ export declare function summarizeScreens(entries: Entry[], options?: SummarizeScreensOptions): ScreenStats[];
41
+ //# sourceMappingURL=screens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/metrics/screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE9E,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,IAAI,EAAE,WAAW,CAAC;IAClB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,oCAAoC;IACpC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,EAAE,EAChB,OAAO,GAAE,uBAA4B,GACpC,WAAW,EAAE,CAmDf"}
@@ -0,0 +1,70 @@
1
+ import { EntryType } from '../entry.js';
2
+ const DEFAULT_LIMIT = 50;
3
+ /**
4
+ * Group `request` entries by url into per-route traffic.
5
+ *
6
+ * Grouping is by (url, kind) and not url alone: the same path can legitimately be
7
+ * both — a page visit to `/relatorios` and the Inertia partial reload of it — and
8
+ * merging them would report one number that answers neither "how many people opened
9
+ * this screen" nor "how hard is this endpoint being hit".
10
+ *
11
+ * Entries recorded before `kind` existed are treated as `api`, which is what the
12
+ * majority of unclassified traffic is; they age out with retention.
13
+ *
14
+ * Pure.
15
+ */
16
+ export function summarizeScreens(entries, options = {}) {
17
+ const limit = Math.max(0, Math.floor(options.limit ?? DEFAULT_LIMIT));
18
+ const byRoute = new Map();
19
+ for (const entry of entries) {
20
+ if (entry.type !== EntryType.Request)
21
+ continue;
22
+ const content = entry.content;
23
+ if (content === undefined || typeof content.url !== 'string')
24
+ continue;
25
+ const kind = content.kind ?? 'api';
26
+ if (options.kind !== undefined && kind !== options.kind)
27
+ continue;
28
+ const key = `${kind} ${content.url}`;
29
+ const at = entry.createdAt.getTime();
30
+ let acc = byRoute.get(key);
31
+ if (acc === undefined) {
32
+ acc = {
33
+ url: content.url,
34
+ kind,
35
+ count: 0,
36
+ users: new Set(),
37
+ totalMs: 0,
38
+ maxMs: 0,
39
+ errors: 0,
40
+ lastAt: at,
41
+ };
42
+ byRoute.set(key, acc);
43
+ }
44
+ acc.count += 1;
45
+ if (content.user?.id)
46
+ acc.users.add(content.user.id);
47
+ const durationMs = typeof content.durationMs === 'number' ? content.durationMs : 0;
48
+ acc.totalMs += durationMs;
49
+ if (durationMs > acc.maxMs)
50
+ acc.maxMs = durationMs;
51
+ if (typeof content.status === 'number' && content.status >= 400)
52
+ acc.errors += 1;
53
+ if (at > acc.lastAt)
54
+ acc.lastAt = at;
55
+ }
56
+ return [...byRoute.values()]
57
+ .sort((a, b) => b.count - a.count || b.lastAt - a.lastAt)
58
+ .slice(0, limit)
59
+ .map((acc) => ({
60
+ url: acc.url,
61
+ kind: acc.kind,
62
+ count: acc.count,
63
+ users: acc.users.size,
64
+ avgMs: Math.round(acc.totalMs / acc.count),
65
+ maxMs: Math.round(acc.maxMs),
66
+ errors: acc.errors,
67
+ lastAt: new Date(acc.lastAt).toISOString(),
68
+ }));
69
+ }
70
+ //# sourceMappingURL=screens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../src/metrics/screens.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Entry } from '../entry.js';
2
+ import type { BucketCountRow } from '../store.js';
2
3
  /** A single time-bucket of a {@link TimeseriesReport}. */
3
4
  export interface TimeseriesBucket {
4
5
  /** ISO timestamp of the bucket's start. */
@@ -19,4 +20,16 @@ export interface TimeseriesReport {
19
20
  * Out-of-range entries are clamped into the edge buckets.
20
21
  */
21
22
  export declare function bucketTimeseries(entries: Entry[], windowStart: Date, windowEnd: Date, bucketCount: number): TimeseriesReport;
23
+ /**
24
+ * The same report, built from per-bucket COUNTS instead of from entries.
25
+ *
26
+ * The store can produce those counts without shipping the entries themselves (see
27
+ * {@link TelescopeStore.countByBucket}); this is the assembler for that path. It is
28
+ * kept beside `bucketTimeseries` so the two stay in step — they must agree on bucket
29
+ * width, on the clamping of out-of-range rows into the edge buckets, and on the
30
+ * shape of the result, or the chart would change depending on which store you use.
31
+ *
32
+ * Pure.
33
+ */
34
+ export declare function bucketTimeseriesFromCounts(rows: readonly BucketCountRow[], windowStart: Date, windowEnd: Date, bucketCount: number): TimeseriesReport;
22
35
  //# sourceMappingURL=timeseries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeseries.d.ts","sourceRoot":"","sources":["../../../src/metrics/timeseries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,EAAE,EAChB,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA4BlB"}
1
+ {"version":3,"file":"timeseries.d.ts","sourceRoot":"","sources":["../../../src/metrics/timeseries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,EAAE,EAChB,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA4BlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,cAAc,EAAE,EAC/B,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA4BlB"}
@@ -31,4 +31,42 @@ export function bucketTimeseries(entries, windowStart, windowEnd, bucketCount) {
31
31
  buckets,
32
32
  };
33
33
  }
34
+ /**
35
+ * The same report, built from per-bucket COUNTS instead of from entries.
36
+ *
37
+ * The store can produce those counts without shipping the entries themselves (see
38
+ * {@link TelescopeStore.countByBucket}); this is the assembler for that path. It is
39
+ * kept beside `bucketTimeseries` so the two stay in step — they must agree on bucket
40
+ * width, on the clamping of out-of-range rows into the edge buckets, and on the
41
+ * shape of the result, or the chart would change depending on which store you use.
42
+ *
43
+ * Pure.
44
+ */
45
+ export function bucketTimeseriesFromCounts(rows, windowStart, windowEnd, bucketCount) {
46
+ const count = Math.max(1, Math.floor(bucketCount));
47
+ const startMs = windowStart.getTime();
48
+ const spanMs = Math.max(1, windowEnd.getTime() - startMs);
49
+ const bucketMs = Math.max(1, Math.floor(spanMs / count));
50
+ const buckets = Array.from({ length: count }, (_, index) => ({
51
+ t: new Date(startMs + index * bucketMs).toISOString(),
52
+ total: 0,
53
+ byType: {},
54
+ }));
55
+ for (const row of rows) {
56
+ // Same clamp as the entry path: a row landing past the last bucket (the window
57
+ // end is inclusive, so `before` itself lands one past) belongs to the edge.
58
+ const index = Math.min(count - 1, Math.max(0, row.index));
59
+ const bucket = buckets[index];
60
+ if (!bucket)
61
+ continue;
62
+ bucket.total += row.count;
63
+ bucket.byType[row.type] = (bucket.byType[row.type] ?? 0) + row.count;
64
+ }
65
+ return {
66
+ windowStart: windowStart.toISOString(),
67
+ windowEnd: windowEnd.toISOString(),
68
+ bucketMs,
69
+ buckets,
70
+ };
71
+ }
34
72
  //# sourceMappingURL=timeseries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeseries.js","sourceRoot":"","sources":["../../../src/metrics/timeseries.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,WAAiB,EACjB,SAAe,EACf,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"timeseries.js","sourceRoot":"","sources":["../../../src/metrics/timeseries.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,WAAiB,EACjB,SAAe,EACf,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA+B,EAC/B,WAAiB,EACjB,SAAe,EACf,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,+EAA+E;QAC/E,4EAA4E;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IACvE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.13.0";
2
+ export declare const VERSION = "0.15.0";
3
3
  export { aggregateCpuProfile } from './aggregate-profile.js';
4
4
  export type { CpuProfilerOptions, CpuProfilerResult, InspectorSessionLike, SessionFactory, } from './cpu-profiler.js';
5
5
  export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.13.0';
2
+ export const VERSION = '0.15.0';
3
3
  export { aggregateCpuProfile } from './aggregate-profile.js';
4
4
  export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
5
5
  export { defineConfig, resolveConfig } from './define_config.js';