@dxos/tracing 0.5.9-main.a2de4fa → 0.5.9-main.a75fa71
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.
|
@@ -105,12 +105,16 @@ var DiagnosticsManager = class {
|
|
|
105
105
|
// packages/common/tracing/src/diagnostics-channel.ts
|
|
106
106
|
import { Trigger, sleep } from "@dxos/async";
|
|
107
107
|
import { Context } from "@dxos/context";
|
|
108
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/diagnostics-channel.ts";
|
|
108
109
|
var DEFAULT_CHANNEL_NAME = "dxos-diagnostics";
|
|
109
110
|
var DISCOVER_TIME = 500;
|
|
110
111
|
var DiagnosticsChannel = class {
|
|
111
112
|
constructor(_channelName = DEFAULT_CHANNEL_NAME) {
|
|
112
113
|
this._channelName = _channelName;
|
|
113
|
-
this._ctx = new Context(
|
|
114
|
+
this._ctx = new Context(void 0, {
|
|
115
|
+
F: __dxlog_file2,
|
|
116
|
+
L: 41
|
|
117
|
+
});
|
|
114
118
|
this._serveChannel = new BroadcastChannel(_channelName);
|
|
115
119
|
this._clientChannel = new BroadcastChannel(_channelName);
|
|
116
120
|
}
|
|
@@ -353,7 +357,7 @@ var TraceSender = class {
|
|
|
353
357
|
};
|
|
354
358
|
|
|
355
359
|
// packages/common/tracing/src/trace-processor.ts
|
|
356
|
-
var
|
|
360
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
|
|
357
361
|
var ResourceEntry = class {
|
|
358
362
|
constructor(data, instance, annotation) {
|
|
359
363
|
this.data = data;
|
|
@@ -416,7 +420,7 @@ var TraceProcessor = class {
|
|
|
416
420
|
}
|
|
417
421
|
};
|
|
418
422
|
log.addProcessor(this._logProcessor.bind(this), void 0, {
|
|
419
|
-
F:
|
|
423
|
+
F: __dxlog_file3,
|
|
420
424
|
L: 100,
|
|
421
425
|
S: this,
|
|
422
426
|
C: (f, a) => f(...a)
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api.ts", "../../../src/symbols.ts", "../../../src/trace-processor.ts", "../../../src/diagnostic.ts", "../../../src/util.ts", "../../../src/diagnostics-channel.ts", "../../../src/remote/metrics.ts", "../../../src/remote/tracing.ts", "../../../src/trace-sender.ts", "../../../src/metrics/base.ts", "../../../src/metrics/unary-counter.ts", "../../../src/metrics/time-series-counter.ts", "../../../src/metrics/time-usage-counter.ts", "../../../src/metrics/map-counter.ts", "../../../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { getTracingContext } from './symbols';\nimport { TRACE_PROCESSOR } from './trace-processor';\n\n/**\n * Annotates a class as a tracked resource.\n */\nconst resource =\n (options?: { annotation?: symbol }) =>\n <T extends { new (...args: any[]): {} }>(constructor: T) => {\n // Wrapping class declaration into an IIFE so it doesn't capture the `klass` class name.\n const klass = (() =>\n class extends constructor {\n constructor(...rest: any[]) {\n super(...rest);\n TRACE_PROCESSOR.createTraceResource({ constructor, annotation: options?.annotation, instance: this });\n }\n })();\n Object.defineProperty(klass, 'name', { value: constructor.name });\n return klass;\n };\n\nexport type InfoOptions = {\n /**\n * Value is of enum type and should be converted to string.\n *\n * Example:\n *\n * ```ts\n * @trace.info({ enum: SpaceState })\n * get state(): SpaceState { ... }\n * ```\n */\n enum?: Record<string, any>;\n\n /**\n * Max depth of the object to be included in the resource info section.\n *\n * null means no limit (a limit of 8 nested objects is still imposed).\n *\n * Default: 0 - objects will be stringified with toString.\n */\n depth?: number | null;\n};\n\n/**\n * Marks a property or a method to be included in the resource info section.\n */\nconst info =\n (opts: InfoOptions = {}) =>\n (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n getTracingContext(target).infoProperties[propertyKey] = { options: opts };\n };\n\nconst mark = (name: string) => {\n performance.mark(name);\n};\n\nexport type SpanOptions = {\n showInBrowserTimeline?: boolean;\n op?: string;\n attributes?: Record<string, any>;\n};\n\nconst span =\n ({ showInBrowserTimeline = false, op, attributes }: SpanOptions = {}) =>\n (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...args: any) => any>) => {\n const method = descriptor.value!;\n\n descriptor.value = async function (this: any, ...args: any) {\n const parentCtx = args[0] instanceof Context ? args[0] : null;\n const span = TRACE_PROCESSOR.traceSpan({\n parentCtx,\n methodName: propertyKey,\n instance: this,\n showInBrowserTimeline,\n op,\n attributes,\n });\n\n const callArgs = span.ctx ? [span.ctx, ...args.slice(1)] : args;\n try {\n return await method.apply(this, callArgs);\n } catch (err) {\n span.markError(err);\n throw err;\n } finally {\n span.markSuccess();\n }\n };\n };\n\n/**\n * Attaches metrics counter to the resource.\n */\nconst metricsCounter = () => (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n getTracingContext(target).metricsProperties[propertyKey] = {};\n};\n\nexport type AddLinkOptions = {};\n\nconst addLink = (parent: any, child: any, opts: AddLinkOptions = {}) => {\n TRACE_PROCESSOR.addLink(parent, child, opts);\n};\n\nexport type TraceDiagnosticParams<T> = {\n /**\n * Unique ID.\n */\n id: string;\n\n /**\n * Human-readable name.\n * @defaults Defaults to `id`\n */\n name?: string;\n\n /**\n * Function that will be called to fetch the diagnostic data.\n */\n fetch: () => MaybePromise<T>;\n};\n\nexport interface TraceDiagnostic {\n id: string;\n unregister(): void;\n}\n\n/**\n * Register a diagnostic that could be queried.\n */\nconst diagnostic = <T>(params: TraceDiagnosticParams<T>): TraceDiagnostic => {\n return TRACE_PROCESSOR.diagnostics.registerDiagnostic(params);\n};\n\nexport const trace = {\n addLink,\n diagnostic,\n info,\n mark,\n metricsCounter,\n resource,\n span,\n metrics: TRACE_PROCESSOR.remoteMetrics,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type InfoOptions } from './api';\n\nexport const symbolTracingContext = Symbol('dxos.tracing.context');\n\nexport type TracingContext = {\n infoProperties: Record<\n string,\n {\n options: InfoOptions;\n }\n >;\n metricsProperties: Record<string, {}>;\n};\n\nexport const getTracingContext = (target: any): TracingContext => {\n return ((target[symbolTracingContext] as TracingContext | undefined) ??= {\n infoProperties: {},\n metricsProperties: {},\n });\n};\n\nexport const TRACE_SPAN_ATTRIBUTE = 'dxos.trace-span';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { unrefTimeout } from '@dxos/async';\nimport { type Context } from '@dxos/context';\nimport { LogLevel, type LogProcessor, getContextFromEntry, log } from '@dxos/log';\nimport { type LogEntry } from '@dxos/protocols/proto/dxos/client/services';\nimport { type Error as SerializedError } from '@dxos/protocols/proto/dxos/error';\nimport { type Metric, type Resource, type Span } from '@dxos/protocols/proto/dxos/tracing';\nimport { getPrototypeSpecificInstanceId } from '@dxos/util';\n\nimport type { AddLinkOptions } from './api';\nimport { DiagnosticsManager } from './diagnostic';\nimport { DiagnosticsChannel } from './diagnostics-channel';\nimport { type BaseCounter } from './metrics';\nimport { RemoteMetrics, RemoteTracing } from './remote';\nimport { TRACE_SPAN_ATTRIBUTE, getTracingContext } from './symbols';\nimport { TraceSender } from './trace-sender';\n\nexport type Diagnostics = {\n resources: Record<string, Resource>;\n spans: Span[];\n logs: LogEntry[];\n};\n\nexport type TraceResourceConstructorParams = {\n constructor: { new (...args: any[]): {} };\n instance: any;\n annotation?: symbol;\n};\n\nexport type TraceSpanParams = {\n instance: any;\n // TODO(wittjosiah): Rename to `name`.\n methodName: string;\n parentCtx: Context | null;\n showInBrowserTimeline: boolean;\n op?: string;\n attributes?: Record<string, any>;\n};\n\nexport class ResourceEntry {\n /**\n * Sometimes bundlers mangle class names: WebFile -> WebFile2.\n *\n * We use a heuristic to remove the suffix.\n */\n public readonly sanitizedClassName: string;\n\n constructor(\n public readonly data: Resource,\n public readonly instance: WeakRef<any>,\n public readonly annotation?: symbol,\n ) {\n this.sanitizedClassName = sanitizeClassName(data.className);\n }\n\n getMetric(name: string): Metric | undefined {\n return this.data.metrics?.find((metric) => metric.name === name);\n }\n}\n\nexport type TraceSubscription = {\n flush: () => void;\n\n dirtyResources: Set<number>;\n dirtySpans: Set<number>;\n newLogs: LogEntry[];\n};\n\nconst MAX_RESOURCE_RECORDS = 2_000;\nconst MAX_SPAN_RECORDS = 1_000;\nconst MAX_LOG_RECORDS = 1_000;\n\nconst REFRESH_INTERVAL = 1_000;\n\nconst MAX_INFO_OBJECT_DEPTH = 8;\n\nexport class TraceProcessor {\n public readonly diagnostics = new DiagnosticsManager();\n public readonly diagnosticsChannel = new DiagnosticsChannel();\n public readonly remoteMetrics = new RemoteMetrics();\n public readonly remoteTracing = new RemoteTracing();\n\n readonly subscriptions: Set<TraceSubscription> = new Set();\n\n readonly resources = new Map<number, ResourceEntry>();\n readonly resourceInstanceIndex = new WeakMap<any, ResourceEntry>();\n readonly resourceIdList: number[] = [];\n\n readonly spans = new Map<number, Span>();\n readonly spanIdList: number[] = [];\n\n readonly logs: LogEntry[] = [];\n\n private _instanceTag: string | null = null;\n\n constructor() {\n log.addProcessor(this._logProcessor.bind(this));\n\n const refreshInterval = setInterval(this.refresh.bind(this), REFRESH_INTERVAL);\n unrefTimeout(refreshInterval);\n\n this.diagnosticsChannel.serve(this.diagnostics);\n this.diagnosticsChannel.unref();\n }\n\n setInstanceTag(tag: string) {\n this._instanceTag = tag;\n this.diagnostics.setInstanceTag(tag);\n }\n\n /**\n * @internal\n */\n // TODO(burdon): Comment.\n createTraceResource(params: TraceResourceConstructorParams) {\n const id = this.resources.size;\n\n // Init metrics counters.\n const tracingContext = getTracingContext(Object.getPrototypeOf(params.instance));\n for (const key of Object.keys(tracingContext.metricsProperties)) {\n (params.instance[key] as BaseCounter)._assign(params.instance, key);\n }\n\n const entry = new ResourceEntry(\n {\n id,\n className: params.constructor.name,\n instanceId: getPrototypeSpecificInstanceId(params.instance),\n info: this.getResourceInfo(params.instance),\n links: [],\n metrics: this.getResourceMetrics(params.instance),\n },\n new WeakRef(params.instance),\n params.annotation,\n );\n\n this.resources.set(id, entry);\n this.resourceInstanceIndex.set(params.instance, entry);\n this.resourceIdList.push(id);\n if (this.resourceIdList.length > MAX_RESOURCE_RECORDS) {\n this._clearResources();\n }\n\n this._markResourceDirty(id);\n }\n\n createTraceSender() {\n return new TraceSender(this);\n }\n\n traceSpan(params: TraceSpanParams): TracingSpan {\n const span = new TracingSpan(this, params);\n this._flushSpan(span);\n return span;\n }\n\n // TODO(burdon): Not implemented.\n addLink(parent: any, child: any, opts: AddLinkOptions) {}\n\n //\n // Getters\n //\n\n // TODO(burdon): Define type.\n // TODO(burdon): Reconcile with system service.\n getDiagnostics(): Diagnostics {\n this.refresh();\n\n return {\n resources: Object.fromEntries(\n Array.from(this.resources.entries()).map(([id, entry]) => [\n `${entry.sanitizedClassName}#${entry.data.instanceId}`,\n entry.data,\n ]),\n ),\n spans: Array.from(this.spans.values()),\n logs: this.logs.filter((log) => log.level >= LogLevel.INFO),\n };\n }\n\n getResourceInfo(instance: any): Record<string, any> {\n const res: Record<string, any> = {};\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n for (const [key, { options }] of Object.entries(tracingContext.infoProperties)) {\n try {\n const value = typeof instance[key] === 'function' ? instance[key]() : instance[key];\n if (options.enum) {\n res[key] = options.enum[value];\n } else {\n res[key] = sanitizeValue(\n value,\n options.depth === undefined ? 1 : options.depth ?? MAX_INFO_OBJECT_DEPTH,\n this,\n );\n }\n } catch (err: any) {\n res[key] = err.message;\n }\n }\n\n return res;\n }\n\n getResourceMetrics(instance: any): Metric[] {\n const res: Metric[] = [];\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n for (const [key, _opts] of Object.entries(tracingContext.metricsProperties)) {\n res.push(instance[key].getData());\n }\n\n return res;\n }\n\n getResourceId(instance: any): number | null {\n const entry = this.resourceInstanceIndex.get(instance);\n return entry ? entry.data.id : null;\n }\n\n findResourcesByClassName(className: string): ResourceEntry[] {\n return [...this.resources.values()].filter(\n (res) => res.data.className === className || res.sanitizedClassName === className,\n );\n }\n\n findResourcesByAnnotation(annotation: symbol): ResourceEntry[] {\n return [...this.resources.values()].filter((res) => res.annotation === annotation);\n }\n\n refresh() {\n for (const resource of this.resources.values()) {\n const instance = resource.instance.deref();\n if (!instance) {\n continue;\n }\n\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n const time = performance.now();\n for (const key of Object.keys(tracingContext.metricsProperties)) {\n (instance[key] as BaseCounter)._tick?.(time);\n }\n\n let _changed = false;\n\n const oldInfo = resource.data.info;\n resource.data.info = this.getResourceInfo(instance);\n _changed ||= !areEqualShallow(oldInfo, resource.data.info);\n\n const oldMetrics = resource.data.metrics;\n resource.data.metrics = this.getResourceMetrics(instance);\n _changed ||= !areEqualShallow(oldMetrics, resource.data.metrics);\n\n // TODO(dmaretskyi): Test if works and enable.\n // if (changed) {\n this._markResourceDirty(resource.data.id);\n // }\n }\n\n for (const subscription of this.subscriptions) {\n subscription.flush();\n }\n }\n\n //\n // Implementation\n //\n\n /**\n * @internal\n */\n _flushSpan(runtimeSpan: TracingSpan) {\n const span = runtimeSpan.serialize();\n this.spans.set(span.id, span);\n this.spanIdList.push(span.id);\n if (this.spanIdList.length > MAX_SPAN_RECORDS) {\n this._clearSpans();\n }\n this._markSpanDirty(span.id);\n this.remoteTracing.flushSpan(runtimeSpan);\n }\n\n private _markResourceDirty(id: number) {\n for (const subscription of this.subscriptions) {\n subscription.dirtyResources.add(id);\n }\n }\n\n private _markSpanDirty(id: number) {\n for (const subscription of this.subscriptions) {\n subscription.dirtySpans.add(id);\n }\n }\n\n private _clearResources() {\n // TODO(dmaretskyi): Use FinalizationRegistry to delete finalized resources first.\n while (this.resourceIdList.length > MAX_RESOURCE_RECORDS) {\n const id = this.resourceIdList.shift()!;\n this.resources.delete(id);\n }\n }\n\n private _clearSpans() {\n while (this.spanIdList.length > MAX_SPAN_RECORDS) {\n const id = this.spanIdList.shift()!;\n this.spans.delete(id);\n }\n }\n\n private _pushLog(log: LogEntry) {\n this.logs.push(log);\n if (this.logs.length > MAX_LOG_RECORDS) {\n this.logs.shift();\n }\n\n for (const subscription of this.subscriptions) {\n subscription.newLogs.push(log);\n }\n }\n\n private _logProcessor: LogProcessor = (config, entry) => {\n switch (entry.level) {\n case LogLevel.ERROR:\n case LogLevel.WARN:\n case LogLevel.TRACE: {\n const scope = entry.meta?.S;\n const resource = this.resourceInstanceIndex.get(scope);\n if (!resource) {\n return;\n }\n\n const context = getContextFromEntry(entry) ?? {};\n for (const key of Object.keys(context)) {\n context[key] = sanitizeValue(context[key], 0, this);\n }\n\n const entryToPush: LogEntry = {\n level: entry.level,\n message: entry.message,\n context,\n timestamp: new Date(),\n meta: {\n file: entry.meta?.F ?? '',\n line: entry.meta?.L ?? 0,\n resourceId: resource.data.id,\n },\n };\n this._pushLog(entryToPush);\n break;\n }\n default:\n }\n };\n}\n\n// TODO(burdon): Comment.\nexport class TracingSpan {\n static nextId = 0;\n\n readonly id: number;\n readonly parentId: number | null = null;\n readonly methodName: string;\n readonly resourceId: number | null = null;\n readonly op: string | undefined;\n readonly attributes: Record<string, any>;\n startTs: number;\n endTs: number | null = null;\n error: SerializedError | null = null;\n\n private _showInBrowserTimeline: boolean;\n private readonly _ctx: Context | null = null;\n\n constructor(\n private _traceProcessor: TraceProcessor,\n params: TraceSpanParams,\n ) {\n this.id = TracingSpan.nextId++;\n this.methodName = params.methodName;\n this.resourceId = _traceProcessor.getResourceId(params.instance);\n this.startTs = performance.now();\n this._showInBrowserTimeline = params.showInBrowserTimeline;\n this.op = params.op;\n this.attributes = params.attributes ?? {};\n\n if (params.parentCtx) {\n this._ctx = params.parentCtx.derive({\n attributes: {\n [TRACE_SPAN_ATTRIBUTE]: this.id,\n },\n });\n const parentId = params.parentCtx.getAttribute(TRACE_SPAN_ATTRIBUTE);\n if (typeof parentId === 'number') {\n this.parentId = parentId;\n }\n }\n }\n\n get name() {\n const resource = this._traceProcessor.resources.get(this.resourceId!);\n return resource ? `${resource.sanitizedClassName}#${resource.data.instanceId}.${this.methodName}` : this.methodName;\n }\n\n get ctx(): Context | null {\n return this._ctx;\n }\n\n markSuccess() {\n this.endTs = performance.now();\n this._traceProcessor._flushSpan(this);\n\n if (this._showInBrowserTimeline) {\n this._markInBrowserTimeline();\n }\n }\n\n markError(err: unknown) {\n this.endTs = performance.now();\n this.error = serializeError(err);\n this._traceProcessor._flushSpan(this);\n\n if (this._showInBrowserTimeline) {\n this._markInBrowserTimeline();\n }\n }\n\n serialize(): Span {\n return {\n id: this.id,\n resourceId: this.resourceId ?? undefined,\n methodName: this.methodName,\n parentId: this.parentId ?? undefined,\n startTs: this.startTs.toFixed(3),\n endTs: this.endTs?.toFixed(3) ?? undefined,\n error: this.error ?? undefined,\n };\n }\n\n private _markInBrowserTimeline() {\n performance.measure(this.name, { start: this.startTs, end: this.endTs! });\n }\n}\n\n// TODO(burdon): Log cause.\nconst serializeError = (err: unknown): SerializedError => {\n if (err instanceof Error) {\n return {\n name: err.name,\n message: err.message,\n };\n }\n\n return {\n message: String(err),\n };\n};\n\n// TODO(burdon): Rename singleton and move out of package.\nexport const TRACE_PROCESSOR: TraceProcessor = ((globalThis as any).TRACE_PROCESSOR ??= new TraceProcessor());\n\nconst sanitizeValue = (value: any, depth: number, traceProcessor: TraceProcessor): any => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'undefined':\n return value;\n case 'object':\n case 'function':\n if (value === null) {\n return value;\n }\n\n {\n const resourceEntry = traceProcessor.resourceInstanceIndex.get(value);\n if (resourceEntry) {\n return `${resourceEntry.sanitizedClassName}#${resourceEntry.data.instanceId}`;\n }\n }\n\n if (typeof value.toJSON === 'function') {\n // TODO(dmaretskyi): This has potential to cause infinite recursion.\n return sanitizeValue(value.toJSON(), depth, traceProcessor);\n }\n\n if (depth > 0) {\n if (isSetLike(value)) {\n return Object.fromEntries(\n Array.from(value.entries()).map((value) => sanitizeValue(value, depth - 1, traceProcessor)),\n );\n } else if (isMapLike(value)) {\n return Object.fromEntries(\n Array.from(value.entries()).map(([key, value]) => [key, sanitizeValue(value, depth - 1, traceProcessor)]),\n );\n } else if (Array.isArray(value)) {\n return value.map((item: any) => sanitizeValue(item, depth - 1, traceProcessor));\n } else if (typeof value === 'object') {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = sanitizeValue(value[key], depth - 1, traceProcessor);\n }\n return res;\n }\n }\n\n // TODO(dmaretskyi): Expose trait.\n if (typeof value.truncate === 'function') {\n return value.truncate();\n }\n\n return value.toString();\n }\n};\n\nconst areEqualShallow = (a: any, b: any) => {\n for (const key in a) {\n if (!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n for (const key in b) {\n if (!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n};\n\nexport const sanitizeClassName = (className: string) => {\n const SANITIZE_REGEX = /[^_](\\d+)$/;\n const m = className.match(SANITIZE_REGEX);\n if (!m) {\n return className;\n } else {\n return className.slice(0, -m[1].length);\n }\n};\n\nconst isSetLike = (value: any): value is Set<any> =>\n value instanceof Set ||\n (typeof value === 'object' && value !== null && Object.getPrototypeOf(value).constructor.name === 'ComplexSet');\n\nconst isMapLike = (value: any): value is Map<any, any> =>\n value instanceof Map ||\n (typeof value === 'object' && value !== null && Object.getPrototypeOf(value).constructor.name === 'ComplexMap');\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\n\nimport { type TraceDiagnosticParams, type TraceDiagnostic } from './api';\nimport { createId } from './util';\n\nexport const DIAGNOSTICS_TIMEOUT = 10_000;\n\nexport type DiagnosticMetadata = {\n id: string;\n instanceId: string;\n instanceTag: string | null;\n name: string;\n};\n\nexport type DiagnosticsRequest = {\n id: string;\n instanceId: string;\n};\n\nexport type DiagnosticsData = {\n id: string;\n instanceId: string;\n data: any;\n error?: string;\n};\n\nexport class TraceDiagnosticImpl implements TraceDiagnostic {\n constructor(\n public id: string,\n public fetch: () => any,\n public name: string,\n private readonly _onUnregister: () => void,\n ) {}\n\n unregister(): void {\n this._onUnregister();\n }\n}\n\nexport class DiagnosticsManager {\n readonly instanceId = createId();\n\n readonly registry = new Map<string, TraceDiagnosticImpl>();\n\n private _instanceTag: string | null = null;\n\n setInstanceTag(tag: string): void {\n this._instanceTag = tag;\n }\n\n registerDiagnostic(params: TraceDiagnosticParams<any>): TraceDiagnostic {\n const impl = new TraceDiagnosticImpl(params.id, params.fetch, params.name ?? params.id, () => {\n if (this.registry.get(params.id) === impl) {\n this.registry.delete(params.id);\n }\n });\n this.registry.set(params.id, impl);\n return impl;\n }\n\n list(): DiagnosticMetadata[] {\n return Array.from(this.registry.values()).map((diagnostic) => ({\n id: diagnostic.id,\n instanceId: this.instanceId,\n instanceTag: this._instanceTag,\n name: diagnostic.name,\n }));\n }\n\n async fetch(request: DiagnosticsRequest): Promise<DiagnosticsData> {\n invariant(request.instanceId === this.instanceId, 'Invalid instance id');\n const { id } = request;\n const diagnostic = this.registry.get(id);\n invariant(diagnostic, 'Diagnostic not found');\n try {\n const data = await asyncTimeout(diagnostic.fetch(), DIAGNOSTICS_TIMEOUT);\n return {\n id,\n instanceId: this.instanceId,\n data,\n };\n } catch (err: any) {\n return {\n id,\n instanceId: this.instanceId,\n data: null,\n error: err.stack,\n };\n }\n }\n}\n", "// TODO(dmaretskyi): Use UUID.\n//\n// Copyright 2024 DXOS.org\n//\n\nexport const createId = () => Math.random().toString(36).slice(2);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Trigger, sleep } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport {\n DIAGNOSTICS_TIMEOUT,\n type DiagnosticMetadata,\n type DiagnosticsData,\n type DiagnosticsManager,\n type DiagnosticsRequest,\n} from './diagnostic';\nimport { createId } from './util';\n\nconst DEFAULT_CHANNEL_NAME = 'dxos-diagnostics';\n\nconst DISCOVER_TIME = 500;\n\nexport type DiagnosticChannelMessage =\n | {\n type: 'DIAGNOSTICS_DISCOVER';\n }\n | {\n type: 'DIAGNOSTICS_ANNOUNCE';\n diagnostics: DiagnosticMetadata[];\n }\n | {\n type: 'DIAGNOSTICS_FETCH';\n requestId: string;\n request: DiagnosticsRequest;\n }\n | {\n type: 'DIAGNOSTICS_RESPONSE';\n requestId: string;\n data: DiagnosticsData;\n };\n\nexport class DiagnosticsChannel {\n private _ctx = new Context();\n\n // Separate channels becauase the client and server may be in the same process.\n private readonly _serveChannel: BroadcastChannel;\n private readonly _clientChannel: BroadcastChannel;\n\n constructor(private readonly _channelName: string = DEFAULT_CHANNEL_NAME) {\n this._serveChannel = new BroadcastChannel(_channelName);\n this._clientChannel = new BroadcastChannel(_channelName);\n }\n\n destroy() {\n void this._ctx.dispose();\n this._serveChannel.close();\n this._clientChannel.close();\n }\n\n /**\n * In node.js, the channel will keep the process alive.\n * This method allows the process to exit.\n * Noop in the browser.\n */\n unref() {\n if (typeof (this._serveChannel as any).unref === 'function') {\n (this._serveChannel as any).unref();\n (this._clientChannel as any).unref();\n }\n }\n\n serve(manager: DiagnosticsManager) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'DIAGNOSTICS_DISCOVER': {\n const diagnostics = manager.list();\n this._serveChannel.postMessage({\n type: 'DIAGNOSTICS_ANNOUNCE',\n diagnostics,\n } satisfies DiagnosticChannelMessage);\n break;\n }\n case 'DIAGNOSTICS_FETCH': {\n const { requestId, request } = event.data;\n if (request.instanceId !== manager.instanceId) {\n break;\n }\n\n const data = await manager.fetch(request);\n this._serveChannel.postMessage({\n type: 'DIAGNOSTICS_RESPONSE',\n requestId,\n data,\n } satisfies DiagnosticChannelMessage);\n break;\n }\n }\n };\n\n this._serveChannel.addEventListener('message', listener);\n this._ctx.onDispose(() => this._serveChannel.removeEventListener('message', listener));\n }\n\n async discover(): Promise<DiagnosticMetadata[]> {\n const diagnostics: DiagnosticMetadata[] = [];\n\n const collector = (event: MessageEvent) => {\n const data = event.data as DiagnosticChannelMessage;\n switch (data.type) {\n case 'DIAGNOSTICS_ANNOUNCE':\n diagnostics.push(...data.diagnostics);\n break;\n }\n };\n\n try {\n this._clientChannel.addEventListener('message', collector);\n this._clientChannel.postMessage({ type: 'DIAGNOSTICS_DISCOVER' } satisfies DiagnosticChannelMessage);\n\n await sleep(DISCOVER_TIME);\n\n // Dedup.\n const result: DiagnosticMetadata[] = [];\n for (const diagnostic of diagnostics) {\n if (!result.some((d) => d.id === diagnostic.id && d.instanceId === diagnostic.instanceId)) {\n result.push(diagnostic);\n }\n }\n\n return diagnostics;\n } finally {\n this._clientChannel.removeEventListener('message', collector);\n }\n }\n\n async fetch(request: DiagnosticsRequest): Promise<DiagnosticsData> {\n const requestId = createId();\n\n const trigger = new Trigger<DiagnosticsData>();\n const listener = (event: MessageEvent) => {\n const data = event.data as DiagnosticChannelMessage;\n if (data.type === 'DIAGNOSTICS_RESPONSE' && data.requestId === requestId) {\n trigger.wake(data.data);\n }\n };\n\n try {\n this._clientChannel.addEventListener('message', listener);\n this._clientChannel.postMessage({\n type: 'DIAGNOSTICS_FETCH',\n requestId,\n request,\n } satisfies DiagnosticChannelMessage);\n\n // NOTE: Must have await keyword in this block.\n const result = await trigger.wait({ timeout: DIAGNOSTICS_TIMEOUT });\n\n return result;\n } finally {\n this._clientChannel.removeEventListener('message', listener);\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\ntype TagType = number | string | boolean | null | undefined;\n\nexport interface MetricData {\n unit?: string;\n tags?: Record<string, TagType>;\n timestamp?: number;\n}\n\ninterface MetricsMethods {\n /**\n * Adds a value to a counter metric\n */\n increment(name: string, value?: number, data?: MetricData): void;\n /**\n * Adds a value to a distribution metric\n */\n distribution(name: string, value: number, data?: MetricData): void;\n /**\n * Adds a value to a set metric. Value must be a string or integer.\n */\n set(name: string, value: number | string, data?: MetricData): void;\n /**\n * Adds a value to a gauge metric\n */\n gauge(name: string, value: number, data?: MetricData): void;\n}\n\n/**\n * Allows metrics to be recorded within SDK code without requiring specific consumers.\n */\nexport class RemoteMetrics implements MetricsMethods {\n private _metrics = new Set<MetricsMethods>();\n\n registerProcessor(processor: MetricsMethods) {\n this._metrics.add(processor);\n }\n\n increment(name: string, value?: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.increment(name, value, data));\n }\n\n distribution(name: string, value: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.distribution(name, value, data));\n }\n\n set(name: string, value: number | string, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.set(name, value, data));\n }\n\n gauge(name: string, value: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.gauge(name, value, data));\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type TracingSpan } from '../trace-processor';\n\ntype RemoteSpan = {\n end: () => void;\n};\n\ntype StartSpanOptions = {\n name: string;\n op?: string;\n attributes?: Record<string, any>;\n};\n\ninterface TracingMethods {\n startSpan: (options: StartSpanOptions) => RemoteSpan;\n}\n\n/**\n * Allows traces to be recorded within SDK code without requiring specific consumers.\n */\n// TODO(wittjosiah): Should probably just use otel. Use `any` for now to not depend on Sentry directly.\nexport class RemoteTracing {\n private _tracing: TracingMethods | undefined;\n private _spanMap = new Map<TracingSpan, RemoteSpan>();\n\n registerProcessor(processor: TracingMethods) {\n this._tracing = processor;\n }\n\n flushSpan(span: TracingSpan) {\n if (!this._tracing) {\n return;\n }\n\n if (!span.endTs) {\n const remoteSpan = this._tracing.startSpan({\n name: span.methodName,\n op: span.op ?? 'function',\n attributes: span.attributes,\n });\n this._spanMap.set(span, remoteSpan);\n } else {\n const remoteSpan = this._spanMap.get(span);\n if (remoteSpan) {\n remoteSpan.end();\n this._spanMap.delete(span);\n }\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Stream } from '@dxos/codec-protobuf';\nimport { type LogEntry } from '@dxos/protocols/proto/dxos/client/services';\nimport { type StreamTraceEvent, type TracingService } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { type TraceProcessor, type TraceSubscription } from './trace-processor';\n\nexport class TraceSender implements TracingService {\n constructor(private _traceProcessor: TraceProcessor) {}\n\n streamTrace(request: void): Stream<StreamTraceEvent> {\n return new Stream(({ ctx, next }) => {\n const flushEvents = (resources: Set<number> | null, spans: Set<number> | null, logs: LogEntry[] | null) => {\n const event: StreamTraceEvent = {\n resourceAdded: [],\n resourceRemoved: [],\n spanAdded: [],\n logAdded: [],\n };\n\n if (resources) {\n for (const id of resources) {\n const entry = this._traceProcessor.resources.get(id);\n if (entry) {\n event.resourceAdded!.push({ resource: entry.data });\n } else {\n event.resourceRemoved!.push({ id });\n }\n }\n } else {\n for (const entry of this._traceProcessor.resources.values()) {\n event.resourceAdded!.push({ resource: entry.data });\n }\n }\n\n if (spans) {\n for (const id of spans) {\n const span = this._traceProcessor.spans.get(id);\n if (span) {\n event.spanAdded!.push({ span });\n }\n }\n } else {\n for (const span of this._traceProcessor.spans.values()) {\n event.spanAdded!.push({ span });\n }\n }\n\n if (logs) {\n for (const log of logs) {\n event.logAdded!.push({ log });\n }\n } else {\n for (const log of this._traceProcessor.logs) {\n event.logAdded!.push({ log });\n }\n }\n\n if (event.resourceAdded!.length > 0 || event.resourceRemoved!.length > 0 || event.spanAdded!.length > 0) {\n next(event);\n }\n };\n\n const flush = () => {\n flushEvents(subscription.dirtyResources, subscription.dirtySpans, subscription.newLogs);\n subscription.dirtyResources.clear();\n subscription.dirtySpans.clear();\n subscription.newLogs.length = 0;\n };\n\n const subscription: TraceSubscription = {\n flush,\n dirtyResources: new Set(),\n dirtySpans: new Set(),\n newLogs: [],\n };\n this._traceProcessor.subscriptions.add(subscription);\n ctx.onDispose(() => {\n this._traceProcessor.subscriptions.delete(subscription);\n });\n\n flushEvents(null, null, null);\n });\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nexport abstract class BaseCounter {\n /**\n * @internal\n */\n _instance: any;\n\n name?: string;\n\n /**\n * @internal\n */\n _assign(instance: any, name: string) {\n this._instance = instance;\n this.name = name;\n }\n\n abstract getData(): Metric;\n\n _tick(time: number): void {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nexport class UnaryCounter extends BaseCounter {\n value = 0;\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(by = 1) {\n this.value += by;\n }\n\n getData(): Metric {\n return {\n name: this.name!,\n counter: {\n value: this.value,\n units: this.units,\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nconst MAX_BUCKETS = 60;\n\nexport class TimeSeriesCounter extends BaseCounter {\n private _currentValue = 0;\n private _totalValue = 0;\n private _buckets: number[] = [];\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(by = 1) {\n this._currentValue += by;\n this._totalValue += by;\n }\n\n override _tick(time: number): void {\n this._buckets.push(this._currentValue);\n if (this._buckets.length > MAX_BUCKETS) {\n this._buckets.shift();\n }\n this._currentValue = 0;\n }\n\n override getData(): Metric {\n return {\n name: this.name!,\n timeSeries: {\n tracks: [\n {\n name: this.name!,\n units: this.units,\n points: this._buckets.map((value, index) => ({\n value,\n })),\n total: this._totalValue,\n },\n ],\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nconst MAX_BUCKETS = 60;\n\nexport class TimeUsageCounter extends BaseCounter {\n private _currentValue = 0;\n private _totalValue = 0;\n private _buckets: number[] = [];\n\n private _lastTickTime = performance.now();\n\n record(time: number) {\n this._currentValue += time;\n this._totalValue += time;\n }\n\n beginRecording(): { end: () => void } {\n const start = performance.now();\n return {\n end: () => {\n const end = performance.now();\n this.record(end - start);\n },\n };\n }\n\n override _tick(time: number): void {\n const delta = time - this._lastTickTime;\n this._lastTickTime = time;\n\n const percentage = (this._currentValue / delta) * 100;\n this._buckets.push(percentage);\n if (this._buckets.length > MAX_BUCKETS) {\n this._buckets.shift();\n }\n this._currentValue = 0;\n }\n\n override getData(): Metric {\n return {\n name: this.name!,\n timeSeries: {\n tracks: [\n {\n name: this.name!,\n units: '%',\n points: this._buckets.map((value, index) => ({\n value,\n })),\n total: this._totalValue,\n },\n ],\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nexport class MapCounter extends BaseCounter {\n values = new Map<string, number>();\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(key: string, by = 1) {\n const prev = this.values.get(key) ?? 0;\n this.values.set(key, prev + by);\n }\n\n getData(): Metric {\n return {\n name: this.name!,\n multiCounter: {\n records: Array.from(this.values.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n units: this.units,\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { trace } from './api';\n\nexport * from './api';\nexport * from './symbols';\nexport * from './trace-processor';\nexport * from './trace-sender';\nexport * from './metrics';\nexport * from './diagnostic';\n\ntrace.diagnostic({\n id: 'process-info',\n name: 'Process Info',\n fetch: async () => {\n return {\n platform: globalThis.process?.platform,\n arch: globalThis.process?.arch,\n versions: globalThis.process?.versions,\n href: globalThis.location?.href,\n };\n },\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Context", "symbolTracingContext", "Symbol", "getTracingContext", "target", "infoProperties", "metricsProperties", "TRACE_SPAN_ATTRIBUTE", "unrefTimeout", "LogLevel", "getContextFromEntry", "log", "getPrototypeSpecificInstanceId", "asyncTimeout", "invariant", "createId", "Math", "random", "toString", "slice", "DIAGNOSTICS_TIMEOUT", "TraceDiagnosticImpl", "constructor", "id", "fetch", "name", "_onUnregister", "unregister", "DiagnosticsManager", "instanceId", "createId", "registry", "Map", "_instanceTag", "setInstanceTag", "tag", "registerDiagnostic", "params", "impl", "get", "delete", "set", "list", "Array", "from", "values", "map", "diagnostic", "instanceTag", "request", "invariant", "data", "asyncTimeout", "err", "error", "stack", "Trigger", "sleep", "Context", "DEFAULT_CHANNEL_NAME", "DISCOVER_TIME", "DiagnosticsChannel", "constructor", "_channelName", "_ctx", "Context", "_serveChannel", "BroadcastChannel", "_clientChannel", "destroy", "dispose", "close", "unref", "serve", "manager", "listener", "event", "data", "type", "diagnostics", "list", "postMessage", "requestId", "request", "instanceId", "fetch", "addEventListener", "onDispose", "removeEventListener", "discover", "collector", "push", "sleep", "result", "diagnostic", "some", "d", "id", "createId", "trigger", "Trigger", "wake", "wait", "timeout", "DIAGNOSTICS_TIMEOUT", "RemoteMetrics", "_metrics", "Set", "registerProcessor", "processor", "add", "increment", "name", "value", "data", "Array", "from", "values", "map", "distribution", "set", "gauge", "RemoteTracing", "_spanMap", "Map", "registerProcessor", "processor", "_tracing", "flushSpan", "span", "endTs", "remoteSpan", "startSpan", "name", "methodName", "op", "attributes", "set", "get", "end", "delete", "Stream", "TraceSender", "constructor", "_traceProcessor", "streamTrace", "request", "Stream", "ctx", "next", "flushEvents", "resources", "spans", "logs", "event", "resourceAdded", "resourceRemoved", "spanAdded", "logAdded", "id", "entry", "get", "push", "resource", "data", "values", "span", "log", "length", "flush", "subscription", "dirtyResources", "dirtySpans", "newLogs", "clear", "Set", "subscriptions", "add", "onDispose", "delete", "ResourceEntry", "constructor", "data", "instance", "annotation", "sanitizedClassName", "sanitizeClassName", "className", "getMetric", "name", "metrics", "find", "metric", "MAX_RESOURCE_RECORDS", "MAX_SPAN_RECORDS", "MAX_LOG_RECORDS", "REFRESH_INTERVAL", "MAX_INFO_OBJECT_DEPTH", "TraceProcessor", "diagnostics", "DiagnosticsManager", "diagnosticsChannel", "DiagnosticsChannel", "remoteMetrics", "RemoteMetrics", "remoteTracing", "RemoteTracing", "subscriptions", "Set", "resources", "Map", "resourceInstanceIndex", "WeakMap", "resourceIdList", "spans", "spanIdList", "logs", "_instanceTag", "_logProcessor", "config", "entry", "level", "LogLevel", "ERROR", "WARN", "TRACE", "scope", "meta", "S", "resource", "get", "context", "getContextFromEntry", "key", "Object", "keys", "sanitizeValue", "entryToPush", "message", "timestamp", "Date", "file", "F", "line", "L", "resourceId", "id", "_pushLog", "log", "addProcessor", "bind", "refreshInterval", "setInterval", "refresh", "unrefTimeout", "serve", "unref", "setInstanceTag", "tag", "createTraceResource", "params", "size", "tracingContext", "getTracingContext", "getPrototypeOf", "metricsProperties", "_assign", "instanceId", "getPrototypeSpecificInstanceId", "info", "getResourceInfo", "links", "getResourceMetrics", "WeakRef", "set", "push", "length", "_clearResources", "_markResourceDirty", "createTraceSender", "TraceSender", "traceSpan", "span", "TracingSpan", "_flushSpan", "addLink", "parent", "child", "opts", "getDiagnostics", "fromEntries", "Array", "from", "entries", "map", "values", "filter", "INFO", "res", "options", "infoProperties", "value", "enum", "depth", "undefined", "err", "_opts", "getData", "getResourceId", "findResourcesByClassName", "findResourcesByAnnotation", "deref", "time", "performance", "now", "_tick", "_changed", "oldInfo", "areEqualShallow", "oldMetrics", "subscription", "flush", "runtimeSpan", "serialize", "_clearSpans", "_markSpanDirty", "flushSpan", "dirtyResources", "add", "dirtySpans", "shift", "delete", "newLogs", "nextId", "_traceProcessor", "parentId", "endTs", "error", "_ctx", "methodName", "startTs", "_showInBrowserTimeline", "showInBrowserTimeline", "op", "attributes", "parentCtx", "derive", "TRACE_SPAN_ATTRIBUTE", "getAttribute", "ctx", "markSuccess", "_markInBrowserTimeline", "markError", "serializeError", "toFixed", "measure", "start", "end", "Error", "String", "TRACE_PROCESSOR", "globalThis", "traceProcessor", "resourceEntry", "toJSON", "isSetLike", "isMapLike", "isArray", "item", "truncate", "toString", "a", "b", "SANITIZE_REGEX", "m", "match", "slice", "resource", "options", "constructor", "klass", "rest", "TRACE_PROCESSOR", "createTraceResource", "annotation", "instance", "Object", "defineProperty", "value", "name", "info", "opts", "target", "propertyKey", "descriptor", "getTracingContext", "infoProperties", "mark", "performance", "span", "showInBrowserTimeline", "op", "attributes", "method", "args", "parentCtx", "Context", "traceSpan", "methodName", "callArgs", "ctx", "slice", "apply", "err", "markError", "markSuccess", "metricsCounter", "metricsProperties", "addLink", "parent", "child", "diagnostic", "params", "diagnostics", "registerDiagnostic", "trace", "metrics", "remoteMetrics", "BaseCounter", "_assign", "instance", "name", "_instance", "_tick", "time", "UnaryCounter", "BaseCounter", "constructor", "units", "value", "inc", "by", "getData", "name", "counter", "MAX_BUCKETS", "TimeSeriesCounter", "BaseCounter", "constructor", "units", "_currentValue", "_totalValue", "_buckets", "inc", "by", "_tick", "time", "push", "length", "shift", "getData", "name", "timeSeries", "tracks", "points", "map", "value", "index", "total", "MAX_BUCKETS", "TimeUsageCounter", "BaseCounter", "_currentValue", "_totalValue", "_buckets", "_lastTickTime", "performance", "now", "record", "time", "beginRecording", "start", "end", "_tick", "delta", "percentage", "push", "length", "shift", "getData", "name", "timeSeries", "tracks", "units", "points", "map", "value", "index", "total", "MapCounter", "BaseCounter", "constructor", "units", "values", "Map", "inc", "key", "by", "prev", "get", "set", "getData", "name", "multiCounter", "records", "Array", "from", "entries", "map", "value", "trace", "diagnostic", "id", "name", "fetch", "platform", "globalThis", "process", "arch", "versions", "href", "location"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/common/tracing/src/symbols.ts":{"bytes":1851,"imports":[],"format":"esm"},"packages/common/tracing/src/util.ts":{"bytes":814,"imports":[],"format":"esm"},"packages/common/tracing/src/diagnostic.ts":{"bytes":8459,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/diagnostics-channel.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/common/tracing/src/symbols.ts":{"bytes":1851,"imports":[],"format":"esm"},"packages/common/tracing/src/util.ts":{"bytes":814,"imports":[],"format":"esm"},"packages/common/tracing/src/diagnostic.ts":{"bytes":8459,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/diagnostics-channel.ts":{"bytes":15015,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/remote/metrics.ts":{"bytes":4825,"imports":[],"format":"esm"},"packages/common/tracing/src/remote/tracing.ts":{"bytes":4029,"imports":[],"format":"esm"},"packages/common/tracing/src/remote/index.ts":{"bytes":588,"imports":[{"path":"packages/common/tracing/src/remote/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/common/tracing/src/remote/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"packages/common/tracing/src/trace-sender.ts":{"bytes":10534,"imports":[{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true}],"format":"esm"},"packages/common/tracing/src/trace-processor.ts":{"bytes":55577,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"},{"path":"packages/common/tracing/src/diagnostics-channel.ts","kind":"import-statement","original":"./diagnostics-channel"},{"path":"packages/common/tracing/src/remote/index.ts","kind":"import-statement","original":"./remote"},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-sender.ts","kind":"import-statement","original":"./trace-sender"}],"format":"esm"},"packages/common/tracing/src/api.ts":{"bytes":11244,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-processor.ts","kind":"import-statement","original":"./trace-processor"}],"format":"esm"},"packages/common/tracing/src/metrics/base.ts":{"bytes":1498,"imports":[],"format":"esm"},"packages/common/tracing/src/metrics/unary-counter.ts":{"bytes":2184,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/time-series-counter.ts":{"bytes":4352,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/time-usage-counter.ts":{"bytes":5345,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/map-counter.ts":{"bytes":3041,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/index.ts":{"bytes":928,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/common/tracing/src/metrics/unary-counter.ts","kind":"import-statement","original":"./unary-counter"},{"path":"packages/common/tracing/src/metrics/time-series-counter.ts","kind":"import-statement","original":"./time-series-counter"},{"path":"packages/common/tracing/src/metrics/time-usage-counter.ts","kind":"import-statement","original":"./time-usage-counter"},{"path":"packages/common/tracing/src/metrics/map-counter.ts","kind":"import-statement","original":"./map-counter"}],"format":"esm"},"packages/common/tracing/src/index.ts":{"bytes":2226,"imports":[{"path":"packages/common/tracing/src/api.ts","kind":"import-statement","original":"./api"},{"path":"packages/common/tracing/src/api.ts","kind":"import-statement","original":"./api"},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-processor.ts","kind":"import-statement","original":"./trace-processor"},{"path":"packages/common/tracing/src/trace-sender.ts","kind":"import-statement","original":"./trace-sender"},{"path":"packages/common/tracing/src/metrics/index.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"}],"format":"esm"}},"outputs":{"packages/common/tracing/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64550},"packages/common/tracing/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true}],"exports":["BaseCounter","DIAGNOSTICS_TIMEOUT","DiagnosticsManager","MapCounter","ResourceEntry","TRACE_PROCESSOR","TRACE_SPAN_ATTRIBUTE","TimeSeriesCounter","TimeUsageCounter","TraceDiagnosticImpl","TraceProcessor","TraceSender","TracingSpan","UnaryCounter","getTracingContext","sanitizeClassName","symbolTracingContext","trace"],"entryPoint":"packages/common/tracing/src/index.ts","inputs":{"packages/common/tracing/src/api.ts":{"bytesInOutput":1843},"packages/common/tracing/src/symbols.ts":{"bytesInOutput":245},"packages/common/tracing/src/trace-processor.ts":{"bytesInOutput":12507},"packages/common/tracing/src/diagnostic.ts":{"bytesInOutput":2050},"packages/common/tracing/src/util.ts":{"bytesInOutput":58},"packages/common/tracing/src/diagnostics-channel.ts":{"bytesInOutput":3389},"packages/common/tracing/src/remote/metrics.ts":{"bytesInOutput":729},"packages/common/tracing/src/remote/index.ts":{"bytesInOutput":0},"packages/common/tracing/src/remote/tracing.ts":{"bytesInOutput":638},"packages/common/tracing/src/trace-sender.ts":{"bytesInOutput":2555},"packages/common/tracing/src/index.ts":{"bytesInOutput":284},"packages/common/tracing/src/metrics/base.ts":{"bytesInOutput":159},"packages/common/tracing/src/metrics/index.ts":{"bytesInOutput":0},"packages/common/tracing/src/metrics/unary-counter.ts":{"bytesInOutput":324},"packages/common/tracing/src/metrics/time-series-counter.ts":{"bytesInOutput":812},"packages/common/tracing/src/metrics/time-usage-counter.ts":{"bytesInOutput":1136},"packages/common/tracing/src/metrics/map-counter.ts":{"bytesInOutput":509}},"bytes":28504}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -133,12 +133,16 @@ var DiagnosticsManager = class {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/diagnostics-channel.ts";
|
|
136
137
|
var DEFAULT_CHANNEL_NAME = "dxos-diagnostics";
|
|
137
138
|
var DISCOVER_TIME = 500;
|
|
138
139
|
var DiagnosticsChannel = class {
|
|
139
140
|
constructor(_channelName = DEFAULT_CHANNEL_NAME) {
|
|
140
141
|
this._channelName = _channelName;
|
|
141
|
-
this._ctx = new import_context2.Context(
|
|
142
|
+
this._ctx = new import_context2.Context(void 0, {
|
|
143
|
+
F: __dxlog_file2,
|
|
144
|
+
L: 41
|
|
145
|
+
});
|
|
142
146
|
this._serveChannel = new BroadcastChannel(_channelName);
|
|
143
147
|
this._clientChannel = new BroadcastChannel(_channelName);
|
|
144
148
|
}
|
|
@@ -372,7 +376,7 @@ var TraceSender = class {
|
|
|
372
376
|
});
|
|
373
377
|
}
|
|
374
378
|
};
|
|
375
|
-
var
|
|
379
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
|
|
376
380
|
var ResourceEntry = class {
|
|
377
381
|
constructor(data, instance, annotation) {
|
|
378
382
|
this.data = data;
|
|
@@ -435,7 +439,7 @@ var TraceProcessor = class {
|
|
|
435
439
|
}
|
|
436
440
|
};
|
|
437
441
|
import_log.log.addProcessor(this._logProcessor.bind(this), void 0, {
|
|
438
|
-
F:
|
|
442
|
+
F: __dxlog_file3,
|
|
439
443
|
L: 100,
|
|
440
444
|
S: this,
|
|
441
445
|
C: (f, a) => f(...a)
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api.ts", "../../../src/symbols.ts", "../../../src/trace-processor.ts", "../../../src/diagnostic.ts", "../../../src/util.ts", "../../../src/diagnostics-channel.ts", "../../../src/remote/metrics.ts", "../../../src/remote/tracing.ts", "../../../src/trace-sender.ts", "../../../src/metrics/base.ts", "../../../src/metrics/unary-counter.ts", "../../../src/metrics/time-series-counter.ts", "../../../src/metrics/time-usage-counter.ts", "../../../src/metrics/map-counter.ts", "../../../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { getTracingContext } from './symbols';\nimport { TRACE_PROCESSOR } from './trace-processor';\n\n/**\n * Annotates a class as a tracked resource.\n */\nconst resource =\n (options?: { annotation?: symbol }) =>\n <T extends { new (...args: any[]): {} }>(constructor: T) => {\n // Wrapping class declaration into an IIFE so it doesn't capture the `klass` class name.\n const klass = (() =>\n class extends constructor {\n constructor(...rest: any[]) {\n super(...rest);\n TRACE_PROCESSOR.createTraceResource({ constructor, annotation: options?.annotation, instance: this });\n }\n })();\n Object.defineProperty(klass, 'name', { value: constructor.name });\n return klass;\n };\n\nexport type InfoOptions = {\n /**\n * Value is of enum type and should be converted to string.\n *\n * Example:\n *\n * ```ts\n * @trace.info({ enum: SpaceState })\n * get state(): SpaceState { ... }\n * ```\n */\n enum?: Record<string, any>;\n\n /**\n * Max depth of the object to be included in the resource info section.\n *\n * null means no limit (a limit of 8 nested objects is still imposed).\n *\n * Default: 0 - objects will be stringified with toString.\n */\n depth?: number | null;\n};\n\n/**\n * Marks a property or a method to be included in the resource info section.\n */\nconst info =\n (opts: InfoOptions = {}) =>\n (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n getTracingContext(target).infoProperties[propertyKey] = { options: opts };\n };\n\nconst mark = (name: string) => {\n performance.mark(name);\n};\n\nexport type SpanOptions = {\n showInBrowserTimeline?: boolean;\n op?: string;\n attributes?: Record<string, any>;\n};\n\nconst span =\n ({ showInBrowserTimeline = false, op, attributes }: SpanOptions = {}) =>\n (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...args: any) => any>) => {\n const method = descriptor.value!;\n\n descriptor.value = async function (this: any, ...args: any) {\n const parentCtx = args[0] instanceof Context ? args[0] : null;\n const span = TRACE_PROCESSOR.traceSpan({\n parentCtx,\n methodName: propertyKey,\n instance: this,\n showInBrowserTimeline,\n op,\n attributes,\n });\n\n const callArgs = span.ctx ? [span.ctx, ...args.slice(1)] : args;\n try {\n return await method.apply(this, callArgs);\n } catch (err) {\n span.markError(err);\n throw err;\n } finally {\n span.markSuccess();\n }\n };\n };\n\n/**\n * Attaches metrics counter to the resource.\n */\nconst metricsCounter = () => (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n getTracingContext(target).metricsProperties[propertyKey] = {};\n};\n\nexport type AddLinkOptions = {};\n\nconst addLink = (parent: any, child: any, opts: AddLinkOptions = {}) => {\n TRACE_PROCESSOR.addLink(parent, child, opts);\n};\n\nexport type TraceDiagnosticParams<T> = {\n /**\n * Unique ID.\n */\n id: string;\n\n /**\n * Human-readable name.\n * @defaults Defaults to `id`\n */\n name?: string;\n\n /**\n * Function that will be called to fetch the diagnostic data.\n */\n fetch: () => MaybePromise<T>;\n};\n\nexport interface TraceDiagnostic {\n id: string;\n unregister(): void;\n}\n\n/**\n * Register a diagnostic that could be queried.\n */\nconst diagnostic = <T>(params: TraceDiagnosticParams<T>): TraceDiagnostic => {\n return TRACE_PROCESSOR.diagnostics.registerDiagnostic(params);\n};\n\nexport const trace = {\n addLink,\n diagnostic,\n info,\n mark,\n metricsCounter,\n resource,\n span,\n metrics: TRACE_PROCESSOR.remoteMetrics,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type InfoOptions } from './api';\n\nexport const symbolTracingContext = Symbol('dxos.tracing.context');\n\nexport type TracingContext = {\n infoProperties: Record<\n string,\n {\n options: InfoOptions;\n }\n >;\n metricsProperties: Record<string, {}>;\n};\n\nexport const getTracingContext = (target: any): TracingContext => {\n return ((target[symbolTracingContext] as TracingContext | undefined) ??= {\n infoProperties: {},\n metricsProperties: {},\n });\n};\n\nexport const TRACE_SPAN_ATTRIBUTE = 'dxos.trace-span';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { unrefTimeout } from '@dxos/async';\nimport { type Context } from '@dxos/context';\nimport { LogLevel, type LogProcessor, getContextFromEntry, log } from '@dxos/log';\nimport { type LogEntry } from '@dxos/protocols/proto/dxos/client/services';\nimport { type Error as SerializedError } from '@dxos/protocols/proto/dxos/error';\nimport { type Metric, type Resource, type Span } from '@dxos/protocols/proto/dxos/tracing';\nimport { getPrototypeSpecificInstanceId } from '@dxos/util';\n\nimport type { AddLinkOptions } from './api';\nimport { DiagnosticsManager } from './diagnostic';\nimport { DiagnosticsChannel } from './diagnostics-channel';\nimport { type BaseCounter } from './metrics';\nimport { RemoteMetrics, RemoteTracing } from './remote';\nimport { TRACE_SPAN_ATTRIBUTE, getTracingContext } from './symbols';\nimport { TraceSender } from './trace-sender';\n\nexport type Diagnostics = {\n resources: Record<string, Resource>;\n spans: Span[];\n logs: LogEntry[];\n};\n\nexport type TraceResourceConstructorParams = {\n constructor: { new (...args: any[]): {} };\n instance: any;\n annotation?: symbol;\n};\n\nexport type TraceSpanParams = {\n instance: any;\n // TODO(wittjosiah): Rename to `name`.\n methodName: string;\n parentCtx: Context | null;\n showInBrowserTimeline: boolean;\n op?: string;\n attributes?: Record<string, any>;\n};\n\nexport class ResourceEntry {\n /**\n * Sometimes bundlers mangle class names: WebFile -> WebFile2.\n *\n * We use a heuristic to remove the suffix.\n */\n public readonly sanitizedClassName: string;\n\n constructor(\n public readonly data: Resource,\n public readonly instance: WeakRef<any>,\n public readonly annotation?: symbol,\n ) {\n this.sanitizedClassName = sanitizeClassName(data.className);\n }\n\n getMetric(name: string): Metric | undefined {\n return this.data.metrics?.find((metric) => metric.name === name);\n }\n}\n\nexport type TraceSubscription = {\n flush: () => void;\n\n dirtyResources: Set<number>;\n dirtySpans: Set<number>;\n newLogs: LogEntry[];\n};\n\nconst MAX_RESOURCE_RECORDS = 2_000;\nconst MAX_SPAN_RECORDS = 1_000;\nconst MAX_LOG_RECORDS = 1_000;\n\nconst REFRESH_INTERVAL = 1_000;\n\nconst MAX_INFO_OBJECT_DEPTH = 8;\n\nexport class TraceProcessor {\n public readonly diagnostics = new DiagnosticsManager();\n public readonly diagnosticsChannel = new DiagnosticsChannel();\n public readonly remoteMetrics = new RemoteMetrics();\n public readonly remoteTracing = new RemoteTracing();\n\n readonly subscriptions: Set<TraceSubscription> = new Set();\n\n readonly resources = new Map<number, ResourceEntry>();\n readonly resourceInstanceIndex = new WeakMap<any, ResourceEntry>();\n readonly resourceIdList: number[] = [];\n\n readonly spans = new Map<number, Span>();\n readonly spanIdList: number[] = [];\n\n readonly logs: LogEntry[] = [];\n\n private _instanceTag: string | null = null;\n\n constructor() {\n log.addProcessor(this._logProcessor.bind(this));\n\n const refreshInterval = setInterval(this.refresh.bind(this), REFRESH_INTERVAL);\n unrefTimeout(refreshInterval);\n\n this.diagnosticsChannel.serve(this.diagnostics);\n this.diagnosticsChannel.unref();\n }\n\n setInstanceTag(tag: string) {\n this._instanceTag = tag;\n this.diagnostics.setInstanceTag(tag);\n }\n\n /**\n * @internal\n */\n // TODO(burdon): Comment.\n createTraceResource(params: TraceResourceConstructorParams) {\n const id = this.resources.size;\n\n // Init metrics counters.\n const tracingContext = getTracingContext(Object.getPrototypeOf(params.instance));\n for (const key of Object.keys(tracingContext.metricsProperties)) {\n (params.instance[key] as BaseCounter)._assign(params.instance, key);\n }\n\n const entry = new ResourceEntry(\n {\n id,\n className: params.constructor.name,\n instanceId: getPrototypeSpecificInstanceId(params.instance),\n info: this.getResourceInfo(params.instance),\n links: [],\n metrics: this.getResourceMetrics(params.instance),\n },\n new WeakRef(params.instance),\n params.annotation,\n );\n\n this.resources.set(id, entry);\n this.resourceInstanceIndex.set(params.instance, entry);\n this.resourceIdList.push(id);\n if (this.resourceIdList.length > MAX_RESOURCE_RECORDS) {\n this._clearResources();\n }\n\n this._markResourceDirty(id);\n }\n\n createTraceSender() {\n return new TraceSender(this);\n }\n\n traceSpan(params: TraceSpanParams): TracingSpan {\n const span = new TracingSpan(this, params);\n this._flushSpan(span);\n return span;\n }\n\n // TODO(burdon): Not implemented.\n addLink(parent: any, child: any, opts: AddLinkOptions) {}\n\n //\n // Getters\n //\n\n // TODO(burdon): Define type.\n // TODO(burdon): Reconcile with system service.\n getDiagnostics(): Diagnostics {\n this.refresh();\n\n return {\n resources: Object.fromEntries(\n Array.from(this.resources.entries()).map(([id, entry]) => [\n `${entry.sanitizedClassName}#${entry.data.instanceId}`,\n entry.data,\n ]),\n ),\n spans: Array.from(this.spans.values()),\n logs: this.logs.filter((log) => log.level >= LogLevel.INFO),\n };\n }\n\n getResourceInfo(instance: any): Record<string, any> {\n const res: Record<string, any> = {};\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n for (const [key, { options }] of Object.entries(tracingContext.infoProperties)) {\n try {\n const value = typeof instance[key] === 'function' ? instance[key]() : instance[key];\n if (options.enum) {\n res[key] = options.enum[value];\n } else {\n res[key] = sanitizeValue(\n value,\n options.depth === undefined ? 1 : options.depth ?? MAX_INFO_OBJECT_DEPTH,\n this,\n );\n }\n } catch (err: any) {\n res[key] = err.message;\n }\n }\n\n return res;\n }\n\n getResourceMetrics(instance: any): Metric[] {\n const res: Metric[] = [];\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n for (const [key, _opts] of Object.entries(tracingContext.metricsProperties)) {\n res.push(instance[key].getData());\n }\n\n return res;\n }\n\n getResourceId(instance: any): number | null {\n const entry = this.resourceInstanceIndex.get(instance);\n return entry ? entry.data.id : null;\n }\n\n findResourcesByClassName(className: string): ResourceEntry[] {\n return [...this.resources.values()].filter(\n (res) => res.data.className === className || res.sanitizedClassName === className,\n );\n }\n\n findResourcesByAnnotation(annotation: symbol): ResourceEntry[] {\n return [...this.resources.values()].filter((res) => res.annotation === annotation);\n }\n\n refresh() {\n for (const resource of this.resources.values()) {\n const instance = resource.instance.deref();\n if (!instance) {\n continue;\n }\n\n const tracingContext = getTracingContext(Object.getPrototypeOf(instance));\n const time = performance.now();\n for (const key of Object.keys(tracingContext.metricsProperties)) {\n (instance[key] as BaseCounter)._tick?.(time);\n }\n\n let _changed = false;\n\n const oldInfo = resource.data.info;\n resource.data.info = this.getResourceInfo(instance);\n _changed ||= !areEqualShallow(oldInfo, resource.data.info);\n\n const oldMetrics = resource.data.metrics;\n resource.data.metrics = this.getResourceMetrics(instance);\n _changed ||= !areEqualShallow(oldMetrics, resource.data.metrics);\n\n // TODO(dmaretskyi): Test if works and enable.\n // if (changed) {\n this._markResourceDirty(resource.data.id);\n // }\n }\n\n for (const subscription of this.subscriptions) {\n subscription.flush();\n }\n }\n\n //\n // Implementation\n //\n\n /**\n * @internal\n */\n _flushSpan(runtimeSpan: TracingSpan) {\n const span = runtimeSpan.serialize();\n this.spans.set(span.id, span);\n this.spanIdList.push(span.id);\n if (this.spanIdList.length > MAX_SPAN_RECORDS) {\n this._clearSpans();\n }\n this._markSpanDirty(span.id);\n this.remoteTracing.flushSpan(runtimeSpan);\n }\n\n private _markResourceDirty(id: number) {\n for (const subscription of this.subscriptions) {\n subscription.dirtyResources.add(id);\n }\n }\n\n private _markSpanDirty(id: number) {\n for (const subscription of this.subscriptions) {\n subscription.dirtySpans.add(id);\n }\n }\n\n private _clearResources() {\n // TODO(dmaretskyi): Use FinalizationRegistry to delete finalized resources first.\n while (this.resourceIdList.length > MAX_RESOURCE_RECORDS) {\n const id = this.resourceIdList.shift()!;\n this.resources.delete(id);\n }\n }\n\n private _clearSpans() {\n while (this.spanIdList.length > MAX_SPAN_RECORDS) {\n const id = this.spanIdList.shift()!;\n this.spans.delete(id);\n }\n }\n\n private _pushLog(log: LogEntry) {\n this.logs.push(log);\n if (this.logs.length > MAX_LOG_RECORDS) {\n this.logs.shift();\n }\n\n for (const subscription of this.subscriptions) {\n subscription.newLogs.push(log);\n }\n }\n\n private _logProcessor: LogProcessor = (config, entry) => {\n switch (entry.level) {\n case LogLevel.ERROR:\n case LogLevel.WARN:\n case LogLevel.TRACE: {\n const scope = entry.meta?.S;\n const resource = this.resourceInstanceIndex.get(scope);\n if (!resource) {\n return;\n }\n\n const context = getContextFromEntry(entry) ?? {};\n for (const key of Object.keys(context)) {\n context[key] = sanitizeValue(context[key], 0, this);\n }\n\n const entryToPush: LogEntry = {\n level: entry.level,\n message: entry.message,\n context,\n timestamp: new Date(),\n meta: {\n file: entry.meta?.F ?? '',\n line: entry.meta?.L ?? 0,\n resourceId: resource.data.id,\n },\n };\n this._pushLog(entryToPush);\n break;\n }\n default:\n }\n };\n}\n\n// TODO(burdon): Comment.\nexport class TracingSpan {\n static nextId = 0;\n\n readonly id: number;\n readonly parentId: number | null = null;\n readonly methodName: string;\n readonly resourceId: number | null = null;\n readonly op: string | undefined;\n readonly attributes: Record<string, any>;\n startTs: number;\n endTs: number | null = null;\n error: SerializedError | null = null;\n\n private _showInBrowserTimeline: boolean;\n private readonly _ctx: Context | null = null;\n\n constructor(\n private _traceProcessor: TraceProcessor,\n params: TraceSpanParams,\n ) {\n this.id = TracingSpan.nextId++;\n this.methodName = params.methodName;\n this.resourceId = _traceProcessor.getResourceId(params.instance);\n this.startTs = performance.now();\n this._showInBrowserTimeline = params.showInBrowserTimeline;\n this.op = params.op;\n this.attributes = params.attributes ?? {};\n\n if (params.parentCtx) {\n this._ctx = params.parentCtx.derive({\n attributes: {\n [TRACE_SPAN_ATTRIBUTE]: this.id,\n },\n });\n const parentId = params.parentCtx.getAttribute(TRACE_SPAN_ATTRIBUTE);\n if (typeof parentId === 'number') {\n this.parentId = parentId;\n }\n }\n }\n\n get name() {\n const resource = this._traceProcessor.resources.get(this.resourceId!);\n return resource ? `${resource.sanitizedClassName}#${resource.data.instanceId}.${this.methodName}` : this.methodName;\n }\n\n get ctx(): Context | null {\n return this._ctx;\n }\n\n markSuccess() {\n this.endTs = performance.now();\n this._traceProcessor._flushSpan(this);\n\n if (this._showInBrowserTimeline) {\n this._markInBrowserTimeline();\n }\n }\n\n markError(err: unknown) {\n this.endTs = performance.now();\n this.error = serializeError(err);\n this._traceProcessor._flushSpan(this);\n\n if (this._showInBrowserTimeline) {\n this._markInBrowserTimeline();\n }\n }\n\n serialize(): Span {\n return {\n id: this.id,\n resourceId: this.resourceId ?? undefined,\n methodName: this.methodName,\n parentId: this.parentId ?? undefined,\n startTs: this.startTs.toFixed(3),\n endTs: this.endTs?.toFixed(3) ?? undefined,\n error: this.error ?? undefined,\n };\n }\n\n private _markInBrowserTimeline() {\n performance.measure(this.name, { start: this.startTs, end: this.endTs! });\n }\n}\n\n// TODO(burdon): Log cause.\nconst serializeError = (err: unknown): SerializedError => {\n if (err instanceof Error) {\n return {\n name: err.name,\n message: err.message,\n };\n }\n\n return {\n message: String(err),\n };\n};\n\n// TODO(burdon): Rename singleton and move out of package.\nexport const TRACE_PROCESSOR: TraceProcessor = ((globalThis as any).TRACE_PROCESSOR ??= new TraceProcessor());\n\nconst sanitizeValue = (value: any, depth: number, traceProcessor: TraceProcessor): any => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'undefined':\n return value;\n case 'object':\n case 'function':\n if (value === null) {\n return value;\n }\n\n {\n const resourceEntry = traceProcessor.resourceInstanceIndex.get(value);\n if (resourceEntry) {\n return `${resourceEntry.sanitizedClassName}#${resourceEntry.data.instanceId}`;\n }\n }\n\n if (typeof value.toJSON === 'function') {\n // TODO(dmaretskyi): This has potential to cause infinite recursion.\n return sanitizeValue(value.toJSON(), depth, traceProcessor);\n }\n\n if (depth > 0) {\n if (isSetLike(value)) {\n return Object.fromEntries(\n Array.from(value.entries()).map((value) => sanitizeValue(value, depth - 1, traceProcessor)),\n );\n } else if (isMapLike(value)) {\n return Object.fromEntries(\n Array.from(value.entries()).map(([key, value]) => [key, sanitizeValue(value, depth - 1, traceProcessor)]),\n );\n } else if (Array.isArray(value)) {\n return value.map((item: any) => sanitizeValue(item, depth - 1, traceProcessor));\n } else if (typeof value === 'object') {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = sanitizeValue(value[key], depth - 1, traceProcessor);\n }\n return res;\n }\n }\n\n // TODO(dmaretskyi): Expose trait.\n if (typeof value.truncate === 'function') {\n return value.truncate();\n }\n\n return value.toString();\n }\n};\n\nconst areEqualShallow = (a: any, b: any) => {\n for (const key in a) {\n if (!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n for (const key in b) {\n if (!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n};\n\nexport const sanitizeClassName = (className: string) => {\n const SANITIZE_REGEX = /[^_](\\d+)$/;\n const m = className.match(SANITIZE_REGEX);\n if (!m) {\n return className;\n } else {\n return className.slice(0, -m[1].length);\n }\n};\n\nconst isSetLike = (value: any): value is Set<any> =>\n value instanceof Set ||\n (typeof value === 'object' && value !== null && Object.getPrototypeOf(value).constructor.name === 'ComplexSet');\n\nconst isMapLike = (value: any): value is Map<any, any> =>\n value instanceof Map ||\n (typeof value === 'object' && value !== null && Object.getPrototypeOf(value).constructor.name === 'ComplexMap');\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\n\nimport { type TraceDiagnosticParams, type TraceDiagnostic } from './api';\nimport { createId } from './util';\n\nexport const DIAGNOSTICS_TIMEOUT = 10_000;\n\nexport type DiagnosticMetadata = {\n id: string;\n instanceId: string;\n instanceTag: string | null;\n name: string;\n};\n\nexport type DiagnosticsRequest = {\n id: string;\n instanceId: string;\n};\n\nexport type DiagnosticsData = {\n id: string;\n instanceId: string;\n data: any;\n error?: string;\n};\n\nexport class TraceDiagnosticImpl implements TraceDiagnostic {\n constructor(\n public id: string,\n public fetch: () => any,\n public name: string,\n private readonly _onUnregister: () => void,\n ) {}\n\n unregister(): void {\n this._onUnregister();\n }\n}\n\nexport class DiagnosticsManager {\n readonly instanceId = createId();\n\n readonly registry = new Map<string, TraceDiagnosticImpl>();\n\n private _instanceTag: string | null = null;\n\n setInstanceTag(tag: string): void {\n this._instanceTag = tag;\n }\n\n registerDiagnostic(params: TraceDiagnosticParams<any>): TraceDiagnostic {\n const impl = new TraceDiagnosticImpl(params.id, params.fetch, params.name ?? params.id, () => {\n if (this.registry.get(params.id) === impl) {\n this.registry.delete(params.id);\n }\n });\n this.registry.set(params.id, impl);\n return impl;\n }\n\n list(): DiagnosticMetadata[] {\n return Array.from(this.registry.values()).map((diagnostic) => ({\n id: diagnostic.id,\n instanceId: this.instanceId,\n instanceTag: this._instanceTag,\n name: diagnostic.name,\n }));\n }\n\n async fetch(request: DiagnosticsRequest): Promise<DiagnosticsData> {\n invariant(request.instanceId === this.instanceId, 'Invalid instance id');\n const { id } = request;\n const diagnostic = this.registry.get(id);\n invariant(diagnostic, 'Diagnostic not found');\n try {\n const data = await asyncTimeout(diagnostic.fetch(), DIAGNOSTICS_TIMEOUT);\n return {\n id,\n instanceId: this.instanceId,\n data,\n };\n } catch (err: any) {\n return {\n id,\n instanceId: this.instanceId,\n data: null,\n error: err.stack,\n };\n }\n }\n}\n", "// TODO(dmaretskyi): Use UUID.\n//\n// Copyright 2024 DXOS.org\n//\n\nexport const createId = () => Math.random().toString(36).slice(2);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Trigger, sleep } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport {\n DIAGNOSTICS_TIMEOUT,\n type DiagnosticMetadata,\n type DiagnosticsData,\n type DiagnosticsManager,\n type DiagnosticsRequest,\n} from './diagnostic';\nimport { createId } from './util';\n\nconst DEFAULT_CHANNEL_NAME = 'dxos-diagnostics';\n\nconst DISCOVER_TIME = 500;\n\nexport type DiagnosticChannelMessage =\n | {\n type: 'DIAGNOSTICS_DISCOVER';\n }\n | {\n type: 'DIAGNOSTICS_ANNOUNCE';\n diagnostics: DiagnosticMetadata[];\n }\n | {\n type: 'DIAGNOSTICS_FETCH';\n requestId: string;\n request: DiagnosticsRequest;\n }\n | {\n type: 'DIAGNOSTICS_RESPONSE';\n requestId: string;\n data: DiagnosticsData;\n };\n\nexport class DiagnosticsChannel {\n private _ctx = new Context();\n\n // Separate channels becauase the client and server may be in the same process.\n private readonly _serveChannel: BroadcastChannel;\n private readonly _clientChannel: BroadcastChannel;\n\n constructor(private readonly _channelName: string = DEFAULT_CHANNEL_NAME) {\n this._serveChannel = new BroadcastChannel(_channelName);\n this._clientChannel = new BroadcastChannel(_channelName);\n }\n\n destroy() {\n void this._ctx.dispose();\n this._serveChannel.close();\n this._clientChannel.close();\n }\n\n /**\n * In node.js, the channel will keep the process alive.\n * This method allows the process to exit.\n * Noop in the browser.\n */\n unref() {\n if (typeof (this._serveChannel as any).unref === 'function') {\n (this._serveChannel as any).unref();\n (this._clientChannel as any).unref();\n }\n }\n\n serve(manager: DiagnosticsManager) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'DIAGNOSTICS_DISCOVER': {\n const diagnostics = manager.list();\n this._serveChannel.postMessage({\n type: 'DIAGNOSTICS_ANNOUNCE',\n diagnostics,\n } satisfies DiagnosticChannelMessage);\n break;\n }\n case 'DIAGNOSTICS_FETCH': {\n const { requestId, request } = event.data;\n if (request.instanceId !== manager.instanceId) {\n break;\n }\n\n const data = await manager.fetch(request);\n this._serveChannel.postMessage({\n type: 'DIAGNOSTICS_RESPONSE',\n requestId,\n data,\n } satisfies DiagnosticChannelMessage);\n break;\n }\n }\n };\n\n this._serveChannel.addEventListener('message', listener);\n this._ctx.onDispose(() => this._serveChannel.removeEventListener('message', listener));\n }\n\n async discover(): Promise<DiagnosticMetadata[]> {\n const diagnostics: DiagnosticMetadata[] = [];\n\n const collector = (event: MessageEvent) => {\n const data = event.data as DiagnosticChannelMessage;\n switch (data.type) {\n case 'DIAGNOSTICS_ANNOUNCE':\n diagnostics.push(...data.diagnostics);\n break;\n }\n };\n\n try {\n this._clientChannel.addEventListener('message', collector);\n this._clientChannel.postMessage({ type: 'DIAGNOSTICS_DISCOVER' } satisfies DiagnosticChannelMessage);\n\n await sleep(DISCOVER_TIME);\n\n // Dedup.\n const result: DiagnosticMetadata[] = [];\n for (const diagnostic of diagnostics) {\n if (!result.some((d) => d.id === diagnostic.id && d.instanceId === diagnostic.instanceId)) {\n result.push(diagnostic);\n }\n }\n\n return diagnostics;\n } finally {\n this._clientChannel.removeEventListener('message', collector);\n }\n }\n\n async fetch(request: DiagnosticsRequest): Promise<DiagnosticsData> {\n const requestId = createId();\n\n const trigger = new Trigger<DiagnosticsData>();\n const listener = (event: MessageEvent) => {\n const data = event.data as DiagnosticChannelMessage;\n if (data.type === 'DIAGNOSTICS_RESPONSE' && data.requestId === requestId) {\n trigger.wake(data.data);\n }\n };\n\n try {\n this._clientChannel.addEventListener('message', listener);\n this._clientChannel.postMessage({\n type: 'DIAGNOSTICS_FETCH',\n requestId,\n request,\n } satisfies DiagnosticChannelMessage);\n\n // NOTE: Must have await keyword in this block.\n const result = await trigger.wait({ timeout: DIAGNOSTICS_TIMEOUT });\n\n return result;\n } finally {\n this._clientChannel.removeEventListener('message', listener);\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\ntype TagType = number | string | boolean | null | undefined;\n\nexport interface MetricData {\n unit?: string;\n tags?: Record<string, TagType>;\n timestamp?: number;\n}\n\ninterface MetricsMethods {\n /**\n * Adds a value to a counter metric\n */\n increment(name: string, value?: number, data?: MetricData): void;\n /**\n * Adds a value to a distribution metric\n */\n distribution(name: string, value: number, data?: MetricData): void;\n /**\n * Adds a value to a set metric. Value must be a string or integer.\n */\n set(name: string, value: number | string, data?: MetricData): void;\n /**\n * Adds a value to a gauge metric\n */\n gauge(name: string, value: number, data?: MetricData): void;\n}\n\n/**\n * Allows metrics to be recorded within SDK code without requiring specific consumers.\n */\nexport class RemoteMetrics implements MetricsMethods {\n private _metrics = new Set<MetricsMethods>();\n\n registerProcessor(processor: MetricsMethods) {\n this._metrics.add(processor);\n }\n\n increment(name: string, value?: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.increment(name, value, data));\n }\n\n distribution(name: string, value: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.distribution(name, value, data));\n }\n\n set(name: string, value: number | string, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.set(name, value, data));\n }\n\n gauge(name: string, value: number, data?: MetricData) {\n return Array.from(this._metrics.values()).map((processor) => processor.gauge(name, value, data));\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type TracingSpan } from '../trace-processor';\n\ntype RemoteSpan = {\n end: () => void;\n};\n\ntype StartSpanOptions = {\n name: string;\n op?: string;\n attributes?: Record<string, any>;\n};\n\ninterface TracingMethods {\n startSpan: (options: StartSpanOptions) => RemoteSpan;\n}\n\n/**\n * Allows traces to be recorded within SDK code without requiring specific consumers.\n */\n// TODO(wittjosiah): Should probably just use otel. Use `any` for now to not depend on Sentry directly.\nexport class RemoteTracing {\n private _tracing: TracingMethods | undefined;\n private _spanMap = new Map<TracingSpan, RemoteSpan>();\n\n registerProcessor(processor: TracingMethods) {\n this._tracing = processor;\n }\n\n flushSpan(span: TracingSpan) {\n if (!this._tracing) {\n return;\n }\n\n if (!span.endTs) {\n const remoteSpan = this._tracing.startSpan({\n name: span.methodName,\n op: span.op ?? 'function',\n attributes: span.attributes,\n });\n this._spanMap.set(span, remoteSpan);\n } else {\n const remoteSpan = this._spanMap.get(span);\n if (remoteSpan) {\n remoteSpan.end();\n this._spanMap.delete(span);\n }\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Stream } from '@dxos/codec-protobuf';\nimport { type LogEntry } from '@dxos/protocols/proto/dxos/client/services';\nimport { type StreamTraceEvent, type TracingService } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { type TraceProcessor, type TraceSubscription } from './trace-processor';\n\nexport class TraceSender implements TracingService {\n constructor(private _traceProcessor: TraceProcessor) {}\n\n streamTrace(request: void): Stream<StreamTraceEvent> {\n return new Stream(({ ctx, next }) => {\n const flushEvents = (resources: Set<number> | null, spans: Set<number> | null, logs: LogEntry[] | null) => {\n const event: StreamTraceEvent = {\n resourceAdded: [],\n resourceRemoved: [],\n spanAdded: [],\n logAdded: [],\n };\n\n if (resources) {\n for (const id of resources) {\n const entry = this._traceProcessor.resources.get(id);\n if (entry) {\n event.resourceAdded!.push({ resource: entry.data });\n } else {\n event.resourceRemoved!.push({ id });\n }\n }\n } else {\n for (const entry of this._traceProcessor.resources.values()) {\n event.resourceAdded!.push({ resource: entry.data });\n }\n }\n\n if (spans) {\n for (const id of spans) {\n const span = this._traceProcessor.spans.get(id);\n if (span) {\n event.spanAdded!.push({ span });\n }\n }\n } else {\n for (const span of this._traceProcessor.spans.values()) {\n event.spanAdded!.push({ span });\n }\n }\n\n if (logs) {\n for (const log of logs) {\n event.logAdded!.push({ log });\n }\n } else {\n for (const log of this._traceProcessor.logs) {\n event.logAdded!.push({ log });\n }\n }\n\n if (event.resourceAdded!.length > 0 || event.resourceRemoved!.length > 0 || event.spanAdded!.length > 0) {\n next(event);\n }\n };\n\n const flush = () => {\n flushEvents(subscription.dirtyResources, subscription.dirtySpans, subscription.newLogs);\n subscription.dirtyResources.clear();\n subscription.dirtySpans.clear();\n subscription.newLogs.length = 0;\n };\n\n const subscription: TraceSubscription = {\n flush,\n dirtyResources: new Set(),\n dirtySpans: new Set(),\n newLogs: [],\n };\n this._traceProcessor.subscriptions.add(subscription);\n ctx.onDispose(() => {\n this._traceProcessor.subscriptions.delete(subscription);\n });\n\n flushEvents(null, null, null);\n });\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nexport abstract class BaseCounter {\n /**\n * @internal\n */\n _instance: any;\n\n name?: string;\n\n /**\n * @internal\n */\n _assign(instance: any, name: string) {\n this._instance = instance;\n this.name = name;\n }\n\n abstract getData(): Metric;\n\n _tick(time: number): void {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nexport class UnaryCounter extends BaseCounter {\n value = 0;\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(by = 1) {\n this.value += by;\n }\n\n getData(): Metric {\n return {\n name: this.name!,\n counter: {\n value: this.value,\n units: this.units,\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nconst MAX_BUCKETS = 60;\n\nexport class TimeSeriesCounter extends BaseCounter {\n private _currentValue = 0;\n private _totalValue = 0;\n private _buckets: number[] = [];\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(by = 1) {\n this._currentValue += by;\n this._totalValue += by;\n }\n\n override _tick(time: number): void {\n this._buckets.push(this._currentValue);\n if (this._buckets.length > MAX_BUCKETS) {\n this._buckets.shift();\n }\n this._currentValue = 0;\n }\n\n override getData(): Metric {\n return {\n name: this.name!,\n timeSeries: {\n tracks: [\n {\n name: this.name!,\n units: this.units,\n points: this._buckets.map((value, index) => ({\n value,\n })),\n total: this._totalValue,\n },\n ],\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nconst MAX_BUCKETS = 60;\n\nexport class TimeUsageCounter extends BaseCounter {\n private _currentValue = 0;\n private _totalValue = 0;\n private _buckets: number[] = [];\n\n private _lastTickTime = performance.now();\n\n record(time: number) {\n this._currentValue += time;\n this._totalValue += time;\n }\n\n beginRecording(): { end: () => void } {\n const start = performance.now();\n return {\n end: () => {\n const end = performance.now();\n this.record(end - start);\n },\n };\n }\n\n override _tick(time: number): void {\n const delta = time - this._lastTickTime;\n this._lastTickTime = time;\n\n const percentage = (this._currentValue / delta) * 100;\n this._buckets.push(percentage);\n if (this._buckets.length > MAX_BUCKETS) {\n this._buckets.shift();\n }\n this._currentValue = 0;\n }\n\n override getData(): Metric {\n return {\n name: this.name!,\n timeSeries: {\n tracks: [\n {\n name: this.name!,\n units: '%',\n points: this._buckets.map((value, index) => ({\n value,\n })),\n total: this._totalValue,\n },\n ],\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Metric } from '@dxos/protocols/proto/dxos/tracing';\n\nimport { BaseCounter } from './base';\n\nexport class MapCounter extends BaseCounter {\n values = new Map<string, number>();\n units?: string;\n\n constructor({ units }: { units?: string } = {}) {\n super();\n this.units = units;\n }\n\n inc(key: string, by = 1) {\n const prev = this.values.get(key) ?? 0;\n this.values.set(key, prev + by);\n }\n\n getData(): Metric {\n return {\n name: this.name!,\n multiCounter: {\n records: Array.from(this.values.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n units: this.units,\n },\n };\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { trace } from './api';\n\nexport * from './api';\nexport * from './symbols';\nexport * from './trace-processor';\nexport * from './trace-sender';\nexport * from './metrics';\nexport * from './diagnostic';\n\ntrace.diagnostic({\n id: 'process-info',\n name: 'Process Info',\n fetch: async () => {\n return {\n platform: globalThis.process?.platform,\n arch: globalThis.process?.arch,\n versions: globalThis.process?.versions,\n href: globalThis.location?.href,\n };\n },\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_async", "import_context", "symbolTracingContext", "Symbol", "getTracingContext", "target", "infoProperties", "metricsProperties", "TRACE_SPAN_ATTRIBUTE", "createId", "Math", "random", "toString", "slice", "DIAGNOSTICS_TIMEOUT", "TraceDiagnosticImpl", "constructor", "id", "fetch", "name", "_onUnregister", "unregister", "DiagnosticsManager", "instanceId", "registry", "Map", "_instanceTag", "setInstanceTag", "tag", "registerDiagnostic", "params", "impl", "get", "delete", "set", "list", "Array", "from", "values", "map", "diagnostic", "instanceTag", "request", "invariant", "data", "asyncTimeout", "err", "error", "stack", "DEFAULT_CHANNEL_NAME", "DISCOVER_TIME", "DiagnosticsChannel", "_channelName", "_ctx", "Context", "_serveChannel", "BroadcastChannel", "_clientChannel", "destroy", "dispose", "close", "unref", "serve", "manager", "listener", "event", "type", "diagnostics", "postMessage", "requestId", "addEventListener", "onDispose", "removeEventListener", "discover", "collector", "push", "sleep", "result", "some", "d", "trigger", "Trigger", "wake", "wait", "timeout", "RemoteMetrics", "_metrics", "Set", "registerProcessor", "processor", "add", "increment", "value", "distribution", "gauge", "RemoteTracing", "_spanMap", "_tracing", "flushSpan", "span", "endTs", "remoteSpan", "startSpan", "methodName", "op", "attributes", "end", "TraceSender", "_traceProcessor", "streamTrace", "Stream", "ctx", "next", "flushEvents", "resources", "spans", "logs", "resourceAdded", "resourceRemoved", "spanAdded", "logAdded", "entry", "resource", "log", "length", "flush", "subscription", "dirtyResources", "dirtySpans", "newLogs", "clear", "subscriptions", "ResourceEntry", "instance", "annotation", "sanitizedClassName", "sanitizeClassName", "className", "getMetric", "metrics", "find", "metric", "MAX_RESOURCE_RECORDS", "MAX_SPAN_RECORDS", "MAX_LOG_RECORDS", "REFRESH_INTERVAL", "MAX_INFO_OBJECT_DEPTH", "TraceProcessor", "diagnosticsChannel", "remoteMetrics", "remoteTracing", "resourceInstanceIndex", "WeakMap", "resourceIdList", "spanIdList", "_logProcessor", "config", "level", "LogLevel", "ERROR", "WARN", "TRACE", "scope", "meta", "S", "context", "getContextFromEntry", "key", "Object", "keys", "sanitizeValue", "entryToPush", "message", "timestamp", "Date", "file", "F", "line", "L", "resourceId", "_pushLog", "addProcessor", "bind", "refreshInterval", "setInterval", "refresh", "unrefTimeout", "createTraceResource", "size", "tracingContext", "getPrototypeOf", "_assign", "getPrototypeSpecificInstanceId", "info", "getResourceInfo", "links", "getResourceMetrics", "WeakRef", "_clearResources", "_markResourceDirty", "createTraceSender", "traceSpan", "TracingSpan", "_flushSpan", "addLink", "parent", "child", "opts", "getDiagnostics", "fromEntries", "entries", "filter", "INFO", "res", "options", "enum", "depth", "undefined", "_opts", "getData", "getResourceId", "findResourcesByClassName", "findResourcesByAnnotation", "deref", "time", "performance", "now", "_tick", "_changed", "oldInfo", "areEqualShallow", "oldMetrics", "runtimeSpan", "serialize", "_clearSpans", "_markSpanDirty", "shift", "nextId", "parentId", "startTs", "_showInBrowserTimeline", "showInBrowserTimeline", "parentCtx", "derive", "getAttribute", "markSuccess", "_markInBrowserTimeline", "markError", "serializeError", "toFixed", "measure", "start", "Error", "String", "TRACE_PROCESSOR", "globalThis", "traceProcessor", "resourceEntry", "toJSON", "isSetLike", "isMapLike", "isArray", "item", "truncate", "a", "b", "SANITIZE_REGEX", "m", "match", "klass", "rest", "defineProperty", "propertyKey", "descriptor", "mark", "method", "args", "callArgs", "apply", "metricsCounter", "trace", "BaseCounter", "_instance", "UnaryCounter", "units", "inc", "by", "counter", "MAX_BUCKETS", "TimeSeriesCounter", "_currentValue", "_totalValue", "_buckets", "timeSeries", "tracks", "points", "index", "total", "TimeUsageCounter", "_lastTickTime", "record", "beginRecording", "delta", "percentage", "MapCounter", "prev", "multiCounter", "records", "platform", "process", "arch", "versions", "href", "location"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/common/tracing/src/symbols.ts":{"bytes":1851,"imports":[],"format":"esm"},"packages/common/tracing/src/util.ts":{"bytes":814,"imports":[],"format":"esm"},"packages/common/tracing/src/diagnostic.ts":{"bytes":8459,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/diagnostics-channel.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/common/tracing/src/symbols.ts":{"bytes":1851,"imports":[],"format":"esm"},"packages/common/tracing/src/util.ts":{"bytes":814,"imports":[],"format":"esm"},"packages/common/tracing/src/diagnostic.ts":{"bytes":8459,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/diagnostics-channel.ts":{"bytes":15015,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"},{"path":"packages/common/tracing/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/common/tracing/src/remote/metrics.ts":{"bytes":4825,"imports":[],"format":"esm"},"packages/common/tracing/src/remote/tracing.ts":{"bytes":4029,"imports":[],"format":"esm"},"packages/common/tracing/src/remote/index.ts":{"bytes":588,"imports":[{"path":"packages/common/tracing/src/remote/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/common/tracing/src/remote/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"packages/common/tracing/src/trace-sender.ts":{"bytes":10534,"imports":[{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true}],"format":"esm"},"packages/common/tracing/src/trace-processor.ts":{"bytes":55577,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"},{"path":"packages/common/tracing/src/diagnostics-channel.ts","kind":"import-statement","original":"./diagnostics-channel"},{"path":"packages/common/tracing/src/remote/index.ts","kind":"import-statement","original":"./remote"},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-sender.ts","kind":"import-statement","original":"./trace-sender"}],"format":"esm"},"packages/common/tracing/src/api.ts":{"bytes":11244,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-processor.ts","kind":"import-statement","original":"./trace-processor"}],"format":"esm"},"packages/common/tracing/src/metrics/base.ts":{"bytes":1498,"imports":[],"format":"esm"},"packages/common/tracing/src/metrics/unary-counter.ts":{"bytes":2184,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/time-series-counter.ts":{"bytes":4352,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/time-usage-counter.ts":{"bytes":5345,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/map-counter.ts":{"bytes":3041,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/tracing/src/metrics/index.ts":{"bytes":928,"imports":[{"path":"packages/common/tracing/src/metrics/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/common/tracing/src/metrics/unary-counter.ts","kind":"import-statement","original":"./unary-counter"},{"path":"packages/common/tracing/src/metrics/time-series-counter.ts","kind":"import-statement","original":"./time-series-counter"},{"path":"packages/common/tracing/src/metrics/time-usage-counter.ts","kind":"import-statement","original":"./time-usage-counter"},{"path":"packages/common/tracing/src/metrics/map-counter.ts","kind":"import-statement","original":"./map-counter"}],"format":"esm"},"packages/common/tracing/src/index.ts":{"bytes":2226,"imports":[{"path":"packages/common/tracing/src/api.ts","kind":"import-statement","original":"./api"},{"path":"packages/common/tracing/src/api.ts","kind":"import-statement","original":"./api"},{"path":"packages/common/tracing/src/symbols.ts","kind":"import-statement","original":"./symbols"},{"path":"packages/common/tracing/src/trace-processor.ts","kind":"import-statement","original":"./trace-processor"},{"path":"packages/common/tracing/src/trace-sender.ts","kind":"import-statement","original":"./trace-sender"},{"path":"packages/common/tracing/src/metrics/index.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/common/tracing/src/diagnostic.ts","kind":"import-statement","original":"./diagnostic"}],"format":"esm"}},"outputs":{"packages/common/tracing/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64550},"packages/common/tracing/dist/lib/node/index.cjs":{"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true}],"exports":["BaseCounter","DIAGNOSTICS_TIMEOUT","DiagnosticsManager","MapCounter","ResourceEntry","TRACE_PROCESSOR","TRACE_SPAN_ATTRIBUTE","TimeSeriesCounter","TimeUsageCounter","TraceDiagnosticImpl","TraceProcessor","TraceSender","TracingSpan","UnaryCounter","getTracingContext","sanitizeClassName","symbolTracingContext","trace"],"entryPoint":"packages/common/tracing/src/index.ts","inputs":{"packages/common/tracing/src/api.ts":{"bytesInOutput":1843},"packages/common/tracing/src/symbols.ts":{"bytesInOutput":245},"packages/common/tracing/src/trace-processor.ts":{"bytesInOutput":12507},"packages/common/tracing/src/diagnostic.ts":{"bytesInOutput":2050},"packages/common/tracing/src/util.ts":{"bytesInOutput":58},"packages/common/tracing/src/diagnostics-channel.ts":{"bytesInOutput":3389},"packages/common/tracing/src/remote/metrics.ts":{"bytesInOutput":729},"packages/common/tracing/src/remote/index.ts":{"bytesInOutput":0},"packages/common/tracing/src/remote/tracing.ts":{"bytesInOutput":638},"packages/common/tracing/src/trace-sender.ts":{"bytesInOutput":2555},"packages/common/tracing/src/index.ts":{"bytesInOutput":284},"packages/common/tracing/src/metrics/base.ts":{"bytesInOutput":159},"packages/common/tracing/src/metrics/index.ts":{"bytesInOutput":0},"packages/common/tracing/src/metrics/unary-counter.ts":{"bytesInOutput":324},"packages/common/tracing/src/metrics/time-series-counter.ts":{"bytesInOutput":812},"packages/common/tracing/src/metrics/time-usage-counter.ts":{"bytesInOutput":1136},"packages/common/tracing/src/metrics/map-counter.ts":{"bytesInOutput":509}},"bytes":28504}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/tracing",
|
|
3
|
-
"version": "0.5.9-main.
|
|
3
|
+
"version": "0.5.9-main.a75fa71",
|
|
4
4
|
"description": "Async utilities.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -16,18 +16,18 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@dxos/async": "0.5.9-main.
|
|
20
|
-
"@dxos/
|
|
21
|
-
"@dxos/
|
|
22
|
-
"@dxos/debug": "0.5.9-main.
|
|
23
|
-
"@dxos/
|
|
24
|
-
"@dxos/
|
|
25
|
-
"@dxos/
|
|
26
|
-
"@dxos/
|
|
27
|
-
"@dxos/util": "0.5.9-main.
|
|
19
|
+
"@dxos/async": "0.5.9-main.a75fa71",
|
|
20
|
+
"@dxos/context": "0.5.9-main.a75fa71",
|
|
21
|
+
"@dxos/codec-protobuf": "0.5.9-main.a75fa71",
|
|
22
|
+
"@dxos/debug": "0.5.9-main.a75fa71",
|
|
23
|
+
"@dxos/log": "0.5.9-main.a75fa71",
|
|
24
|
+
"@dxos/invariant": "0.5.9-main.a75fa71",
|
|
25
|
+
"@dxos/protocols": "0.5.9-main.a75fa71",
|
|
26
|
+
"@dxos/node-std": "0.5.9-main.a75fa71",
|
|
27
|
+
"@dxos/util": "0.5.9-main.a75fa71"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@dxos/test": "0.5.9-main.
|
|
30
|
+
"@dxos/test": "0.5.9-main.a75fa71"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|