@dxos/observability 0.6.3-main.e6314a6 → 0.6.3-main.fe243fc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/lib/browser/{chunk-2CXA7PYK.mjs → chunk-7HCG6KYK.mjs} +174 -133
  2. package/dist/lib/browser/chunk-7HCG6KYK.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +2 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/observability-IFDZJFY2.mjs +8 -0
  6. package/dist/lib/node/{chunk-HBLKTDQE.cjs → chunk-63FCWS3M.cjs} +170 -136
  7. package/dist/lib/node/chunk-63FCWS3M.cjs.map +7 -0
  8. package/dist/lib/node/index.cjs +16 -15
  9. package/dist/lib/node/index.cjs.map +2 -2
  10. package/dist/lib/node/meta.json +1 -1
  11. package/dist/lib/node/{observability-4R6M4JMU.cjs → observability-W7TVZP2V.cjs} +7 -6
  12. package/dist/lib/node/observability-W7TVZP2V.cjs.map +7 -0
  13. package/dist/types/src/cli-observability-secrets.json +1 -3
  14. package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
  15. package/dist/types/src/helpers/browser-observability.js +0 -1
  16. package/dist/types/src/helpers/browser-observability.js.map +1 -1
  17. package/dist/types/src/observability.d.ts +0 -9
  18. package/dist/types/src/observability.d.ts.map +1 -1
  19. package/dist/types/src/observability.js +13 -90
  20. package/dist/types/src/observability.js.map +1 -1
  21. package/package.json +20 -35
  22. package/src/cli-observability-secrets.json +1 -3
  23. package/src/helpers/browser-observability.ts +0 -1
  24. package/src/observability.ts +14 -107
  25. package/dist/lib/browser/chunk-2CXA7PYK.mjs.map +0 -7
  26. package/dist/lib/browser/observability-MXAPN7J6.mjs +0 -7
  27. package/dist/lib/browser/otel-BUKBDMAL.mjs +0 -275
  28. package/dist/lib/browser/otel-BUKBDMAL.mjs.map +0 -7
  29. package/dist/lib/browser/sentry-log-processor-DVUUOZ6G.mjs +0 -132
  30. package/dist/lib/browser/sentry-log-processor-DVUUOZ6G.mjs.map +0 -7
  31. package/dist/lib/node/chunk-HBLKTDQE.cjs.map +0 -7
  32. package/dist/lib/node/observability-4R6M4JMU.cjs.map +0 -7
  33. package/dist/lib/node/otel-TSHMOAB4.cjs +0 -276
  34. package/dist/lib/node/otel-TSHMOAB4.cjs.map +0 -7
  35. package/dist/lib/node/sentry-log-processor-H6FUSKZI.cjs +0 -150
  36. package/dist/lib/node/sentry-log-processor-H6FUSKZI.cjs.map +0 -7
  37. package/dist/types/src/otel/index.d.ts +0 -5
  38. package/dist/types/src/otel/index.d.ts.map +0 -1
  39. package/dist/types/src/otel/index.js +0 -24
  40. package/dist/types/src/otel/index.js.map +0 -1
  41. package/dist/types/src/otel/logs.d.ts +0 -11
  42. package/dist/types/src/otel/logs.d.ts.map +0 -1
  43. package/dist/types/src/otel/logs.js +0 -72
  44. package/dist/types/src/otel/logs.js.map +0 -1
  45. package/dist/types/src/otel/metrics.d.ts +0 -14
  46. package/dist/types/src/otel/metrics.d.ts.map +0 -1
  47. package/dist/types/src/otel/metrics.js +0 -91
  48. package/dist/types/src/otel/metrics.js.map +0 -1
  49. package/dist/types/src/otel/otel.d.ts +0 -12
  50. package/dist/types/src/otel/otel.d.ts.map +0 -1
  51. package/dist/types/src/otel/otel.js +0 -15
  52. package/dist/types/src/otel/otel.js.map +0 -1
  53. package/dist/types/src/otel/traces-browser.d.ts +0 -8
  54. package/dist/types/src/otel/traces-browser.d.ts.map +0 -1
  55. package/dist/types/src/otel/traces-browser.js +0 -51
  56. package/dist/types/src/otel/traces-browser.js.map +0 -1
  57. package/dist/types/src/otel/traces.d.ts +0 -8
  58. package/dist/types/src/otel/traces.d.ts.map +0 -1
  59. package/dist/types/src/otel/traces.js +0 -44
  60. package/dist/types/src/otel/traces.js.map +0 -1
  61. package/src/otel/index.ts +0 -8
  62. package/src/otel/logs.ts +0 -86
  63. package/src/otel/metrics.ts +0 -111
  64. package/src/otel/otel.ts +0 -21
  65. package/src/otel/traces-browser.ts +0 -59
  66. package/src/otel/traces.ts +0 -57
  67. /package/dist/lib/browser/{observability-MXAPN7J6.mjs.map → observability-IFDZJFY2.mjs.map} +0 -0
