@wizeworks/lens-hub 0.0.0-stage → 0.3.0-alpha.2
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/LICENSE +21 -0
- package/README.md +60 -2
- package/dist/api.d.ts +20 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +90 -0
- package/dist/api.js.map +1 -0
- package/dist/auth.d.ts +9 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +55 -0
- package/dist/auth.js.map +1 -0
- package/dist/body.d.ts +9 -0
- package/dist/body.d.ts.map +1 -0
- package/dist/body.js +25 -0
- package/dist/body.js.map +1 -0
- package/dist/cli-args.d.ts +10 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +63 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/cli.js.map +1 -0
- package/dist/data.d.ts +17 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +39 -0
- package/dist/data.js.map +1 -0
- package/dist/hub.d.ts +14 -0
- package/dist/hub.d.ts.map +1 -0
- package/dist/hub.js +89 -0
- package/dist/hub.js.map +1 -0
- package/dist/import.d.ts +4 -0
- package/dist/import.d.ts.map +1 -0
- package/dist/import.js +41 -0
- package/dist/import.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest.d.ts +9 -0
- package/dist/ingest.d.ts.map +1 -0
- package/dist/ingest.js +83 -0
- package/dist/ingest.js.map +1 -0
- package/dist/kit.d.ts +10 -0
- package/dist/kit.d.ts.map +1 -0
- package/dist/kit.js +8 -0
- package/dist/kit.js.map +1 -0
- package/dist/mcp.d.ts +4 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +18 -0
- package/dist/mcp.js.map +1 -0
- package/dist/metrics-read.d.ts +12 -0
- package/dist/metrics-read.d.ts.map +1 -0
- package/dist/metrics-read.js +18 -0
- package/dist/metrics-read.js.map +1 -0
- package/dist/metrics-write.d.ts +12 -0
- package/dist/metrics-write.d.ts.map +1 -0
- package/dist/metrics-write.js +107 -0
- package/dist/metrics-write.js.map +1 -0
- package/dist/models-api.d.ts +5 -0
- package/dist/models-api.d.ts.map +1 -0
- package/dist/models-api.js +36 -0
- package/dist/models-api.js.map +1 -0
- package/dist/options.d.ts +36 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +22 -0
- package/dist/options.js.map +1 -0
- package/dist/otlp/index.d.ts +8 -0
- package/dist/otlp/index.d.ts.map +1 -0
- package/dist/otlp/index.js +41 -0
- package/dist/otlp/index.js.map +1 -0
- package/dist/otlp/logs.d.ts +24 -0
- package/dist/otlp/logs.d.ts.map +1 -0
- package/dist/otlp/logs.js +44 -0
- package/dist/otlp/logs.js.map +1 -0
- package/dist/otlp/metrics.d.ts +59 -0
- package/dist/otlp/metrics.d.ts.map +1 -0
- package/dist/otlp/metrics.js +73 -0
- package/dist/otlp/metrics.js.map +1 -0
- package/dist/otlp/proto.d.ts +14 -0
- package/dist/otlp/proto.d.ts.map +1 -0
- package/dist/otlp/proto.js +132 -0
- package/dist/otlp/proto.js.map +1 -0
- package/dist/otlp/spans.d.ts +33 -0
- package/dist/otlp/spans.d.ts.map +1 -0
- package/dist/otlp/spans.js +80 -0
- package/dist/otlp/spans.js.map +1 -0
- package/dist/otlp/values.d.ts +40 -0
- package/dist/otlp/values.d.ts.map +1 -0
- package/dist/otlp/values.js +78 -0
- package/dist/otlp/values.js.map +1 -0
- package/dist/scale-exec.d.ts +10 -0
- package/dist/scale-exec.d.ts.map +1 -0
- package/dist/scale-exec.js +22 -0
- package/dist/scale-exec.js.map +1 -0
- package/dist/schema-scale.d.ts +7 -0
- package/dist/schema-scale.d.ts.map +1 -0
- package/dist/schema-scale.js +99 -0
- package/dist/schema-scale.js.map +1 -0
- package/dist/schema.d.ts +13 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +49 -0
- package/dist/schema.js.map +1 -0
- package/dist/settle.d.ts +28 -0
- package/dist/settle.d.ts.map +1 -0
- package/dist/settle.js +103 -0
- package/dist/settle.js.map +1 -0
- package/dist/store-read.d.ts +27 -0
- package/dist/store-read.d.ts.map +1 -0
- package/dist/store-read.js +74 -0
- package/dist/store-read.js.map +1 -0
- package/dist/store.d.ts +42 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +118 -0
- package/dist/store.js.map +1 -0
- package/package.json +64 -3
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface HubOptions {
|
|
2
|
+
/** Port to listen on. Default 5960. 0 picks a free port. */
|
|
3
|
+
port?: number;
|
|
4
|
+
/** Address to listen on. Default "127.0.0.1" (this machine only). Use "0.0.0.0" for the network, with a token. */
|
|
5
|
+
host?: string;
|
|
6
|
+
/** Where the hub file lives, or "memory". Default `~/.wizelens/hub/hub.db`. */
|
|
7
|
+
storagePath?: string;
|
|
8
|
+
/** When set, every call needs it: `Authorization: Bearer <token>`, or a one-time `?token=` in the browser. */
|
|
9
|
+
token?: string;
|
|
10
|
+
/** Most traces kept. Default 50000. */
|
|
11
|
+
maxTraces?: number;
|
|
12
|
+
/** Oldest trace (and metric point) kept, in ms. Default 7 days. */
|
|
13
|
+
maxAgeMs?: number;
|
|
14
|
+
/** Most metric points kept. Default 2,000,000. */
|
|
15
|
+
maxMetricPoints?: number;
|
|
16
|
+
/** Expose the read-only MCP endpoint at `/_wizelens/mcp`. Default false. */
|
|
17
|
+
enableMcp?: boolean;
|
|
18
|
+
/** Key fragments to redact. Default: the contract list. */
|
|
19
|
+
redactKeys?: string[];
|
|
20
|
+
/** Override where the dashboard build lives. */
|
|
21
|
+
uiDir?: string;
|
|
22
|
+
/** Name shown in the dashboard. Default "wizelens-hub". */
|
|
23
|
+
name?: string;
|
|
24
|
+
/** Where MCP audit lines go. Default console.info. */
|
|
25
|
+
audit?: (line: string) => void;
|
|
26
|
+
now?: () => number;
|
|
27
|
+
}
|
|
28
|
+
export interface ResolvedHubOptions extends Required<Omit<HubOptions, "token" | "uiDir" | "audit" | "now">> {
|
|
29
|
+
token: string | undefined;
|
|
30
|
+
uiDir: string | undefined;
|
|
31
|
+
audit: (line: string) => void;
|
|
32
|
+
now: () => number;
|
|
33
|
+
}
|
|
34
|
+
export declare const DEFAULT_STORAGE_PATH: string;
|
|
35
|
+
export declare function resolveHubOptions(o?: HubOptions): ResolvedHubOptions;
|
|
36
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kHAAkH;IAClH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;IACzG,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,QAAgD,CAAC;AAElF,wBAAgB,iBAAiB,CAAC,CAAC,GAAE,UAAe,GAAG,kBAAkB,CAgBxE"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DEFAULT_REDACT_KEYS, HUB_DEFAULT_PORT } from "@wizeworks/lens-core";
|
|
4
|
+
export const DEFAULT_STORAGE_PATH = join(homedir(), ".wizelens", "hub", "hub.db");
|
|
5
|
+
export function resolveHubOptions(o = {}) {
|
|
6
|
+
return {
|
|
7
|
+
port: o.port ?? HUB_DEFAULT_PORT,
|
|
8
|
+
host: o.host ?? "127.0.0.1",
|
|
9
|
+
storagePath: o.storagePath ?? DEFAULT_STORAGE_PATH,
|
|
10
|
+
token: o.token || undefined,
|
|
11
|
+
maxTraces: o.maxTraces ?? 50_000,
|
|
12
|
+
maxAgeMs: o.maxAgeMs ?? 7 * 24 * 60 * 60_000,
|
|
13
|
+
maxMetricPoints: o.maxMetricPoints ?? 2_000_000,
|
|
14
|
+
enableMcp: o.enableMcp ?? false,
|
|
15
|
+
redactKeys: o.redactKeys ?? [...DEFAULT_REDACT_KEYS],
|
|
16
|
+
uiDir: o.uiDir,
|
|
17
|
+
name: o.name ?? "wizelens-hub",
|
|
18
|
+
audit: o.audit ?? ((line) => console.info(line)),
|
|
19
|
+
now: o.now ?? Date.now,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAElF,MAAM,UAAU,iBAAiB,CAAC,CAAC,GAAe,EAAE;IAClD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,gBAAgB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,WAAW;QAC3B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,oBAAoB;QAClD,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;QAC3B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,MAAM;QAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM;QAC5C,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;QAC/C,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;QAC/B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,mBAAmB,CAAC;QACpD,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,cAAc;QAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { HubWrite } from "../store.js";
|
|
3
|
+
export type OtlpSignal = "traces" | "logs" | "metrics";
|
|
4
|
+
/** The OTLP/HTTP paths the hub answers: the standard ones, so OTEL_EXPORTER_OTLP_ENDPOINT can point at the hub. */
|
|
5
|
+
export declare function otlpSignalOf(path: string): OtlpSignal | null;
|
|
6
|
+
/** Take one OTLP export. Answers in the format it was sent in, with an empty (full success) response. */
|
|
7
|
+
export declare function handleOtlp(signal: OtlpSignal, req: IncomingMessage, res: ServerResponse, save: (w: HubWrite) => void | Promise<void>, redactKeys: readonly string[]): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/otlp/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvD,mHAAmH;AACnH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAG5D;AAgBD,yGAAyG;AACzG,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzL"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isProtobuf, parseJson, readBody } from "../body.js";
|
|
2
|
+
import { writesFromLogs } from "./logs.js";
|
|
3
|
+
import { writesFromMetrics } from "./metrics.js";
|
|
4
|
+
import { decodeLogs, decodeMetrics, decodeTraces } from "./proto.js";
|
|
5
|
+
import { writesFromSpans } from "./spans.js";
|
|
6
|
+
/** The OTLP/HTTP paths the hub answers: the standard ones, so OTEL_EXPORTER_OTLP_ENDPOINT can point at the hub. */
|
|
7
|
+
export function otlpSignalOf(path) {
|
|
8
|
+
const m = /^(?:\/_wizelens)?\/v1\/(traces|logs|metrics)$/.exec(path);
|
|
9
|
+
return m ? m[1] : null;
|
|
10
|
+
}
|
|
11
|
+
async function writesOf(signal, req, redactKeys) {
|
|
12
|
+
const body = await readBody(req);
|
|
13
|
+
if (signal === "traces") {
|
|
14
|
+
const list = isProtobuf(req) ? decodeTraces(body) : (parseJson(body)?.resourceSpans ?? []);
|
|
15
|
+
return writesFromSpans(list, redactKeys);
|
|
16
|
+
}
|
|
17
|
+
if (signal === "metrics") {
|
|
18
|
+
const list = isProtobuf(req) ? decodeMetrics(body) : (parseJson(body)?.resourceMetrics ?? []);
|
|
19
|
+
return writesFromMetrics(list, redactKeys);
|
|
20
|
+
}
|
|
21
|
+
const list = isProtobuf(req) ? decodeLogs(body) : (parseJson(body)?.resourceLogs ?? []);
|
|
22
|
+
return writesFromLogs(list, redactKeys);
|
|
23
|
+
}
|
|
24
|
+
/** Take one OTLP export. Answers in the format it was sent in, with an empty (full success) response. */
|
|
25
|
+
export async function handleOtlp(signal, req, res, save, redactKeys) {
|
|
26
|
+
const proto = isProtobuf(req);
|
|
27
|
+
try {
|
|
28
|
+
for (const w of await writesOf(signal, req, redactKeys))
|
|
29
|
+
await save(w);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
res.writeHead(400, { "Content-Type": "application/json" });
|
|
33
|
+
res.end(JSON.stringify({ code: 3, message: err instanceof Error ? err.message : "invalid body" }));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (proto)
|
|
37
|
+
res.writeHead(200, { "Content-Type": "application/x-protobuf" }).end();
|
|
38
|
+
else
|
|
39
|
+
res.writeHead(200, { "Content-Type": "application/json" }).end("{}");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otlp/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAyB,cAAc,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAA0B,eAAe,EAAE,MAAM,YAAY,CAAC;AAIrE,mHAAmH;AACnH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,MAAkB,EAAE,GAAoB,EAAE,UAA6B;IAC7F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,IAAI,CAA6C,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;QACxI,OAAO,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,IAAI,CAAiD,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;QAC/I,OAAO,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,IAAI,CAA2C,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IACnI,OAAO,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB,EAAE,GAAoB,EAAE,GAAmB,EAAE,IAA2C,EAAE,UAA6B;IACxK,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC;YAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IACD,IAAI,KAAK;QAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,wBAAwB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;;QAC7E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HubWrite } from "../store.js";
|
|
2
|
+
import { type OtlpAnyValue, type OtlpKeyValue, type OtlpResource } from "./values.js";
|
|
3
|
+
export interface OtlpLogRecord {
|
|
4
|
+
timeUnixNano?: string | number;
|
|
5
|
+
observedTimeUnixNano?: string | number;
|
|
6
|
+
severityNumber?: number | string;
|
|
7
|
+
severityText?: string;
|
|
8
|
+
body?: OtlpAnyValue;
|
|
9
|
+
attributes?: OtlpKeyValue[];
|
|
10
|
+
traceId?: string;
|
|
11
|
+
spanId?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface OtlpResourceLogs {
|
|
14
|
+
resource?: OtlpResource;
|
|
15
|
+
scopeLogs?: {
|
|
16
|
+
scope?: {
|
|
17
|
+
name?: string;
|
|
18
|
+
};
|
|
19
|
+
logRecords?: OtlpLogRecord[];
|
|
20
|
+
}[];
|
|
21
|
+
}
|
|
22
|
+
/** Logs that belong to a trace. WizeLens shows logs per trace, so others are skipped. */
|
|
23
|
+
export declare function writesFromLogs(list: readonly OtlpResourceLogs[], redactKeys: readonly string[]): HubWrite[];
|
|
24
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/otlp/logs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAkC,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAqB,MAAM,aAAa,CAAC;AAEzI,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,EAAE,CAAC;CAC3E;AAcD,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,EAAE,CAyB3G"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { redactAttributes } from "@wizeworks/lens-core";
|
|
2
|
+
import { attributesOf, hexId, nanosToMs, senderOf, valueOf } from "./values.js";
|
|
3
|
+
const LEVELS = ["trace", "debug", "info", "warn", "error", "critical"];
|
|
4
|
+
/** Severity 1-4 is trace, 5-8 debug, ... 21-24 critical. Text wins when the number is missing. */
|
|
5
|
+
function levelOf(r) {
|
|
6
|
+
const n = Number(r.severityNumber);
|
|
7
|
+
if (n >= 1 && n <= 24)
|
|
8
|
+
return LEVELS[Math.floor((n - 1) / 4)];
|
|
9
|
+
const t = r.severityText?.toLowerCase() ?? "";
|
|
10
|
+
if (t.startsWith("warn"))
|
|
11
|
+
return "warn";
|
|
12
|
+
if (t.startsWith("fatal") || t.startsWith("crit"))
|
|
13
|
+
return "critical";
|
|
14
|
+
return LEVELS.find((l) => t.startsWith(l)) ?? "info";
|
|
15
|
+
}
|
|
16
|
+
/** Logs that belong to a trace. WizeLens shows logs per trace, so others are skipped. */
|
|
17
|
+
export function writesFromLogs(list, redactKeys) {
|
|
18
|
+
return list.map((rl) => {
|
|
19
|
+
const sender = senderOf(rl.resource);
|
|
20
|
+
const logs = [];
|
|
21
|
+
for (const sl of rl.scopeLogs ?? []) {
|
|
22
|
+
for (const r of sl.logRecords ?? []) {
|
|
23
|
+
const traceId = hexId(r.traceId, 32);
|
|
24
|
+
if (!traceId)
|
|
25
|
+
continue;
|
|
26
|
+
const body = valueOf(r.body);
|
|
27
|
+
logs.push({
|
|
28
|
+
traceId,
|
|
29
|
+
log: {
|
|
30
|
+
timeMs: nanosToMs(r.timeUnixNano) || nanosToMs(r.observedTimeUnixNano),
|
|
31
|
+
level: levelOf(r),
|
|
32
|
+
category: sl.scope?.name || "otlp",
|
|
33
|
+
message: body === null ? "" : String(body).slice(0, 10_000),
|
|
34
|
+
service: sender.service,
|
|
35
|
+
spanId: hexId(r.spanId, 16) ?? null,
|
|
36
|
+
attributes: redactAttributes(attributesOf(r.attributes), redactKeys),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { sender, via: "otlp", spans: [], logs, remotes: [] };
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/otlp/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAA2D,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkBzI,MAAM,MAAM,GAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAEnF,kGAAkG;AAClG,SAAS,OAAO,CAAC,CAAgB;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IACrE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACvD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,IAAiC,EAAE,UAA6B;IAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC;oBACR,OAAO;oBACP,GAAG,EAAE;wBACH,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;wBACtE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;wBACjB,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,IAAI,MAAM;wBAClC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;wBAC3D,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI;wBACnC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;qBACrE;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAe,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type MetricHistogram, type MetricPoint } from "@wizeworks/lens-core";
|
|
2
|
+
import type { HubWrite } from "../store.js";
|
|
3
|
+
import { type OtlpKeyValue, type OtlpResource } from "./values.js";
|
|
4
|
+
type Num = string | number | undefined;
|
|
5
|
+
interface OtlpDataPoint {
|
|
6
|
+
attributes?: OtlpKeyValue[];
|
|
7
|
+
startTimeUnixNano?: Num;
|
|
8
|
+
timeUnixNano?: Num;
|
|
9
|
+
asDouble?: number;
|
|
10
|
+
asInt?: Num;
|
|
11
|
+
count?: Num;
|
|
12
|
+
sum?: number;
|
|
13
|
+
min?: number;
|
|
14
|
+
max?: number;
|
|
15
|
+
bucketCounts?: Num[];
|
|
16
|
+
explicitBounds?: number[];
|
|
17
|
+
scale?: number;
|
|
18
|
+
zeroCount?: Num;
|
|
19
|
+
positive?: {
|
|
20
|
+
offset?: number;
|
|
21
|
+
bucketCounts?: Num[];
|
|
22
|
+
};
|
|
23
|
+
negative?: {
|
|
24
|
+
offset?: number;
|
|
25
|
+
bucketCounts?: Num[];
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
interface OtlpData {
|
|
29
|
+
dataPoints?: OtlpDataPoint[];
|
|
30
|
+
aggregationTemporality?: number | string;
|
|
31
|
+
isMonotonic?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface OtlpMetric {
|
|
34
|
+
name?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
unit?: string;
|
|
37
|
+
gauge?: OtlpData;
|
|
38
|
+
sum?: OtlpData;
|
|
39
|
+
histogram?: OtlpData;
|
|
40
|
+
exponentialHistogram?: OtlpData;
|
|
41
|
+
summary?: OtlpData;
|
|
42
|
+
}
|
|
43
|
+
export interface OtlpResourceMetrics {
|
|
44
|
+
resource?: OtlpResource;
|
|
45
|
+
scopeMetrics?: {
|
|
46
|
+
scope?: {
|
|
47
|
+
name?: string;
|
|
48
|
+
};
|
|
49
|
+
metrics?: OtlpMetric[];
|
|
50
|
+
}[];
|
|
51
|
+
}
|
|
52
|
+
/** An exponential histogram as explicit buckets. Zero and negative values go to the first bucket. */
|
|
53
|
+
export declare function fromExponential(dp: OtlpDataPoint): MetricHistogram;
|
|
54
|
+
/** The points of one OTLP metric. Points that do not pass the core checks are skipped. */
|
|
55
|
+
export declare function pointsOf(m: OtlpMetric, service: string, redactKeys: readonly string[]): MetricPoint[];
|
|
56
|
+
/** One write per resource: each resource is one sender. */
|
|
57
|
+
export declare function writesFromMetrics(list: readonly OtlpResourceMetrics[], redactKeys: readonly string[]): HubWrite[];
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/otlp/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAmB,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AACpH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,YAAY,EAAY,MAAM,aAAa,CAAC;AAEtG,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvC,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IACrD,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;CACtD;AAED,UAAU,QAAQ;IAChB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,oBAAoB,CAAC,EAAE,QAAQ,CAAC;IAChC,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,YAAY,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,EAAE,CAAC;CACxE;AAaD,qGAAqG;AACrG,wBAAgB,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,eAAe,CAUlE;AAoBD,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE,CAsBrG;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,EAAE,CAMjH"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { sanitizeMetricPoint } from "@wizeworks/lens-core";
|
|
2
|
+
import { attributesOf, nanosToMs, senderOf } from "./values.js";
|
|
3
|
+
const num = (v) => (v === undefined || v === "" ? 0 : Number(v));
|
|
4
|
+
const temporalityOf = (t) => (t === 1 || t === "AGGREGATION_TEMPORALITY_DELTA" ? "delta" : "cumulative");
|
|
5
|
+
/** An explicit-bucket histogram as sent. Counts that do not fit the bounds keep count and sum only. */
|
|
6
|
+
function explicit(dp) {
|
|
7
|
+
const bounds = (dp.explicitBounds ?? []).map(Number);
|
|
8
|
+
const counts = (dp.bucketCounts ?? []).map(num);
|
|
9
|
+
const fits = counts.length === bounds.length + 1;
|
|
10
|
+
return { count: num(dp.count), sum: dp.sum ?? 0, min: dp.min ?? null, max: dp.max ?? null, bounds: fits ? bounds : [], counts: fits ? counts : [] };
|
|
11
|
+
}
|
|
12
|
+
/** An exponential histogram as explicit buckets. Zero and negative values go to the first bucket. */
|
|
13
|
+
export function fromExponential(dp) {
|
|
14
|
+
// Upper bound of index i is base^(i+1) with base = 2^(2^-scale); computed as one power of 2 to keep it exact.
|
|
15
|
+
const bound = (index) => 2 ** (index * 2 ** -(dp.scale ?? 0));
|
|
16
|
+
const offset = dp.positive?.offset ?? 0;
|
|
17
|
+
const positive = (dp.positive?.bucketCounts ?? []).map(num);
|
|
18
|
+
const low = num(dp.zeroCount) + (dp.negative?.bucketCounts ?? []).map(num).reduce((t, c) => t + c, 0);
|
|
19
|
+
const head = { count: num(dp.count), sum: dp.sum ?? 0, min: dp.min ?? null, max: dp.max ?? null };
|
|
20
|
+
if (positive.length === 0)
|
|
21
|
+
return { ...head, bounds: [], counts: [] };
|
|
22
|
+
const bounds = [bound(offset), ...positive.map((_, i) => bound(offset + i + 1))];
|
|
23
|
+
return { ...head, bounds, counts: [low, ...positive, 0] };
|
|
24
|
+
}
|
|
25
|
+
/** A summary keeps its count and sum. */
|
|
26
|
+
const fromSummary = (dp) => ({ count: num(dp.count), sum: dp.sum ?? 0, bounds: [], counts: [] });
|
|
27
|
+
function shapeOf(m) {
|
|
28
|
+
if (m.gauge)
|
|
29
|
+
return { kind: "gauge", data: m.gauge };
|
|
30
|
+
if (m.sum)
|
|
31
|
+
return { kind: "sum", data: m.sum };
|
|
32
|
+
if (m.histogram)
|
|
33
|
+
return { kind: "histogram", data: m.histogram, histogram: explicit };
|
|
34
|
+
if (m.exponentialHistogram)
|
|
35
|
+
return { kind: "histogram", data: m.exponentialHistogram, histogram: fromExponential };
|
|
36
|
+
if (m.summary)
|
|
37
|
+
return { kind: "histogram", data: m.summary, histogram: fromSummary };
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
/** The points of one OTLP metric. Points that do not pass the core checks are skipped. */
|
|
41
|
+
export function pointsOf(m, service, redactKeys) {
|
|
42
|
+
const shape = shapeOf(m);
|
|
43
|
+
if (!shape || !m.name)
|
|
44
|
+
return [];
|
|
45
|
+
const temporality = temporalityOf(shape.data.aggregationTemporality);
|
|
46
|
+
return (shape.data.dataPoints ?? []).flatMap((dp) => {
|
|
47
|
+
const startMs = nanosToMs(dp.startTimeUnixNano);
|
|
48
|
+
const raw = {
|
|
49
|
+
name: m.name,
|
|
50
|
+
kind: shape.kind,
|
|
51
|
+
unit: m.unit ?? "",
|
|
52
|
+
description: m.description,
|
|
53
|
+
attributes: attributesOf(dp.attributes),
|
|
54
|
+
timeMs: nanosToMs(dp.timeUnixNano),
|
|
55
|
+
startMs: startMs || undefined,
|
|
56
|
+
monotonic: shape.data.isMonotonic === true,
|
|
57
|
+
temporality: shape.kind === "gauge" ? undefined : m.summary ? "cumulative" : temporality,
|
|
58
|
+
value: dp.asDouble ?? (dp.asInt !== undefined ? num(dp.asInt) : undefined),
|
|
59
|
+
histogram: shape.histogram?.(dp),
|
|
60
|
+
};
|
|
61
|
+
const p = sanitizeMetricPoint(raw, redactKeys, service);
|
|
62
|
+
return p ? [p] : [];
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** One write per resource: each resource is one sender. */
|
|
66
|
+
export function writesFromMetrics(list, redactKeys) {
|
|
67
|
+
return list.map((rm) => {
|
|
68
|
+
const sender = senderOf(rm.resource);
|
|
69
|
+
const metrics = (rm.scopeMetrics ?? []).flatMap((sm) => (sm.metrics ?? []).flatMap((m) => pointsOf(m, sender.service, redactKeys)));
|
|
70
|
+
return { sender, via: "otlp", spans: [], logs: [], remotes: [], metrics };
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/otlp/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OtlpResourceLogs } from "./logs.js";
|
|
2
|
+
import type { OtlpResourceMetrics } from "./metrics.js";
|
|
3
|
+
import type { OtlpResourceSpans } from "./spans.js";
|
|
4
|
+
export declare const decodeTraces: (body: Uint8Array) => OtlpResourceSpans[];
|
|
5
|
+
export declare const decodeLogs: (body: Uint8Array) => OtlpResourceLogs[];
|
|
6
|
+
export declare const decodeMetrics: (body: Uint8Array) => OtlpResourceMetrics[];
|
|
7
|
+
/** Encode a request, for tests and for tools that send protobuf. */
|
|
8
|
+
export declare const encodeTraces: (request: {
|
|
9
|
+
resourceSpans: unknown[];
|
|
10
|
+
}) => Uint8Array;
|
|
11
|
+
export declare const encodeMetrics: (request: {
|
|
12
|
+
resourceMetrics: unknown[];
|
|
13
|
+
}) => Uint8Array;
|
|
14
|
+
//# sourceMappingURL=proto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.d.ts","sourceRoot":"","sources":["../../src/otlp/proto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAoIpD,eAAO,MAAM,YAAY,SAAU,UAAU,KAAG,iBAAiB,EACmC,CAAC;AAErG,eAAO,MAAM,UAAU,SAAU,UAAU,KAAG,gBAAgB,EACmC,CAAC;AAElG,eAAO,MAAM,aAAa,SAAU,UAAU,KAAG,mBAAmB,EACsC,CAAC;AAO3G,oEAAoE;AACpE,eAAO,MAAM,YAAY,YAAa;IAAE,aAAa,EAAE,OAAO,EAAE,CAAA;CAAE,KAAG,UAA0D,CAAC;AAEhI,eAAO,MAAM,aAAa,YAAa;IAAE,eAAe,EAAE,OAAO,EAAE,CAAA;CAAE,KAAG,UAA4D,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import protobuf from "protobufjs";
|
|
2
|
+
const msg = (fields, oneof) => ({
|
|
3
|
+
fields: Object.fromEntries(Object.entries(fields).map(([k, [type, id, rule]]) => [k, rule ? { type, id, rule } : { type, id }])),
|
|
4
|
+
...(oneof ? { oneofs: { value: { oneof } } } : {}),
|
|
5
|
+
});
|
|
6
|
+
const VALUE_FIELDS = ["stringValue", "boolValue", "intValue", "doubleValue", "arrayValue", "kvlistValue", "bytesValue"];
|
|
7
|
+
const POINT_TIMES = { startTimeUnixNano: ["fixed64", 2], timeUnixNano: ["fixed64", 3] };
|
|
8
|
+
// metrics.proto: Gauge, Sum, Histogram, ExponentialHistogram, and Summary. Exemplars are not read.
|
|
9
|
+
const METRICS = {
|
|
10
|
+
NumberDataPoint: msg({ ...POINT_TIMES, attributes: ["KeyValue", 7, "repeated"], asDouble: ["double", 4], asInt: ["sfixed64", 6] }),
|
|
11
|
+
HistogramDataPoint: msg({
|
|
12
|
+
...POINT_TIMES,
|
|
13
|
+
attributes: ["KeyValue", 9, "repeated"],
|
|
14
|
+
count: ["fixed64", 4],
|
|
15
|
+
sum: ["double", 5],
|
|
16
|
+
bucketCounts: ["fixed64", 6, "repeated"],
|
|
17
|
+
explicitBounds: ["double", 7, "repeated"],
|
|
18
|
+
min: ["double", 11],
|
|
19
|
+
max: ["double", 12],
|
|
20
|
+
}),
|
|
21
|
+
Buckets: msg({ offset: ["sint32", 1], bucketCounts: ["uint64", 2, "repeated"] }),
|
|
22
|
+
ExponentialHistogramDataPoint: msg({
|
|
23
|
+
...POINT_TIMES,
|
|
24
|
+
attributes: ["KeyValue", 1, "repeated"],
|
|
25
|
+
count: ["fixed64", 4],
|
|
26
|
+
sum: ["double", 5],
|
|
27
|
+
scale: ["sint32", 6],
|
|
28
|
+
zeroCount: ["fixed64", 7],
|
|
29
|
+
positive: ["Buckets", 8],
|
|
30
|
+
negative: ["Buckets", 9],
|
|
31
|
+
min: ["double", 12],
|
|
32
|
+
max: ["double", 13],
|
|
33
|
+
}),
|
|
34
|
+
ValueAtQuantile: msg({ quantile: ["double", 1], value: ["double", 2] }),
|
|
35
|
+
SummaryDataPoint: msg({ ...POINT_TIMES, attributes: ["KeyValue", 7, "repeated"], count: ["fixed64", 4], sum: ["double", 5], quantileValues: ["ValueAtQuantile", 6, "repeated"] }),
|
|
36
|
+
Gauge: msg({ dataPoints: ["NumberDataPoint", 1, "repeated"] }),
|
|
37
|
+
Sum: msg({ dataPoints: ["NumberDataPoint", 1, "repeated"], aggregationTemporality: ["int32", 2], isMonotonic: ["bool", 3] }),
|
|
38
|
+
Histogram: msg({ dataPoints: ["HistogramDataPoint", 1, "repeated"], aggregationTemporality: ["int32", 2] }),
|
|
39
|
+
ExponentialHistogram: msg({ dataPoints: ["ExponentialHistogramDataPoint", 1, "repeated"], aggregationTemporality: ["int32", 2] }),
|
|
40
|
+
Summary: msg({ dataPoints: ["SummaryDataPoint", 1, "repeated"] }),
|
|
41
|
+
Metric: msg({
|
|
42
|
+
name: ["string", 1],
|
|
43
|
+
description: ["string", 2],
|
|
44
|
+
unit: ["string", 3],
|
|
45
|
+
gauge: ["Gauge", 5],
|
|
46
|
+
sum: ["Sum", 7],
|
|
47
|
+
histogram: ["Histogram", 9],
|
|
48
|
+
exponentialHistogram: ["ExponentialHistogram", 10],
|
|
49
|
+
summary: ["Summary", 11],
|
|
50
|
+
}),
|
|
51
|
+
ScopeMetrics: msg({ scope: ["Scope", 1], metrics: ["Metric", 2, "repeated"] }),
|
|
52
|
+
ResourceMetrics: msg({ resource: ["Resource", 1], scopeMetrics: ["ScopeMetrics", 2, "repeated"] }),
|
|
53
|
+
ExportMetricsServiceRequest: msg({ resourceMetrics: ["ResourceMetrics", 1, "repeated"] }),
|
|
54
|
+
};
|
|
55
|
+
const DESCRIPTOR = {
|
|
56
|
+
nested: {
|
|
57
|
+
AnyValue: msg({
|
|
58
|
+
stringValue: ["string", 1],
|
|
59
|
+
boolValue: ["bool", 2],
|
|
60
|
+
intValue: ["int64", 3],
|
|
61
|
+
doubleValue: ["double", 4],
|
|
62
|
+
arrayValue: ["ArrayValue", 5],
|
|
63
|
+
kvlistValue: ["KeyValueList", 6],
|
|
64
|
+
bytesValue: ["bytes", 7],
|
|
65
|
+
}, VALUE_FIELDS),
|
|
66
|
+
ArrayValue: msg({ values: ["AnyValue", 1, "repeated"] }),
|
|
67
|
+
KeyValueList: msg({ values: ["KeyValue", 1, "repeated"] }),
|
|
68
|
+
KeyValue: msg({ key: ["string", 1], value: ["AnyValue", 2] }),
|
|
69
|
+
Scope: msg({ name: ["string", 1], version: ["string", 2] }),
|
|
70
|
+
Resource: msg({ attributes: ["KeyValue", 1, "repeated"] }),
|
|
71
|
+
Event: msg({ timeUnixNano: ["fixed64", 1], name: ["string", 2], attributes: ["KeyValue", 3, "repeated"] }),
|
|
72
|
+
Status: msg({ message: ["string", 2], code: ["int32", 3] }),
|
|
73
|
+
Span: msg({
|
|
74
|
+
traceId: ["bytes", 1],
|
|
75
|
+
spanId: ["bytes", 2],
|
|
76
|
+
parentSpanId: ["bytes", 4],
|
|
77
|
+
name: ["string", 5],
|
|
78
|
+
kind: ["int32", 6],
|
|
79
|
+
startTimeUnixNano: ["fixed64", 7],
|
|
80
|
+
endTimeUnixNano: ["fixed64", 8],
|
|
81
|
+
attributes: ["KeyValue", 9, "repeated"],
|
|
82
|
+
events: ["Event", 11, "repeated"],
|
|
83
|
+
status: ["Status", 15],
|
|
84
|
+
}),
|
|
85
|
+
ScopeSpans: msg({ scope: ["Scope", 1], spans: ["Span", 2, "repeated"] }),
|
|
86
|
+
ResourceSpans: msg({ resource: ["Resource", 1], scopeSpans: ["ScopeSpans", 2, "repeated"] }),
|
|
87
|
+
ExportTraceServiceRequest: msg({ resourceSpans: ["ResourceSpans", 1, "repeated"] }),
|
|
88
|
+
LogRecord: msg({
|
|
89
|
+
timeUnixNano: ["fixed64", 1],
|
|
90
|
+
severityNumber: ["int32", 2],
|
|
91
|
+
severityText: ["string", 3],
|
|
92
|
+
body: ["AnyValue", 5],
|
|
93
|
+
attributes: ["KeyValue", 6, "repeated"],
|
|
94
|
+
traceId: ["bytes", 9],
|
|
95
|
+
spanId: ["bytes", 10],
|
|
96
|
+
observedTimeUnixNano: ["fixed64", 11],
|
|
97
|
+
}),
|
|
98
|
+
ScopeLogs: msg({ scope: ["Scope", 1], logRecords: ["LogRecord", 2, "repeated"] }),
|
|
99
|
+
ResourceLogs: msg({ resource: ["Resource", 1], scopeLogs: ["ScopeLogs", 2, "repeated"] }),
|
|
100
|
+
ExportLogsServiceRequest: msg({ resourceLogs: ["ResourceLogs", 1, "repeated"] }),
|
|
101
|
+
...METRICS,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const root = protobuf.Root.fromJSON(DESCRIPTOR);
|
|
105
|
+
const TO_OBJECT = { longs: String, bytes: String, defaults: false, oneofs: false };
|
|
106
|
+
const ID_KEYS = new Set(["traceId", "spanId", "parentSpanId"]);
|
|
107
|
+
/** protobufjs gives bytes as base64. OTLP/JSON uses hex for ids, so convert them the same way. */
|
|
108
|
+
function hexIds(value) {
|
|
109
|
+
if (Array.isArray(value))
|
|
110
|
+
return value.map(hexIds);
|
|
111
|
+
if (!value || typeof value !== "object")
|
|
112
|
+
return value;
|
|
113
|
+
const out = {};
|
|
114
|
+
for (const [k, v] of Object.entries(value))
|
|
115
|
+
out[k] = ID_KEYS.has(k) && typeof v === "string" ? Buffer.from(v, "base64").toString("hex") : hexIds(v);
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
function decode(type, body) {
|
|
119
|
+
const t = root.lookupType(type);
|
|
120
|
+
return hexIds(t.toObject(t.decode(body), TO_OBJECT));
|
|
121
|
+
}
|
|
122
|
+
export const decodeTraces = (body) => decode("ExportTraceServiceRequest", body).resourceSpans ?? [];
|
|
123
|
+
export const decodeLogs = (body) => decode("ExportLogsServiceRequest", body).resourceLogs ?? [];
|
|
124
|
+
export const decodeMetrics = (body) => decode("ExportMetricsServiceRequest", body).resourceMetrics ?? [];
|
|
125
|
+
function encode(type, request) {
|
|
126
|
+
const t = root.lookupType(type);
|
|
127
|
+
return t.encode(t.fromObject(request)).finish();
|
|
128
|
+
}
|
|
129
|
+
/** Encode a request, for tests and for tools that send protobuf. */
|
|
130
|
+
export const encodeTraces = (request) => encode("ExportTraceServiceRequest", request);
|
|
131
|
+
export const encodeMetrics = (request) => encode("ExportMetricsServiceRequest", request);
|
|
132
|
+
//# sourceMappingURL=proto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../../src/otlp/proto.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAOlC,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,KAAgB,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAChI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAExH,MAAM,WAAW,GAAW,EAAE,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;AAEhG,mGAAmG;AACnG,MAAM,OAAO,GAAG;IACd,eAAe,EAAE,GAAG,CAAC,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;IAClI,kBAAkB,EAAE,GAAG,CAAC;QACtB,GAAG,WAAW;QACd,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC;QACvC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClB,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC;QACxC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC;QACzC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IAChF,6BAA6B,EAAE,GAAG,CAAC;QACjC,GAAG,WAAW;QACd,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC;QACvC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClB,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpB,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACxB,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACxB,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KACpB,CAAC;IACF,eAAe,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;IACvE,gBAAgB,EAAE,GAAG,CAAC,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IACjL,KAAK,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IAC9D,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5H,SAAS,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3G,oBAAoB,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,+BAA+B,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;IACjI,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IACjE,MAAM,EAAE,GAAG,CAAC;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnB,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACf,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,oBAAoB,EAAE,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IAC9E,eAAe,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IAClG,2BAA2B,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;CAC1F,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG,CACX;YACE,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1B,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1B,UAAU,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7B,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;YAChC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;SACzB,EACD,YAAY,CACb;QACD,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACxD,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1D,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7D,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3D,QAAQ,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1D,KAAK,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1G,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,EAAE,GAAG,CAAC;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAClB,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YACjC,eAAe,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/B,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC;YACvC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC;YACjC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;SACvB,CAAC;QACF,UAAU,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACxE,aAAa,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5F,yBAAyB,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACnF,SAAS,EAAE,GAAG,CAAC;YACb,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5B,cAAc,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5B,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;YACrB,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC;YACvC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACrB,oBAAoB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;SACtC,CAAC;QACF,SAAS,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACjF,YAAY,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACzF,wBAAwB,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAChF,GAAG,OAAO;KACX;CACF,CAAC;AAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChD,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAW,CAAC;AAC5F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;AAE/D,kGAAkG;AAClG,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,IAAgB;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAA4B,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAuB,EAAE,CACnE,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC,aAAiD,IAAI,EAAE,CAAC;AAErG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAsB,EAAE,CAChE,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC,YAA+C,IAAI,EAAE,CAAC;AAElG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAyB,EAAE,CACtE,MAAM,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC,eAAqD,IAAI,EAAE,CAAC;AAE3G,SAAS,MAAM,CAAC,IAAY,EAAE,OAAe;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAqC,EAAc,EAAE,CAAC,MAAM,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;AAEhI,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAuC,EAAc,EAAE,CAAC,MAAM,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Span } from "@wizeworks/lens-core";
|
|
2
|
+
import type { HubWrite } from "../store.js";
|
|
3
|
+
import { type OtlpKeyValue, type OtlpResource } from "./values.js";
|
|
4
|
+
export interface OtlpSpan {
|
|
5
|
+
traceId?: string;
|
|
6
|
+
spanId?: string;
|
|
7
|
+
parentSpanId?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
kind?: number | string;
|
|
10
|
+
startTimeUnixNano?: string | number;
|
|
11
|
+
endTimeUnixNano?: string | number;
|
|
12
|
+
attributes?: OtlpKeyValue[];
|
|
13
|
+
events?: {
|
|
14
|
+
timeUnixNano?: string | number;
|
|
15
|
+
name?: string;
|
|
16
|
+
attributes?: OtlpKeyValue[];
|
|
17
|
+
}[];
|
|
18
|
+
status?: {
|
|
19
|
+
code?: number | string;
|
|
20
|
+
message?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface OtlpResourceSpans {
|
|
24
|
+
resource?: OtlpResource;
|
|
25
|
+
scopeSpans?: {
|
|
26
|
+
spans?: OtlpSpan[];
|
|
27
|
+
}[];
|
|
28
|
+
}
|
|
29
|
+
/** One OTLP span as a contract span. Null when its ids are not valid. */
|
|
30
|
+
export declare function toSpan(s: OtlpSpan, service: string, redactKeys: readonly string[]): Span | null;
|
|
31
|
+
/** One write per resource: each resource is one sender. */
|
|
32
|
+
export declare function writesFromSpans(list: readonly OtlpResourceSpans[], redactKeys: readonly string[]): HubWrite[];
|
|
33
|
+
//# sourceMappingURL=spans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spans.d.ts","sourceRoot":"","sources":["../../src/otlp/spans.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,IAAI,EAAoC,MAAM,sBAAsB,CAAC;AAChI,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAkC,KAAK,YAAY,EAAE,KAAK,YAAY,EAAY,MAAM,aAAa,CAAC;AAE7G,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;KAAE,EAAE,CAAC;IAC1F,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,EAAE,CAAC;CACvC;AAqCD,yEAAyE;AACzE,wBAAgB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CA4B/F;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,EAAE,CAO7G"}
|