@module-federation/observability-plugin 0.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AI_TROUBLESHOOTING.md +498 -0
- package/README.md +295 -0
- package/dist/AI_TROUBLESHOOTING.md +498 -0
- package/dist/README.md +295 -0
- package/dist/build.d.ts +194 -0
- package/dist/build.js +710 -0
- package/dist/esm/build.js +679 -0
- package/dist/esm/index.js +1442 -0
- package/dist/esm/node.js +156 -0
- package/dist/index.d.ts +269 -0
- package/dist/index.js +1444 -0
- package/dist/node.d.ts +13 -0
- package/dist/node.js +158 -0
- package/package.json +64 -0
package/dist/esm/node.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { ObservabilityPlugin as ObservabilityPlugin$1 } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/node.ts
|
|
4
|
+
const DEFAULT_NODE_DIRECTORY = ".mf/observability";
|
|
5
|
+
const DEFAULT_LATEST_FILE = "latest.json";
|
|
6
|
+
const DEFAULT_EVENTS_FILE = "events.jsonl";
|
|
7
|
+
let nodeOutputModulesPromise;
|
|
8
|
+
function getNodeProcess() {
|
|
9
|
+
return globalThis.process;
|
|
10
|
+
}
|
|
11
|
+
function isNodeEnvironment() {
|
|
12
|
+
return Boolean(getNodeProcess()?.versions?.node);
|
|
13
|
+
}
|
|
14
|
+
function getNativeNodeRequire() {
|
|
15
|
+
if (typeof __non_webpack_require__ === "function") return __non_webpack_require__;
|
|
16
|
+
const globalRequire = globalThis.__non_webpack_require__;
|
|
17
|
+
if (typeof globalRequire === "function") return globalRequire;
|
|
18
|
+
try {
|
|
19
|
+
return Function("return typeof require === \"function\" ? require : undefined")();
|
|
20
|
+
} catch {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function getRuntimeImport() {
|
|
25
|
+
try {
|
|
26
|
+
return Function("specifier", "return import(specifier)");
|
|
27
|
+
} catch {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function unwrapDefaultExport(moduleValue) {
|
|
32
|
+
return moduleValue.default || moduleValue;
|
|
33
|
+
}
|
|
34
|
+
async function getNodeOutputModules() {
|
|
35
|
+
if (!isNodeEnvironment()) return;
|
|
36
|
+
if (nodeOutputModulesPromise) return nodeOutputModulesPromise;
|
|
37
|
+
nodeOutputModulesPromise = (async () => {
|
|
38
|
+
const nativeRequire = getNativeNodeRequire();
|
|
39
|
+
if (nativeRequire) try {
|
|
40
|
+
return {
|
|
41
|
+
fs: nativeRequire("node:fs"),
|
|
42
|
+
path: nativeRequire("node:path")
|
|
43
|
+
};
|
|
44
|
+
} catch {}
|
|
45
|
+
const runtimeImport = getRuntimeImport();
|
|
46
|
+
if (!runtimeImport) return;
|
|
47
|
+
try {
|
|
48
|
+
const [fsModule, pathModule] = await Promise.all([runtimeImport("node:fs"), runtimeImport("node:path")]);
|
|
49
|
+
return {
|
|
50
|
+
fs: unwrapDefaultExport(fsModule),
|
|
51
|
+
path: unwrapDefaultExport(pathModule)
|
|
52
|
+
};
|
|
53
|
+
} catch {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
})();
|
|
57
|
+
return nodeOutputModulesPromise;
|
|
58
|
+
}
|
|
59
|
+
function getNodeOutputConfig(options) {
|
|
60
|
+
return {
|
|
61
|
+
directory: options.directory || DEFAULT_NODE_DIRECTORY,
|
|
62
|
+
latestFile: options.latestFile || DEFAULT_LATEST_FILE,
|
|
63
|
+
eventsFile: options.eventsFile || DEFAULT_EVENTS_FILE
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function shouldUseNodeOutput(options) {
|
|
67
|
+
return options.enabled !== false && options.fileOutput === true && isNodeEnvironment();
|
|
68
|
+
}
|
|
69
|
+
function shouldUseConsole(options) {
|
|
70
|
+
return options.console !== false;
|
|
71
|
+
}
|
|
72
|
+
function getNodeLatestPathForConsole(options) {
|
|
73
|
+
const config = getNodeOutputConfig(options);
|
|
74
|
+
return `${config.directory}/${config.latestFile}`;
|
|
75
|
+
}
|
|
76
|
+
function getNodeEventsPathForConsole(options) {
|
|
77
|
+
const config = getNodeOutputConfig(options);
|
|
78
|
+
return `${config.directory}/${config.eventsFile}`;
|
|
79
|
+
}
|
|
80
|
+
function isErrorEvent(event) {
|
|
81
|
+
return event.status === "error" || event.status === "complete" && Boolean(event.errorName || event.errorMessage);
|
|
82
|
+
}
|
|
83
|
+
function getRawStack(error) {
|
|
84
|
+
if (error instanceof Error) return error.stack || error.message;
|
|
85
|
+
}
|
|
86
|
+
async function writeNodeOutput(options, event, report) {
|
|
87
|
+
const modules = await getNodeOutputModules();
|
|
88
|
+
if (!modules) return;
|
|
89
|
+
const config = getNodeOutputConfig(options);
|
|
90
|
+
const cwd = getNodeProcess()?.cwd?.() || ".";
|
|
91
|
+
const directory = modules.path.isAbsolute(config.directory) ? config.directory : modules.path.resolve(cwd, config.directory);
|
|
92
|
+
const latestFile = modules.path.join(directory, config.latestFile);
|
|
93
|
+
const eventsFile = modules.path.join(directory, config.eventsFile);
|
|
94
|
+
modules.fs.mkdirSync(directory, { recursive: true });
|
|
95
|
+
modules.fs.writeFileSync(latestFile, `${JSON.stringify(report, null, 2)}\n`, "utf8");
|
|
96
|
+
modules.fs.appendFileSync(eventsFile, `${JSON.stringify(event)}\n`, "utf8");
|
|
97
|
+
}
|
|
98
|
+
function emitNodeConsoleHint(options, event, report, context, reportedTraceIds, rawStack) {
|
|
99
|
+
if (!isErrorEvent(event) || !shouldUseConsole(options) || reportedTraceIds.has(report.traceId)) return;
|
|
100
|
+
reportedTraceIds.add(report.traceId);
|
|
101
|
+
const lines = [
|
|
102
|
+
"[Module Federation] Observability report generated",
|
|
103
|
+
`traceId: ${report.traceId}`,
|
|
104
|
+
`phase: ${report.failedPhase || event.phase}`
|
|
105
|
+
];
|
|
106
|
+
if (report.requestId) lines.push(`requestId: ${report.requestId}`);
|
|
107
|
+
if (report.errorCode) lines.push(`errorCode: ${report.errorCode}`);
|
|
108
|
+
if (report.shared?.name) lines.push(`shared: ${report.shared.name}`);
|
|
109
|
+
if (shouldUseNodeOutput(options)) {
|
|
110
|
+
lines.push(`latest: ${getNodeLatestPathForConsole(options)}`);
|
|
111
|
+
lines.push(`events: ${getNodeEventsPathForConsole(options)}`);
|
|
112
|
+
} else lines.push(`read: observability.getReport(${JSON.stringify(report.traceId)})`);
|
|
113
|
+
if (options.printRawStack === true && rawStack) lines.push("rawStack:", rawStack);
|
|
114
|
+
try {
|
|
115
|
+
console.error(lines.join("\n"));
|
|
116
|
+
} catch {}
|
|
117
|
+
}
|
|
118
|
+
function ObservabilityPlugin(options = {}) {
|
|
119
|
+
let nodeWriteQueue = Promise.resolve();
|
|
120
|
+
const consoleReportedTraceIds = /* @__PURE__ */ new Set();
|
|
121
|
+
const rawStackByTraceId = /* @__PURE__ */ new Map();
|
|
122
|
+
const observability = ObservabilityPlugin$1({
|
|
123
|
+
...options,
|
|
124
|
+
console: false,
|
|
125
|
+
browser: void 0,
|
|
126
|
+
onRawError(error, context) {
|
|
127
|
+
const rawStack = getRawStack(error);
|
|
128
|
+
if (rawStack) rawStackByTraceId.set(context.report.traceId, rawStack);
|
|
129
|
+
options.onRawError?.(error, context);
|
|
130
|
+
},
|
|
131
|
+
onEvent(event, report, context) {
|
|
132
|
+
if (shouldUseNodeOutput(options)) nodeWriteQueue = nodeWriteQueue.catch(() => void 0).then(() => writeNodeOutput(options, event, report)).catch(() => void 0);
|
|
133
|
+
emitNodeConsoleHint(options, event, report, context, consoleReportedTraceIds, rawStackByTraceId.get(report.traceId));
|
|
134
|
+
try {
|
|
135
|
+
options.onEvent?.(event, report, context);
|
|
136
|
+
} finally {
|
|
137
|
+
if (isErrorEvent(event)) rawStackByTraceId.delete(report.traceId);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
onReport(report, context) {
|
|
141
|
+
options.onReport?.(report, context);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
observability.plugin.name = "observability-node-plugin";
|
|
145
|
+
const clear = observability.clear;
|
|
146
|
+
observability.clear = () => {
|
|
147
|
+
clear();
|
|
148
|
+
nodeWriteQueue = Promise.resolve();
|
|
149
|
+
consoleReportedTraceIds.clear();
|
|
150
|
+
rawStackByTraceId.clear();
|
|
151
|
+
};
|
|
152
|
+
return observability;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
export { ObservabilityPlugin, getNativeNodeRequire };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { ModuleFederationRuntimePlugin } from "@module-federation/runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/index.d.ts
|
|
4
|
+
type ObservabilityLevel = 'error' | 'summary' | 'verbose';
|
|
5
|
+
type ObservabilityEventStatus = 'start' | 'success' | 'error' | 'complete';
|
|
6
|
+
type ObservabilityReportStatus = 'pending' | 'success' | 'error';
|
|
7
|
+
type ObservabilityEventSource = 'runtime' | 'business';
|
|
8
|
+
type ObservabilityBrowserMode = 'development' | 'production';
|
|
9
|
+
type ObservabilityReportOutcome = 'pending' | 'runtime-loaded' | 'component-loaded' | 'failed' | 'recovered';
|
|
10
|
+
type ObservabilityOwnerHint = 'host' | 'remote' | 'shared' | 'network' | 'runtime' | 'unknown';
|
|
11
|
+
type ObservabilityMetadataValue = string | number | boolean;
|
|
12
|
+
type ObservabilityMetadata = Record<string, ObservabilityMetadataValue>;
|
|
13
|
+
interface ObservabilityModuleInfoEntry {
|
|
14
|
+
name: string;
|
|
15
|
+
publicPath?: string;
|
|
16
|
+
getPublicPath?: string;
|
|
17
|
+
remoteEntry?: string;
|
|
18
|
+
globalName?: string;
|
|
19
|
+
}
|
|
20
|
+
interface ObservabilityModuleInfoSummary {
|
|
21
|
+
reason: string;
|
|
22
|
+
clipped: true;
|
|
23
|
+
totalCount: number;
|
|
24
|
+
matchedCount: number;
|
|
25
|
+
entries: ObservabilityModuleInfoEntry[];
|
|
26
|
+
availableNames?: string[];
|
|
27
|
+
}
|
|
28
|
+
interface ObservabilityPhaseSummary {
|
|
29
|
+
status: ObservabilityEventStatus;
|
|
30
|
+
duration?: number;
|
|
31
|
+
cached?: boolean;
|
|
32
|
+
recovered?: boolean;
|
|
33
|
+
lifecycle?: string;
|
|
34
|
+
}
|
|
35
|
+
interface ObservabilitySharedSummary {
|
|
36
|
+
name: string;
|
|
37
|
+
provider?: string;
|
|
38
|
+
selectedVersion?: string;
|
|
39
|
+
shareScope?: string[];
|
|
40
|
+
}
|
|
41
|
+
interface ObservabilityReportFlags {
|
|
42
|
+
cached: boolean;
|
|
43
|
+
retried: boolean;
|
|
44
|
+
fallback: boolean;
|
|
45
|
+
recovered: boolean;
|
|
46
|
+
}
|
|
47
|
+
interface ObservabilityPhaseCollection {
|
|
48
|
+
phases: Record<string, ObservabilityPhaseSummary>;
|
|
49
|
+
shared?: ObservabilitySharedSummary;
|
|
50
|
+
flags: ObservabilityReportFlags;
|
|
51
|
+
}
|
|
52
|
+
interface ObservabilityErrorSummary {
|
|
53
|
+
errorCode?: string;
|
|
54
|
+
errorName?: string;
|
|
55
|
+
errorMessage?: string;
|
|
56
|
+
failedPhase?: string;
|
|
57
|
+
lifecycle?: string;
|
|
58
|
+
ownerHint?: ObservabilityOwnerHint;
|
|
59
|
+
retryable?: boolean;
|
|
60
|
+
context?: ObservabilityMetadata;
|
|
61
|
+
}
|
|
62
|
+
type ObservabilityActionId = 'check-manifest-url' | 'check-remote-entry' | 'check-remote-global' | 'check-host-remotes' | 'check-shared-provider' | 'check-shared-version' | 'check-eager-config' | 'check-network' | 'check-expose' | 'check-module-info' | 'inspect-runtime-events';
|
|
63
|
+
interface ObservabilityAction {
|
|
64
|
+
id: ObservabilityActionId | string;
|
|
65
|
+
ownerHint?: ObservabilityOwnerHint;
|
|
66
|
+
title: string;
|
|
67
|
+
detail?: string;
|
|
68
|
+
}
|
|
69
|
+
interface ObservabilityFactReport {
|
|
70
|
+
title: string;
|
|
71
|
+
outcome: ObservabilityReportOutcome;
|
|
72
|
+
status: ObservabilityReportStatus;
|
|
73
|
+
ownerHint: ObservabilityOwnerHint;
|
|
74
|
+
failedPhase?: string;
|
|
75
|
+
errorCode?: string;
|
|
76
|
+
errorName?: string;
|
|
77
|
+
errorMessage?: string;
|
|
78
|
+
docLink?: string;
|
|
79
|
+
facts: ObservabilityMetadata;
|
|
80
|
+
completedPhases: string[];
|
|
81
|
+
pendingPhases: string[];
|
|
82
|
+
warnings?: string[];
|
|
83
|
+
actions: ObservabilityAction[];
|
|
84
|
+
}
|
|
85
|
+
interface ObservabilityRemoteInfo {
|
|
86
|
+
name: string;
|
|
87
|
+
alias?: string;
|
|
88
|
+
entry?: string;
|
|
89
|
+
entryGlobalName?: string;
|
|
90
|
+
type?: string;
|
|
91
|
+
}
|
|
92
|
+
interface ObservabilitySharedInfo {
|
|
93
|
+
name: string;
|
|
94
|
+
shareScope?: string[];
|
|
95
|
+
requiredVersion?: string | false;
|
|
96
|
+
selectedVersion?: string;
|
|
97
|
+
availableVersions?: string[];
|
|
98
|
+
provider?: string;
|
|
99
|
+
from?: string;
|
|
100
|
+
singleton?: boolean;
|
|
101
|
+
strictVersion?: boolean;
|
|
102
|
+
eager?: boolean;
|
|
103
|
+
strategy?: string;
|
|
104
|
+
loaded?: boolean;
|
|
105
|
+
loading?: boolean;
|
|
106
|
+
reason?: string;
|
|
107
|
+
}
|
|
108
|
+
interface ObservabilityEvent {
|
|
109
|
+
traceId: string;
|
|
110
|
+
timestamp: number;
|
|
111
|
+
phase: string;
|
|
112
|
+
status: ObservabilityEventStatus;
|
|
113
|
+
requestId?: string;
|
|
114
|
+
hostName?: string;
|
|
115
|
+
remote?: ObservabilityRemoteInfo;
|
|
116
|
+
shared?: ObservabilitySharedInfo;
|
|
117
|
+
expose?: string;
|
|
118
|
+
sanitizedUrl?: string;
|
|
119
|
+
message?: string;
|
|
120
|
+
errorCode?: string;
|
|
121
|
+
errorName?: string;
|
|
122
|
+
errorMessage?: string;
|
|
123
|
+
errorStack?: string;
|
|
124
|
+
ownerHint?: ObservabilityOwnerHint;
|
|
125
|
+
retryable?: boolean;
|
|
126
|
+
errorContext?: ObservabilityMetadata;
|
|
127
|
+
duration?: number;
|
|
128
|
+
lifecycle?: string;
|
|
129
|
+
eventName?: string;
|
|
130
|
+
source?: ObservabilityEventSource;
|
|
131
|
+
recovered?: boolean;
|
|
132
|
+
cached?: boolean;
|
|
133
|
+
componentName?: string;
|
|
134
|
+
metadata?: ObservabilityMetadata;
|
|
135
|
+
}
|
|
136
|
+
interface ObservabilityReport {
|
|
137
|
+
traceId: string;
|
|
138
|
+
status: ObservabilityReportStatus;
|
|
139
|
+
requestId?: string;
|
|
140
|
+
hostName?: string;
|
|
141
|
+
remote?: ObservabilityRemoteInfo;
|
|
142
|
+
shared?: ObservabilitySharedInfo;
|
|
143
|
+
expose?: string;
|
|
144
|
+
sanitizedUrl?: string;
|
|
145
|
+
startedAt: number;
|
|
146
|
+
updatedAt: number;
|
|
147
|
+
duration: number;
|
|
148
|
+
failedPhase?: string;
|
|
149
|
+
errorCode?: string;
|
|
150
|
+
errorName?: string;
|
|
151
|
+
errorMessage?: string;
|
|
152
|
+
errorStack?: string;
|
|
153
|
+
ownerHint?: ObservabilityOwnerHint;
|
|
154
|
+
retryable?: boolean;
|
|
155
|
+
errorContext?: ObservabilityMetadata;
|
|
156
|
+
moduleInfo?: ObservabilityModuleInfoSummary;
|
|
157
|
+
events: ObservabilityEvent[];
|
|
158
|
+
summary: {
|
|
159
|
+
eventCount: number;
|
|
160
|
+
recovered: boolean;
|
|
161
|
+
loadCompleted: boolean;
|
|
162
|
+
runtimeLoaded: boolean;
|
|
163
|
+
componentLoaded: boolean;
|
|
164
|
+
outcome: ObservabilityReportOutcome;
|
|
165
|
+
lastPhase?: string;
|
|
166
|
+
phases: Record<string, ObservabilityPhaseSummary>;
|
|
167
|
+
shared?: ObservabilitySharedSummary;
|
|
168
|
+
flags: ObservabilityReportFlags;
|
|
169
|
+
error?: ObservabilityErrorSummary;
|
|
170
|
+
};
|
|
171
|
+
diagnosis?: ObservabilityFactReport;
|
|
172
|
+
}
|
|
173
|
+
interface ObservabilityPluginOptions {
|
|
174
|
+
enabled?: boolean;
|
|
175
|
+
level?: ObservabilityLevel;
|
|
176
|
+
maxEvents?: number;
|
|
177
|
+
console?: boolean;
|
|
178
|
+
printRawStack?: boolean;
|
|
179
|
+
stackTrace?: {
|
|
180
|
+
enabled?: boolean;
|
|
181
|
+
maxLines?: number;
|
|
182
|
+
maxLength?: number;
|
|
183
|
+
};
|
|
184
|
+
browser?: {
|
|
185
|
+
enabled?: boolean;
|
|
186
|
+
scope?: string;
|
|
187
|
+
mode?: ObservabilityBrowserMode;
|
|
188
|
+
};
|
|
189
|
+
onEvent?: (event: ObservabilityEvent, report: ObservabilityReport, context?: ObservabilityEventContext) => void;
|
|
190
|
+
onReport?: (report: ObservabilityReport, context?: ObservabilityEventContext) => void;
|
|
191
|
+
onRawError?: (error: unknown, context: ObservabilityRawErrorContext) => void;
|
|
192
|
+
}
|
|
193
|
+
interface ObservabilityReportListOptions {
|
|
194
|
+
limit?: number;
|
|
195
|
+
}
|
|
196
|
+
interface ObservabilityReportQuery extends ObservabilityReportListOptions {
|
|
197
|
+
traceId?: string;
|
|
198
|
+
remote?: string;
|
|
199
|
+
expose?: string;
|
|
200
|
+
shared?: string;
|
|
201
|
+
status?: ObservabilityReportStatus;
|
|
202
|
+
outcome?: ObservabilityReportOutcome;
|
|
203
|
+
}
|
|
204
|
+
interface MarkComponentLoadedOptions {
|
|
205
|
+
traceId?: string;
|
|
206
|
+
requestId?: string;
|
|
207
|
+
componentName?: string;
|
|
208
|
+
metadata?: Record<string, unknown>;
|
|
209
|
+
}
|
|
210
|
+
interface ObservabilityController {
|
|
211
|
+
plugin: ObservabilityRuntimePlugin;
|
|
212
|
+
getEvents(): ObservabilityEvent[];
|
|
213
|
+
getTraceIds(): string[];
|
|
214
|
+
getReports(options?: ObservabilityReportListOptions): ObservabilityReport[];
|
|
215
|
+
findReports(query?: ObservabilityReportQuery): ObservabilityReport[];
|
|
216
|
+
getLatestReport(): ObservabilityReport | undefined;
|
|
217
|
+
getReport(traceId: string): ObservabilityReport | undefined;
|
|
218
|
+
exportReport(traceId?: string): ObservabilityReport | undefined;
|
|
219
|
+
clear(): void;
|
|
220
|
+
markComponentLoaded(options?: MarkComponentLoadedOptions): ObservabilityEvent | undefined;
|
|
221
|
+
}
|
|
222
|
+
interface ObservabilityRuntimeEventInput {
|
|
223
|
+
phase: string;
|
|
224
|
+
status: ObservabilityEventStatus;
|
|
225
|
+
requestId?: string;
|
|
226
|
+
hostName?: string;
|
|
227
|
+
remote?: ObservabilityRemoteInfo;
|
|
228
|
+
shared?: ObservabilitySharedInfo;
|
|
229
|
+
expose?: string;
|
|
230
|
+
url?: string;
|
|
231
|
+
message?: string;
|
|
232
|
+
error?: unknown;
|
|
233
|
+
errorContext?: Record<string, unknown>;
|
|
234
|
+
duration?: number;
|
|
235
|
+
lifecycle?: string;
|
|
236
|
+
eventName?: string;
|
|
237
|
+
source?: ObservabilityEventSource;
|
|
238
|
+
recovered?: boolean;
|
|
239
|
+
timestamp?: number;
|
|
240
|
+
traceId?: string;
|
|
241
|
+
cached?: boolean;
|
|
242
|
+
componentName?: string;
|
|
243
|
+
metadata?: Record<string, unknown>;
|
|
244
|
+
}
|
|
245
|
+
interface ObservabilityRuntimeOrigin {
|
|
246
|
+
options?: {
|
|
247
|
+
name?: string;
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
interface ObservabilityEventContext {
|
|
251
|
+
origin?: ObservabilityRuntimeOrigin;
|
|
252
|
+
}
|
|
253
|
+
interface ObservabilityRawErrorContext extends ObservabilityEventContext {
|
|
254
|
+
event: ObservabilityEvent;
|
|
255
|
+
report: ObservabilityReport;
|
|
256
|
+
}
|
|
257
|
+
type ObservabilityRuntimePlugin = ModuleFederationRuntimePlugin;
|
|
258
|
+
interface ObservabilityBrowserReader {
|
|
259
|
+
getEvents(): ObservabilityEvent[];
|
|
260
|
+
getTraceIds(): string[];
|
|
261
|
+
getReports(options?: ObservabilityReportListOptions): ObservabilityReport[];
|
|
262
|
+
findReports(query?: ObservabilityReportQuery): ObservabilityReport[];
|
|
263
|
+
getLatestReport(): ObservabilityReport | undefined;
|
|
264
|
+
getReport(traceId: string): ObservabilityReport | undefined;
|
|
265
|
+
exportReport(traceId?: string): ObservabilityReport | undefined;
|
|
266
|
+
}
|
|
267
|
+
declare function ObservabilityPlugin(options?: ObservabilityPluginOptions): ObservabilityController;
|
|
268
|
+
//#endregion
|
|
269
|
+
export { MarkComponentLoadedOptions, ObservabilityAction, ObservabilityActionId, ObservabilityBrowserMode, ObservabilityBrowserReader, ObservabilityController, ObservabilityErrorSummary, ObservabilityEvent, ObservabilityEventContext, ObservabilityEventSource, ObservabilityEventStatus, ObservabilityFactReport, ObservabilityLevel, ObservabilityMetadata, ObservabilityMetadataValue, ObservabilityModuleInfoEntry, ObservabilityModuleInfoSummary, ObservabilityOwnerHint, ObservabilityPhaseCollection, ObservabilityPhaseSummary, ObservabilityPlugin, ObservabilityPluginOptions, ObservabilityRawErrorContext, ObservabilityRemoteInfo, ObservabilityReport, ObservabilityReportFlags, ObservabilityReportListOptions, ObservabilityReportOutcome, ObservabilityReportQuery, ObservabilityReportStatus, ObservabilityRuntimeEventInput, ObservabilityRuntimeOrigin, ObservabilityRuntimePlugin, ObservabilitySharedInfo, ObservabilitySharedSummary };
|