@@ -1,150 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var sentry_log_processor_H6FUSKZI_exports = {};
20
- __export(sentry_log_processor_H6FUSKZI_exports, {
21
- SentryLogProcessor: () => SentryLogProcessor
22
- });
23
- module.exports = __toCommonJS(sentry_log_processor_H6FUSKZI_exports);
24
- var import_chunk_HKBUNAUG = require("./chunk-HKBUNAUG.cjs");
25
- var import_invariant = require("@dxos/invariant");
26
- var import_log = require("@dxos/log");
27
- var import_util = require("@dxos/util");
28
- var MAX_LOG_BREADCRUMBS = 80;
29
- var SentryLogProcessor = class {
30
- constructor() {
31
- this._breadcrumbs = new import_util.CircularBuffer(MAX_LOG_BREADCRUMBS);
32
- this.logProcessor = (config, entry) => {
33
- const { level, meta, error } = entry;
34
- if (!(0, import_log.shouldLog)(entry, config.captureFilters) || meta?.S?.remoteSessionId) {
35
- return;
36
- }
37
- if (entry.level !== import_log.LogLevel.WARN && entry.level !== import_log.LogLevel.ERROR) {
38
- return;
39
- }
40
- (0, import_chunk_HKBUNAUG.withScope)((scope) => {
41
- const severity = convertLevel(level);
42
- scope.setLevel(severity);
43
- scope.setContext("dxoslog", entry.context ?? null);
44
- if (meta) {
45
- scope.setTag("transaction", `${getRelativeFilename(meta.F)}:${meta.L}`);
46
- if (meta.S?.hostSessionId) {
47
- scope.setTags({
48
- service_host_issue: true,
49
- service_host_session: meta.S?.hostSessionId
50
- });
51
- }
52
- if (!Number.isNaN(meta.S?.uptimeSeconds)) {
53
- scope.setExtra("uptime_seconds", meta.S?.uptimeSeconds);
54
- }
55
- }
56
- const extendedMessage = formatMessageForSentry(entry);
57
- let capturedError = error;
58
- if (capturedError == null && entry.level === import_log.LogLevel.ERROR) {
59
- capturedError = Object.values(entry.context ?? {}).find((v) => v instanceof Error);
60
- }
61
- if (capturedError) {
62
- if (capturedError instanceof import_invariant.InvariantViolation) {
63
- scope.setExtra("invariant_violation", true);
64
- }
65
- const isMessageDifferentFromStackTrace = error == null;
66
- if (isMessageDifferentFromStackTrace) {
67
- scope.setExtra("message", extendedMessage);
68
- }
69
- const eventId2 = (0, import_chunk_HKBUNAUG.captureException)(capturedError);
70
- this._addBreadcrumb(eventId2, extendedMessage, severity, entry.context);
71
- return;
72
- }
73
- scope.setFingerprint([
74
- entry.message
75
- ]);
76
- const eventId = (0, import_chunk_HKBUNAUG.captureMessage)(extendedMessage);
77
- this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
78
- });
79
- };
80
- }
81
- addLogBreadcrumbsTo(event) {
82
- event.breadcrumbs ??= [];
83
- for (const breadcrumb of this._breadcrumbs) {
84
- event.breadcrumbs.push(breadcrumb);
85
- }
86
- event.breadcrumbs.sort((b1, b2) => {
87
- if (b1.timestamp === void 0 || b2.timestamp === void 0) {
88
- return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === void 0 ? -1 : 1;
89
- }
90
- return b1.timestamp - b2.timestamp;
91
- });
92
- }
93
- _addBreadcrumb(eventId, message, severity, context) {
94
- const breadcrumb = {
95
- type: "console",
96
- level: severity,
97
- event_id: eventId,
98
- category: "log",
99
- message,
100
- data: context,
101
- timestamp: Math.floor(Date.now() / 1e3)
102
- };
103
- const lastRecorded = this._breadcrumbs.getLast();
104
- if (lastRecorded && lastRecorded.message === breadcrumb.message) {
105
- const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};
106
- const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount) ? 1 : Number(lastRecorded.data?.mergedBreadcrumbCount);
107
- lastRecorded.data = {
108
- mergedBreadcrumbCount: mergedBreadcrumbCount + 1,
109
- firstBreadcrumbData,
110
- lastBreadcrumbData: breadcrumb.data
111
- };
112
- return;
113
- }
114
- this._breadcrumbs.push(breadcrumb);
115
- }
116
- };
117
- var formatMessageForSentry = (entry) => {
118
- let scopePrefix;
119
- if (entry.meta?.S) {
120
- const scope = entry.meta?.S;
121
- scopePrefix = scope.name || (0, import_util.getDebugName)(scope);
122
- }
123
- if (scopePrefix == null) {
124
- return entry.message;
125
- }
126
- const workerPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
127
- return `${workerPrefix}${scopePrefix} ${entry.message}`;
128
- };
129
- var convertLevel = (level) => {
130
- if (level === import_log.LogLevel.TRACE) {
131
- return "debug";
132
- }
133
- if (level === import_log.LogLevel.WARN) {
134
- return "warning";
135
- }
136
- return import_log.LogLevel[level].toLowerCase();
137
- };
138
- var getRelativeFilename = (filename) => {
139
- const match = filename.match(/.+\/(packages\/.+\/.+)/);
140
- if (match) {
141
- const [, filePath] = match;
142
- return filePath;
143
- }
144
- return filename;
145
- };
146
- // Annotate the CommonJS export names for ESM import in node:
147
- 0 && (module.exports = {
148
- SentryLogProcessor
149
- });
150
- //# sourceMappingURL=sentry-log-processor-H6FUSKZI.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/sentry/sentry-log-processor.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Breadcrumb, SeverityLevel, Event } from '@sentry/types';\n\nimport { InvariantViolation } from '@dxos/invariant';\nimport { type LogConfig, type LogEntry, LogLevel, type LogProcessor, shouldLog } from '@dxos/log';\nimport { CircularBuffer, getDebugName } from '@dxos/util';\n\nimport { withScope, captureException, captureMessage } from './node';\n\nconst MAX_LOG_BREADCRUMBS = 80;\n\nexport class SentryLogProcessor {\n private _breadcrumbs = new CircularBuffer<Breadcrumb>(MAX_LOG_BREADCRUMBS);\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const { level, meta, error } = entry;\n // Don't forward logs from remote sessions.\n if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {\n return;\n }\n if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {\n return;\n }\n // TODO(nf): add rate limiting to avoid spamming Sentry/consuming excessive quota.\n withScope((scope) => {\n const severity = convertLevel(level);\n scope.setLevel(severity);\n scope.setContext('dxoslog', entry.context ?? null);\n if (meta) {\n scope.setTag('transaction', `${getRelativeFilename(meta.F)}:${meta.L}`);\n\n if (meta.S?.hostSessionId) {\n scope.setTags({\n service_host_issue: true,\n service_host_session: meta.S?.hostSessionId,\n });\n }\n\n if (!Number.isNaN(meta.S?.uptimeSeconds)) {\n scope.setExtra('uptime_seconds', meta.S?.uptimeSeconds);\n }\n }\n\n const extendedMessage = formatMessageForSentry(entry);\n let capturedError = error;\n if (capturedError == null && entry.level === LogLevel.ERROR) {\n capturedError = Object.values(entry.context ?? {}).find((v): v is Error => v instanceof Error);\n }\n if (capturedError) {\n if (capturedError instanceof InvariantViolation) {\n scope.setExtra('invariant_violation', true);\n }\n const isMessageDifferentFromStackTrace = error == null;\n if (isMessageDifferentFromStackTrace) {\n scope.setExtra('message', extendedMessage);\n }\n const eventId = captureException(capturedError);\n this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);\n return;\n }\n\n scope.setFingerprint([entry.message]);\n const eventId = captureMessage(extendedMessage);\n this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);\n });\n };\n\n public addLogBreadcrumbsTo(event: Event) {\n event.breadcrumbs ??= [];\n for (const breadcrumb of this._breadcrumbs) {\n event.breadcrumbs.push(breadcrumb);\n }\n event.breadcrumbs.sort((b1, b2) => {\n if (b1.timestamp === undefined || b2.timestamp === undefined) {\n return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === undefined ? -1 : 1;\n }\n return b1.timestamp - b2.timestamp;\n });\n }\n\n private _addBreadcrumb(\n eventId: string,\n message: string,\n severity: SeverityLevel,\n context: { [key: string]: any } | undefined,\n ): void {\n const breadcrumb: Breadcrumb = {\n type: 'console',\n level: severity,\n event_id: eventId,\n category: 'log',\n message,\n data: context,\n timestamp: Math.floor(Date.now() / 1000),\n };\n const lastRecorded = this._breadcrumbs.getLast();\n if (lastRecorded && lastRecorded.message === breadcrumb.message) {\n const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};\n const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount)\n ? 1\n : Number(lastRecorded.data?.mergedBreadcrumbCount);\n lastRecorded.data = {\n mergedBreadcrumbCount: mergedBreadcrumbCount + 1,\n firstBreadcrumbData,\n lastBreadcrumbData: breadcrumb.data,\n };\n return;\n }\n this._breadcrumbs.push(breadcrumb);\n }\n}\n\nconst formatMessageForSentry = (entry: LogEntry) => {\n let scopePrefix: string | undefined;\n if (entry.meta?.S) {\n const scope = entry.meta?.S;\n scopePrefix = scope.name || getDebugName(scope);\n }\n if (scopePrefix == null) {\n return entry.message;\n }\n const workerPrefix = entry.meta?.S?.hostSessionId ? '[worker] ' : '';\n return `${workerPrefix}${scopePrefix} ${entry.message}`;\n};\n\nconst convertLevel = (level: LogLevel): SeverityLevel => {\n if (level === LogLevel.TRACE) {\n return 'debug';\n }\n if (level === LogLevel.WARN) {\n return 'warning';\n }\n return LogLevel[level].toLowerCase() as SeverityLevel;\n};\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n"],
5
- "mappings": "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",
6
- "names": ["MAX_LOG_BREADCRUMBS", "SentryLogProcessor", "_breadcrumbs", "CircularBuffer", "logProcessor", "config", "entry", "level", "meta", "error", "shouldLog", "captureFilters", "S", "remoteSessionId", "LogLevel", "WARN", "ERROR", "withScope", "scope", "severity", "convertLevel", "setLevel", "setContext", "context", "setTag", "getRelativeFilename", "F", "L", "hostSessionId", "setTags", "service_host_issue", "service_host_session", "Number", "isNaN", "uptimeSeconds", "setExtra", "extendedMessage", "formatMessageForSentry", "capturedError", "Object", "values", "find", "v", "Error", "InvariantViolation", "isMessageDifferentFromStackTrace", "eventId", "captureException", "_addBreadcrumb", "setFingerprint", "message", "captureMessage", "addLogBreadcrumbsTo", "event", "breadcrumbs", "breadcrumb", "push", "sort", "b1", "b2", "timestamp", "undefined", "type", "event_id", "category", "data", "Math", "floor", "Date", "now", "lastRecorded", "getLast", "firstBreadcrumbData", "mergedBreadcrumbCount", "lastBreadcrumbData", "scopePrefix", "name", "getDebugName", "workerPrefix", "TRACE", "toLowerCase", "filename", "match", "filePath"]
7
- }
@@ -1,5 +0,0 @@
1
- export * from './otel';
2
- export * from './logs';
3
- export * from './metrics';
4
- export * from './traces';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/otel/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- __exportStar(require("./otel"), exports);
21
- __exportStar(require("./logs"), exports);
22
- __exportStar(require("./metrics"), exports);
23
- __exportStar(require("./traces"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/otel/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB"}
@@ -1,11 +0,0 @@
1
- import { type LogProcessor } from '@dxos/log';
2
- import { type OtelOptions } from './otel';
3
- export declare class OtelLogs {
4
- private readonly options;
5
- private _loggerProvider;
6
- constructor(options: OtelOptions);
7
- readonly logProcessor: LogProcessor;
8
- flush(): Promise<void>;
9
- close(): Promise<void>;
10
- }
11
- //# sourceMappingURL=logs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/otel/logs.ts"],"names":[],"mappings":"AAUA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,QAAQ,CAAC;AAEzD,qBAAa,QAAQ;IAEP,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,eAAe,CAAiB;gBACX,OAAO,EAAE,WAAW;IAmBjD,SAAgB,YAAY,EAAE,YAAY,CAiBxC;IAEF,KAAK;IAIL,KAAK;CAGN"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.OtelLogs = void 0;
7
- const api_logs_1 = require("@opentelemetry/api-logs");
8
- const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
9
- const resources_1 = require("@opentelemetry/resources");
10
- const sdk_logs_1 = require("@opentelemetry/sdk-logs");
11
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
12
- const log_1 = require("@dxos/log");
13
- const util_1 = require("@dxos/util");
14
- const otel_1 = require("./otel");
15
- class OtelLogs {
16
- constructor(options) {
17
- this.options = options;
18
- this.logProcessor = (config, entry) => {
19
- var _a, _b;
20
- const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);
21
- if (!(0, log_1.shouldLog)(entry, config.captureFilters) || ((_b = (_a = entry.meta) === null || _a === void 0 ? void 0 : _a.S) === null || _b === void 0 ? void 0 : _b.remoteSessionId)) {
22
- return;
23
- }
24
- const record = {
25
- ...entry,
26
- ...(entry.meta ? { meta: { file: (0, log_1.getRelativeFilename)(entry.meta.F), line: entry.meta.L } } : {}),
27
- context: (0, util_1.jsonlogify)((0, log_1.getContextFromEntry)(entry)),
28
- };
29
- logger.emit({
30
- severityNumber: convertLevel(entry.level),
31
- body: JSON.stringify(record),
32
- attributes: this.options.getTags(),
33
- });
34
- };
35
- (0, otel_1.setDiagLogger)(options.consoleDiagLogLevel);
36
- const resource = resources_1.Resource.default().merge(new resources_1.Resource({
37
- [semantic_conventions_1.SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
38
- [semantic_conventions_1.SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,
39
- }));
40
- const logExporter = new exporter_logs_otlp_http_1.OTLPLogExporter({
41
- url: this.options.endpoint + '/v1/logs',
42
- headers: {
43
- Authorization: this.options.authorizationHeader,
44
- },
45
- concurrencyLimit: 10, // an optional limit on pending requests
46
- });
47
- this._loggerProvider = new sdk_logs_1.LoggerProvider({ resource });
48
- this._loggerProvider.addLogRecordProcessor(new sdk_logs_1.BatchLogRecordProcessor(logExporter));
49
- }
50
- flush() {
51
- return this._loggerProvider.forceFlush();
52
- }
53
- close() {
54
- return this._loggerProvider.shutdown();
55
- }
56
- }
57
- exports.OtelLogs = OtelLogs;
58
- const convertLevel = (level) => {
59
- switch (level) {
60
- case log_1.LogLevel.DEBUG:
61
- return api_logs_1.SeverityNumber.DEBUG;
62
- case log_1.LogLevel.INFO:
63
- return api_logs_1.SeverityNumber.INFO;
64
- case log_1.LogLevel.WARN:
65
- return api_logs_1.SeverityNumber.WARN;
66
- case log_1.LogLevel.ERROR:
67
- return api_logs_1.SeverityNumber.ERROR;
68
- default:
69
- return api_logs_1.SeverityNumber.ERROR;
70
- }
71
- };
72
- //# sourceMappingURL=logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/otel/logs.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { type OtelOptions } from './otel';
2
- export declare class OtelMetrics {
3
- private readonly options;
4
- private _meterProvider;
5
- private _meter;
6
- private _gauges;
7
- constructor(options: OtelOptions);
8
- gauge(name: string, value: number, tags?: any): void;
9
- increment(name: string, value?: number, tags?: any): void;
10
- distribution(name: string, value: number, tags?: any): void;
11
- flush(): Promise<void>;
12
- close(): Promise<void>;
13
- }
14
- //# sourceMappingURL=metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/otel/metrics.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,QAAQ,CAAC;AAUzD,qBAAa,WAAW;IAKV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAuC;gBAEzB,OAAO,EAAE,WAAW;IA8CjD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAM7C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAMlD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAMpD,KAAK;IAIL,KAAK;CAGN"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.OtelMetrics = void 0;
7
- const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
8
- const resources_1 = require("@opentelemetry/resources");
9
- const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
10
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
11
- const log_1 = require("@dxos/log");
12
- const tracing_1 = require("@dxos/tracing");
13
- const otel_1 = require("./otel");
14
- const EXPORT_INTERVAL = 60 * 1000;
15
- class OtelMetrics {
16
- constructor(options) {
17
- this.options = options;
18
- this._gauges = new Map();
19
- // TODO: improve error handling/logging
20
- // https://github.com/open-telemetry/opentelemetry-js/issues/4823
21
- (0, otel_1.setDiagLogger)(options.consoleDiagLogLevel);
22
- const resource = resources_1.Resource.default().merge(new resources_1.Resource({
23
- [semantic_conventions_1.SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
24
- [semantic_conventions_1.SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,
25
- }));
26
- const grafanaMetricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
27
- exporter: new exporter_metrics_otlp_http_1.OTLPMetricExporter({
28
- url: this.options.endpoint + '/v1/metrics',
29
- headers: {
30
- Authorization: this.options.authorizationHeader,
31
- },
32
- }),
33
- exportIntervalMillis: EXPORT_INTERVAL,
34
- });
35
- this._meterProvider = new sdk_metrics_1.MeterProvider({
36
- resource,
37
- readers: [grafanaMetricReader],
38
- });
39
- this._meter = this._meterProvider.getMeter('dxos-observability');
40
- const metrics = {
41
- // TODO: update metrics names and remove prefix?
42
- increment: (name, value, data) => {
43
- this.increment(name, value, convertTags(data));
44
- },
45
- distribution: (name, value, data) => {
46
- this.distribution(name, value, convertTags(data));
47
- },
48
- set: (name, value, data) => {
49
- // Not implemented, not part of Otel spec.
50
- },
51
- gauge: (name, value, data) => {
52
- this.gauge(name, value, convertTags(data));
53
- },
54
- };
55
- tracing_1.TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
56
- }
57
- gauge(name, value, tags) {
58
- const gauge = this._meter.createGauge(name);
59
- (0, log_1.log)('otel gauge', { name, value, tags: { ...this.options.getTags(), ...tags } });
60
- gauge.record(value, { ...this.options.getTags(), ...tags });
61
- }
62
- increment(name, value, tags) {
63
- const counter = this._meter.createCounter(name);
64
- (0, log_1.log)('otel counter', { name, value, tags: { ...this.options.getTags(), ...tags } });
65
- counter.add(value !== null && value !== void 0 ? value : 1, { ...this.options.getTags(), ...tags });
66
- }
67
- distribution(name, value, tags) {
68
- const distribution = this._meter.createHistogram(name);
69
- (0, log_1.log)('otel distribution', { name, value, tags: { ...this.options.getTags(), ...tags } });
70
- distribution.record(value, { ...this.options.getTags(), ...tags });
71
- }
72
- flush() {
73
- return this._meterProvider.forceFlush();
74
- }
75
- close() {
76
- return this._meterProvider.shutdown();
77
- }
78
- }
79
- exports.OtelMetrics = OtelMetrics;
80
- const convertTags = (data) => {
81
- if (data && data.tags) {
82
- return Object.entries(data.tags).reduce((obj, [key, value]) => {
83
- obj[key] = value;
84
- return obj;
85
- }, {});
86
- }
87
- else {
88
- return {};
89
- }
90
- };
91
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/otel/metrics.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export type OtelOptions = {
2
- endpoint: string;
3
- authorizationHeader: string;
4
- serviceName: string;
5
- serviceVersion: string;
6
- getTags: () => {
7
- [key: string]: string;
8
- };
9
- consoleDiagLogLevel?: string;
10
- };
11
- export declare const setDiagLogger: (level?: string) => void;
12
- //# sourceMappingURL=otel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../../src/otel/otel.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,SAK3C,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setDiagLogger = void 0;
7
- const api_1 = require("@opentelemetry/api");
8
- const setDiagLogger = (level) => {
9
- const logLevel = api_1.DiagLogLevel[level];
10
- if (logLevel) {
11
- api_1.diag.setLogger(new api_1.DiagConsoleLogger(), logLevel);
12
- }
13
- };
14
- exports.setDiagLogger = setDiagLogger;
15
- //# sourceMappingURL=otel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otel.js","sourceRoot":"","sources":["../../../../src/otel/otel.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,4CAA2E;AAWpE,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,kBAAY,CAAC,KAAkC,CAAC,CAAC;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,UAAI,CAAC,SAAS,CAAC,IAAI,uBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB"}
@@ -1,8 +0,0 @@
1
- import { type OtelOptions } from './otel';
2
- export declare class OtelTraces {
3
- private readonly options;
4
- private _tracer;
5
- constructor(options: OtelOptions);
6
- start(): void;
7
- }
8
- //# sourceMappingURL=traces-browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traces-browser.d.ts","sourceRoot":"","sources":["../../../../src/otel/traces-browser.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,qBAAa,UAAU;IAET,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,OAAO,CAAS;gBACK,OAAO,EAAE,WAAW;IA0B1C,KAAK;CAYb"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.OtelTraces = void 0;
7
- const api_1 = require("@opentelemetry/api");
8
- const auto_instrumentations_web_1 = require("@opentelemetry/auto-instrumentations-web");
9
- const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
10
- const instrumentation_1 = require("@opentelemetry/instrumentation");
11
- const resources_1 = require("@opentelemetry/resources");
12
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
13
- const sdk_trace_web_1 = require("@opentelemetry/sdk-trace-web");
14
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
15
- const log_1 = require("@dxos/log");
16
- const tracing_1 = require("@dxos/tracing");
17
- class OtelTraces {
18
- constructor(options) {
19
- this.options = options;
20
- const resource = resources_1.Resource.default().merge(new resources_1.Resource({
21
- [semantic_conventions_1.SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
22
- [semantic_conventions_1.SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,
23
- }));
24
- const tracerProvider = new sdk_trace_web_1.WebTracerProvider({ resource });
25
- tracerProvider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(new sdk_trace_base_1.ConsoleSpanExporter()));
26
- tracerProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(new exporter_trace_otlp_http_1.OTLPTraceExporter({
27
- url: this.options.endpoint + '/v1/traces',
28
- headers: {
29
- Authorization: this.options.authorizationHeader,
30
- },
31
- concurrencyLimit: 10, // an optional limit on pending requests
32
- })));
33
- // TODO(nf): ContextManager? Propogator?
34
- tracerProvider.register({});
35
- this._tracer = api_1.trace.getTracer('dxos-observability', this.options.serviceVersion);
36
- }
37
- start() {
38
- (0, instrumentation_1.registerInstrumentations)({
39
- instrumentations: [(0, auto_instrumentations_web_1.getWebAutoInstrumentations)()],
40
- });
41
- (0, log_1.log)('trace processor registered');
42
- tracing_1.TRACE_PROCESSOR.remoteTracing.registerProcessor({
43
- startSpan: (options) => {
44
- (0, log_1.log)('begin otel trace', { options });
45
- return this._tracer.startSpan(options.name, options);
46
- },
47
- });
48
- }
49
- }
50
- exports.OtelTraces = OtelTraces;
51
- //# sourceMappingURL=traces-browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traces-browser.js","sourceRoot":"","sources":["../../../../src/otel/traces-browser.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,4CAAwD;AACxD,wFAAsF;AACtF,sFAA4E;AAC5E,oEAA0E;AAC1E,wDAAoD;AACpD,kEAA6G;AAC7G,gEAAiE;AACjE,8EAA4G;AAE5G,mCAAgC;AAChC,2CAAuE;AAIvE,MAAa,UAAU;IAErB,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAC/C,MAAM,QAAQ,GAAG,oBAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,IAAI,oBAAQ,CAAC;YACX,CAAC,+CAAwB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACpD,CAAC,kDAA2B,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;SAC3D,CAAC,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,iCAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,cAAc,CAAC,gBAAgB,CAAC,IAAI,oCAAmB,CAAC,IAAI,oCAAmB,EAAE,CAAC,CAAC,CAAC;QACpF,cAAc,CAAC,gBAAgB,CAC7B,IAAI,mCAAkB,CACpB,IAAI,4CAAiB,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY;YACzC,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;aAChD;YACD,gBAAgB,EAAE,EAAE,EAAE,wCAAwC;SAC/D,CAAC,CACH,CACF,CAAC;QACF,wCAAwC;QACxC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,WAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpF,CAAC;IAEM,KAAK;QACV,IAAA,0CAAwB,EAAC;YACvB,gBAAgB,EAAE,CAAC,IAAA,sDAA0B,GAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAA,SAAG,EAAC,4BAA4B,CAAC,CAAC;QAClC,yBAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC9C,SAAS,EAAE,CAAC,OAAyB,EAAE,EAAE;gBACvC,IAAA,SAAG,EAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAxCD,gCAwCC"}
@@ -1,8 +0,0 @@
1
- import { type OtelOptions } from './otel';
2
- export declare class OtelTraces {
3
- private readonly options;
4
- private _tracer;
5
- constructor(options: OtelOptions);
6
- start(): void;
7
- }
8
- //# sourceMappingURL=traces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../../src/otel/traces.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,qBAAa,UAAU;IAET,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,OAAO,CAAS;gBACK,OAAO,EAAE,WAAW;IAyB1C,KAAK;CASb"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2024 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.OtelTraces = void 0;
7
- const api_1 = require("@opentelemetry/api");
8
- const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
9
- const resources_1 = require("@opentelemetry/resources");
10
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
11
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
12
- const debug_1 = require("debug");
13
- const tracing_1 = require("@dxos/tracing");
14
- class OtelTraces {
15
- constructor(options) {
16
- this.options = options;
17
- const resource = resources_1.Resource.default().merge(new resources_1.Resource({
18
- [semantic_conventions_1.SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
19
- [semantic_conventions_1.SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,
20
- }));
21
- const tracerProvider = new sdk_trace_base_1.BasicTracerProvider({ resource });
22
- tracerProvider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(new sdk_trace_base_1.ConsoleSpanExporter()));
23
- tracerProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(new exporter_trace_otlp_http_1.OTLPTraceExporter({
24
- url: this.options.endpoint + '/v1/traces',
25
- headers: {
26
- Authorization: this.options.authorizationHeader,
27
- },
28
- concurrencyLimit: 10, // an optional limit on pending requests
29
- })));
30
- tracerProvider.register();
31
- this._tracer = api_1.trace.getTracer('dxos-observability', this.options.serviceVersion);
32
- }
33
- start() {
34
- (0, debug_1.log)('trace processor registered');
35
- tracing_1.TRACE_PROCESSOR.remoteTracing.registerProcessor({
36
- startSpan: (options) => {
37
- (0, debug_1.log)('begin otel trace', { options });
38
- return this._tracer.startSpan(options.name, options);
39
- },
40
- });
41
- }
42
- }
43
- exports.OtelTraces = OtelTraces;
44
- //# sourceMappingURL=traces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../../src/otel/traces.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,4CAAwD;AACxD,sFAA4E;AAC5E,wDAAoD;AACpD,kEAKuC;AACvC,8EAA4G;AAC5G,iCAA4B;AAE5B,2CAAuE;AAIvE,MAAa,UAAU;IAErB,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAC/C,MAAM,QAAQ,GAAG,oBAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,IAAI,oBAAQ,CAAC;YACX,CAAC,+CAAwB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACpD,CAAC,kDAA2B,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;SAC3D,CAAC,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,oCAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,cAAc,CAAC,gBAAgB,CAAC,IAAI,oCAAmB,CAAC,IAAI,oCAAmB,EAAE,CAAC,CAAC,CAAC;QACpF,cAAc,CAAC,gBAAgB,CAC7B,IAAI,mCAAkB,CACpB,IAAI,4CAAiB,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY;YACzC,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;aAChD;YACD,gBAAgB,EAAE,EAAE,EAAE,wCAAwC;SAC/D,CAAC,CACH,CACF,CAAC;QACF,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,WAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpF,CAAC;IAEM,KAAK;QACV,IAAA,WAAG,EAAC,4BAA4B,CAAC,CAAC;QAClC,yBAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC9C,SAAS,EAAE,CAAC,OAAyB,EAAE,EAAE;gBACvC,IAAA,WAAG,EAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AApCD,gCAoCC"}
package/src/otel/index.ts DELETED
@@ -1,8 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './otel';
6
- export * from './logs';
7
- export * from './metrics';
8
- export * from './traces';