@trigger.dev/core 0.0.0-prerelease-20250213143202 → 0.0.0-python-preview-20250226140121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/schemas/api.d.ts +1999 -1999
- package/dist/commonjs/schemas/events.d.ts +8 -8
- package/dist/commonjs/schemas/fetch.d.ts +54 -54
- package/dist/commonjs/schemas/integrations.d.ts +4 -4
- package/dist/commonjs/schemas/notifications.d.ts +80 -80
- package/dist/commonjs/schemas/properties.d.ts +4 -4
- package/dist/commonjs/schemas/request.d.ts +4 -4
- package/dist/commonjs/schemas/requestFilter.d.ts +2 -2
- package/dist/commonjs/schemas/runs.d.ts +39 -39
- package/dist/commonjs/schemas/schedules.d.ts +12 -12
- package/dist/commonjs/schemas/statuses.d.ts +24 -24
- package/dist/commonjs/schemas/tasks.d.ts +50 -50
- package/dist/commonjs/schemas/triggers.d.ts +36 -36
- package/dist/commonjs/v3/apiClient/index.d.ts +51 -51
- package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
- package/dist/commonjs/v3/apps/provider.d.ts +1 -0
- package/dist/commonjs/v3/apps/provider.js +1 -0
- package/dist/commonjs/v3/apps/provider.js.map +1 -1
- package/dist/commonjs/v3/errors.d.ts +1 -0
- package/dist/commonjs/v3/errors.js +31 -0
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +1 -0
- package/dist/commonjs/v3/index.js +1 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/links.d.ts +3 -0
- package/dist/commonjs/v3/links.js +3 -0
- package/dist/commonjs/v3/links.js.map +1 -1
- package/dist/commonjs/v3/run-timeline-metrics-api.d.ts +2 -0
- package/dist/commonjs/v3/run-timeline-metrics-api.js +8 -0
- package/dist/commonjs/v3/run-timeline-metrics-api.js.map +1 -0
- package/dist/commonjs/v3/runTimelineMetrics/index.d.ts +23 -0
- package/dist/commonjs/v3/runTimelineMetrics/index.js +160 -0
- package/dist/commonjs/v3/runTimelineMetrics/index.js.map +1 -0
- package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +13 -0
- package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js +52 -0
- package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -0
- package/dist/commonjs/v3/runTimelineMetrics/types.d.ts +11 -0
- package/dist/commonjs/v3/runTimelineMetrics/types.js +3 -0
- package/dist/commonjs/v3/runTimelineMetrics/types.js.map +1 -0
- package/dist/commonjs/v3/schemas/api.d.ts +293 -293
- package/dist/commonjs/v3/schemas/build.d.ts +196 -196
- package/dist/commonjs/v3/schemas/common.d.ts +24 -24
- package/dist/commonjs/v3/schemas/common.js +1 -0
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/fetch.d.ts +13 -13
- package/dist/commonjs/v3/schemas/messages.d.ts +6605 -4119
- package/dist/commonjs/v3/schemas/messages.js +22 -0
- package/dist/commonjs/v3/schemas/messages.js.map +1 -1
- package/dist/commonjs/v3/schemas/openTelemetry.d.ts +20 -20
- package/dist/commonjs/v3/schemas/resources.d.ts +52 -52
- package/dist/commonjs/v3/schemas/schemas.d.ts +485 -352
- package/dist/commonjs/v3/schemas/schemas.js +17 -1
- package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
- package/dist/commonjs/v3/schemas/webhooks.d.ts +238 -238
- package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/commonjs/v3/taskContext/index.js +1 -1
- package/dist/commonjs/v3/taskContext/index.js.map +1 -1
- package/dist/commonjs/v3/tracer.d.ts +10 -2
- package/dist/commonjs/v3/tracer.js +13 -4
- package/dist/commonjs/v3/tracer.js.map +1 -1
- package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +19 -9
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/v3/zodMessageHandler.d.ts +2 -2
- package/dist/commonjs/v3/zodSocket.d.ts +2 -2
- package/dist/commonjs/v3/zodSocket.js +3 -2
- package/dist/commonjs/v3/zodSocket.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/schemas/api.d.ts +2001 -2001
- package/dist/esm/schemas/events.d.ts +8 -8
- package/dist/esm/schemas/fetch.d.ts +54 -54
- package/dist/esm/schemas/integrations.d.ts +4 -4
- package/dist/esm/schemas/notifications.d.ts +80 -80
- package/dist/esm/schemas/properties.d.ts +4 -4
- package/dist/esm/schemas/request.d.ts +4 -4
- package/dist/esm/schemas/requestFilter.d.ts +2 -2
- package/dist/esm/schemas/runs.d.ts +39 -39
- package/dist/esm/schemas/schedules.d.ts +12 -12
- package/dist/esm/schemas/statuses.d.ts +24 -24
- package/dist/esm/schemas/tasks.d.ts +50 -50
- package/dist/esm/schemas/triggers.d.ts +36 -36
- package/dist/esm/v3/apiClient/index.d.ts +51 -51
- package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
- package/dist/esm/v3/apps/provider.d.ts +1 -0
- package/dist/esm/v3/apps/provider.js +1 -0
- package/dist/esm/v3/apps/provider.js.map +1 -1
- package/dist/esm/v3/errors.d.ts +1 -0
- package/dist/esm/v3/errors.js +30 -0
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/index.d.ts +1 -0
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/links.d.ts +3 -0
- package/dist/esm/v3/links.js +3 -0
- package/dist/esm/v3/links.js.map +1 -1
- package/dist/esm/v3/run-timeline-metrics-api.d.ts +2 -0
- package/dist/esm/v3/run-timeline-metrics-api.js +5 -0
- package/dist/esm/v3/run-timeline-metrics-api.js.map +1 -0
- package/dist/esm/v3/runTimelineMetrics/index.d.ts +23 -0
- package/dist/esm/v3/runTimelineMetrics/index.js +156 -0
- package/dist/esm/v3/runTimelineMetrics/index.js.map +1 -0
- package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +13 -0
- package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js +47 -0
- package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -0
- package/dist/esm/v3/runTimelineMetrics/types.d.ts +11 -0
- package/dist/esm/v3/runTimelineMetrics/types.js +2 -0
- package/dist/esm/v3/runTimelineMetrics/types.js.map +1 -0
- package/dist/esm/v3/schemas/api.d.ts +293 -293
- package/dist/esm/v3/schemas/build.d.ts +196 -196
- package/dist/esm/v3/schemas/common.d.ts +24 -24
- package/dist/esm/v3/schemas/common.js +1 -0
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/fetch.d.ts +13 -13
- package/dist/esm/v3/schemas/messages.d.ts +6605 -4119
- package/dist/esm/v3/schemas/messages.js +23 -1
- package/dist/esm/v3/schemas/messages.js.map +1 -1
- package/dist/esm/v3/schemas/openTelemetry.d.ts +20 -20
- package/dist/esm/v3/schemas/resources.d.ts +52 -52
- package/dist/esm/v3/schemas/schemas.d.ts +485 -352
- package/dist/esm/v3/schemas/schemas.js +16 -0
- package/dist/esm/v3/schemas/schemas.js.map +1 -1
- package/dist/esm/v3/schemas/webhooks.d.ts +238 -238
- package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/esm/v3/taskContext/index.js +1 -1
- package/dist/esm/v3/taskContext/index.js.map +1 -1
- package/dist/esm/v3/tracer.d.ts +10 -2
- package/dist/esm/v3/tracer.js +13 -4
- package/dist/esm/v3/tracer.js.map +1 -1
- package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +20 -10
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/v3/zodMessageHandler.d.ts +2 -2
- package/dist/esm/v3/zodSocket.d.ts +2 -2
- package/dist/esm/v3/zodSocket.js +3 -2
- package/dist/esm/v3/zodSocket.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Attributes } from "@opentelemetry/api";
|
|
2
|
+
import { TriggerTracerSpanEvent } from "../tracer.js";
|
|
3
|
+
import { RunTimelineMetric, RunTimelineMetricsManager } from "./types.js";
|
|
4
|
+
export declare class RunTimelineMetricsAPI implements RunTimelineMetricsManager {
|
|
5
|
+
#private;
|
|
6
|
+
private static _instance?;
|
|
7
|
+
private constructor();
|
|
8
|
+
static getInstance(): RunTimelineMetricsAPI;
|
|
9
|
+
registerMetric(metric: RunTimelineMetric): void;
|
|
10
|
+
getMetrics(): RunTimelineMetric[];
|
|
11
|
+
/**
|
|
12
|
+
* Measures the execution time of an async function and registers it as a metric
|
|
13
|
+
* @param metricName The name of the metric
|
|
14
|
+
* @param eventName The event name
|
|
15
|
+
* @param attributesOrCallback Optional attributes or the callback function
|
|
16
|
+
* @param callbackFn The async function to measure (if attributes were provided)
|
|
17
|
+
* @returns The result of the callback function
|
|
18
|
+
*/
|
|
19
|
+
measureMetric<T>(metricName: string, eventName: string, attributesOrCallback: Attributes | (() => Promise<T>), callbackFn?: () => Promise<T>): Promise<T>;
|
|
20
|
+
convertMetricsToSpanEvents(): TriggerTracerSpanEvent[];
|
|
21
|
+
convertMetricsToSpanAttributes(): Attributes;
|
|
22
|
+
setGlobalManager(manager: RunTimelineMetricsManager): boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { getGlobal, registerGlobal } from "../utils/globals.js";
|
|
2
|
+
import { NoopRunTimelineMetricsManager } from "./runTimelineMetricsManager.js";
|
|
3
|
+
import { flattenAttributes } from "../utils/flattenAttributes.js";
|
|
4
|
+
import { SemanticInternalAttributes } from "../semanticInternalAttributes.js";
|
|
5
|
+
const API_NAME = "run-timeline-metrics";
|
|
6
|
+
const NOOP_MANAGER = new NoopRunTimelineMetricsManager();
|
|
7
|
+
export class RunTimelineMetricsAPI {
|
|
8
|
+
static _instance;
|
|
9
|
+
constructor() { }
|
|
10
|
+
static getInstance() {
|
|
11
|
+
if (!this._instance) {
|
|
12
|
+
this._instance = new RunTimelineMetricsAPI();
|
|
13
|
+
}
|
|
14
|
+
return this._instance;
|
|
15
|
+
}
|
|
16
|
+
registerMetric(metric) {
|
|
17
|
+
this.#getManager().registerMetric(metric);
|
|
18
|
+
}
|
|
19
|
+
getMetrics() {
|
|
20
|
+
return this.#getManager().getMetrics();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Measures the execution time of an async function and registers it as a metric
|
|
24
|
+
* @param metricName The name of the metric
|
|
25
|
+
* @param eventName The event name
|
|
26
|
+
* @param attributesOrCallback Optional attributes or the callback function
|
|
27
|
+
* @param callbackFn The async function to measure (if attributes were provided)
|
|
28
|
+
* @returns The result of the callback function
|
|
29
|
+
*/
|
|
30
|
+
async measureMetric(metricName, eventName, attributesOrCallback, callbackFn) {
|
|
31
|
+
// Handle overloaded function signature
|
|
32
|
+
let attributes = {};
|
|
33
|
+
let callback;
|
|
34
|
+
if (typeof attributesOrCallback === "function") {
|
|
35
|
+
callback = attributesOrCallback;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
attributes = attributesOrCallback || {};
|
|
39
|
+
if (!callbackFn) {
|
|
40
|
+
throw new Error("Callback function is required when attributes are provided");
|
|
41
|
+
}
|
|
42
|
+
callback = callbackFn;
|
|
43
|
+
}
|
|
44
|
+
// Record start time
|
|
45
|
+
const startTime = Date.now();
|
|
46
|
+
try {
|
|
47
|
+
// Execute the callback
|
|
48
|
+
const result = await callback();
|
|
49
|
+
// Calculate duration
|
|
50
|
+
const duration = Date.now() - startTime;
|
|
51
|
+
// Register the metric
|
|
52
|
+
this.registerMetric({
|
|
53
|
+
name: metricName,
|
|
54
|
+
event: eventName,
|
|
55
|
+
attributes: {
|
|
56
|
+
...attributes,
|
|
57
|
+
duration,
|
|
58
|
+
},
|
|
59
|
+
timestamp: startTime,
|
|
60
|
+
});
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Register the metric even if there's an error, but mark it as failed
|
|
65
|
+
const duration = Date.now() - startTime;
|
|
66
|
+
this.registerMetric({
|
|
67
|
+
name: metricName,
|
|
68
|
+
event: eventName,
|
|
69
|
+
attributes: {
|
|
70
|
+
...attributes,
|
|
71
|
+
duration,
|
|
72
|
+
error: error instanceof Error ? error.message : String(error),
|
|
73
|
+
status: "failed",
|
|
74
|
+
},
|
|
75
|
+
timestamp: startTime,
|
|
76
|
+
});
|
|
77
|
+
// Re-throw the error
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
convertMetricsToSpanEvents() {
|
|
82
|
+
const metrics = this.getMetrics();
|
|
83
|
+
const spanEvents = metrics.map((metric) => {
|
|
84
|
+
return {
|
|
85
|
+
name: metric.name,
|
|
86
|
+
startTime: metric.timestamp,
|
|
87
|
+
attributes: {
|
|
88
|
+
...metric.attributes,
|
|
89
|
+
event: metric.event,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
return spanEvents;
|
|
94
|
+
}
|
|
95
|
+
convertMetricsToSpanAttributes() {
|
|
96
|
+
const metrics = this.getMetrics();
|
|
97
|
+
if (metrics.length === 0) {
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
// Group metrics by name
|
|
101
|
+
const metricsByName = metrics.reduce((acc, metric) => {
|
|
102
|
+
if (!acc[metric.name]) {
|
|
103
|
+
acc[metric.name] = [];
|
|
104
|
+
}
|
|
105
|
+
acc[metric.name].push(metric);
|
|
106
|
+
return acc;
|
|
107
|
+
}, {});
|
|
108
|
+
// Process each metric type
|
|
109
|
+
const reducedMetrics = metrics.reduce((acc, metric) => {
|
|
110
|
+
acc[metric.event] = {
|
|
111
|
+
name: metric.name,
|
|
112
|
+
timestamp: metric.timestamp,
|
|
113
|
+
event: metric.event,
|
|
114
|
+
...flattenAttributes(metric.attributes, "attributes"),
|
|
115
|
+
};
|
|
116
|
+
return acc;
|
|
117
|
+
}, {});
|
|
118
|
+
const metricEventRollups = {};
|
|
119
|
+
// Calculate duration for each metric type
|
|
120
|
+
// Calculate duration for each metric type
|
|
121
|
+
for (const [metricName, metricEvents] of Object.entries(metricsByName)) {
|
|
122
|
+
// Skip if there are no events for this metric
|
|
123
|
+
if (metricEvents.length === 0)
|
|
124
|
+
continue;
|
|
125
|
+
// Sort events by timestamp
|
|
126
|
+
const sortedEvents = [...metricEvents].sort((a, b) => a.timestamp - b.timestamp);
|
|
127
|
+
// Get first event timestamp (we know it exists because we checked length above)
|
|
128
|
+
const firstTimestamp = sortedEvents[0].timestamp;
|
|
129
|
+
// Get last event (we know it exists because we checked length above)
|
|
130
|
+
const lastEvent = sortedEvents[sortedEvents.length - 1];
|
|
131
|
+
// Calculate total duration: from first event to (last event + its duration)
|
|
132
|
+
// Use optional chaining and nullish coalescing for safety
|
|
133
|
+
const lastEventDuration = lastEvent.attributes?.duration ?? 0;
|
|
134
|
+
const lastEventEndTime = lastEvent.timestamp + lastEventDuration;
|
|
135
|
+
// Store the total duration for this metric type
|
|
136
|
+
const duration = lastEventEndTime - firstTimestamp;
|
|
137
|
+
const timestamp = firstTimestamp;
|
|
138
|
+
metricEventRollups[metricName] = {
|
|
139
|
+
name: metricName,
|
|
140
|
+
duration,
|
|
141
|
+
timestamp,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
...flattenAttributes(reducedMetrics, SemanticInternalAttributes.METRIC_EVENTS),
|
|
146
|
+
...flattenAttributes(metricEventRollups, SemanticInternalAttributes.METRIC_EVENTS),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
setGlobalManager(manager) {
|
|
150
|
+
return registerGlobal(API_NAME, manager);
|
|
151
|
+
}
|
|
152
|
+
#getManager() {
|
|
153
|
+
return getGlobal(API_NAME) ?? NOOP_MANAGER;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TaskRunExecutionMetrics } from "../schemas/schemas.js";
|
|
2
|
+
import { RunTimelineMetric, RunTimelineMetricsManager } from "./types.js";
|
|
3
|
+
export declare class StandardRunTimelineMetricsManager implements RunTimelineMetricsManager {
|
|
4
|
+
private _metrics;
|
|
5
|
+
registerMetric(metric: RunTimelineMetric): void;
|
|
6
|
+
getMetrics(): RunTimelineMetric[];
|
|
7
|
+
registerMetricsFromExecution(metrics?: TaskRunExecutionMetrics): void;
|
|
8
|
+
seedMetricsFromEnvironment(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare class NoopRunTimelineMetricsManager implements RunTimelineMetricsManager {
|
|
11
|
+
registerMetric(metric: RunTimelineMetric): void;
|
|
12
|
+
getMetrics(): RunTimelineMetric[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { getEnvVar } from "../utils/getEnv.js";
|
|
2
|
+
export class StandardRunTimelineMetricsManager {
|
|
3
|
+
_metrics = [];
|
|
4
|
+
registerMetric(metric) {
|
|
5
|
+
this._metrics.push(metric);
|
|
6
|
+
}
|
|
7
|
+
getMetrics() {
|
|
8
|
+
return this._metrics;
|
|
9
|
+
}
|
|
10
|
+
registerMetricsFromExecution(metrics) {
|
|
11
|
+
if (metrics) {
|
|
12
|
+
metrics.forEach((metric) => {
|
|
13
|
+
this.registerMetric({
|
|
14
|
+
name: `trigger.dev/${metric.name}`,
|
|
15
|
+
event: metric.event,
|
|
16
|
+
timestamp: metric.timestamp,
|
|
17
|
+
attributes: {
|
|
18
|
+
duration: metric.duration,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
seedMetricsFromEnvironment() {
|
|
25
|
+
const forkStartTime = getEnvVar("TRIGGER_PROCESS_FORK_START_TIME");
|
|
26
|
+
if (typeof forkStartTime === "string") {
|
|
27
|
+
const forkStartTimeMs = parseInt(forkStartTime, 10);
|
|
28
|
+
this.registerMetric({
|
|
29
|
+
name: "trigger.dev/start",
|
|
30
|
+
event: "fork",
|
|
31
|
+
attributes: {
|
|
32
|
+
duration: Date.now() - forkStartTimeMs,
|
|
33
|
+
},
|
|
34
|
+
timestamp: forkStartTimeMs,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class NoopRunTimelineMetricsManager {
|
|
40
|
+
registerMetric(metric) {
|
|
41
|
+
// Do nothing
|
|
42
|
+
}
|
|
43
|
+
getMetrics() {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=runTimelineMetricsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runTimelineMetricsManager.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/runTimelineMetricsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,OAAO,iCAAiC;IACpC,QAAQ,GAAwB,EAAE,CAAC;IAE3C,cAAc,CAAC,MAAyB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,4BAA4B,CAAC,OAAiC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC;oBAClB,IAAI,EAAE,eAAe,MAAM,CAAC,IAAI,EAAE;oBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE;wBACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,MAAM,aAAa,GAAG,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAEnE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,CAAC;gBAClB,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe;iBACvC;gBACD,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,6BAA6B;IACxC,cAAc,CAAC,MAAyB;QACtC,aAAa;IACf,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Attributes } from "@opentelemetry/api";
|
|
2
|
+
export type RunTimelineMetric = {
|
|
3
|
+
name: string;
|
|
4
|
+
event: string;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
attributes?: Attributes;
|
|
7
|
+
};
|
|
8
|
+
export interface RunTimelineMetricsManager {
|
|
9
|
+
registerMetric(metric: RunTimelineMetric): void;
|
|
10
|
+
getMetrics(): RunTimelineMetric[];
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/types.ts"],"names":[],"mappings":""}
|