@geekmidas/telescope 10.0.0-alpha.1 → 10.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{http-BiNtg85L.d.mts → http-D5kn3_Mt.d.mts} +3 -3
- package/dist/{http-BiNtg85L.d.mts.map → http-D5kn3_Mt.d.mts.map} +1 -1
- package/dist/instrumentation/http.d.mts +1 -1
- package/dist/instrumentation/index.cjs +1 -1
- package/dist/instrumentation/index.d.mts +1 -1
- package/dist/instrumentation/index.mjs +1 -1
- package/dist/instrumentation/setup.cjs +1 -1
- package/dist/instrumentation/setup.mjs +1 -1
- package/dist/logger/console.d.cts.map +1 -1
- package/dist/logger/console.d.mts.map +1 -1
- package/dist/logger/pino.d.cts +2 -2
- package/dist/logger/pino.d.mts +2 -2
- package/dist/otel-Bk89b1lX.d.cts.map +1 -1
- package/dist/setup-Bkxm4g6b.d.mts.map +1 -1
- package/dist/{setup-DufxQpi9.cjs → setup-CbqELCtm.cjs} +7 -5
- package/dist/setup-CbqELCtm.cjs.map +1 -0
- package/dist/setup-D58N1f9O.d.cts.map +1 -1
- package/dist/{setup-DC9JMEYZ.mjs → setup-P7dAjwih.mjs} +8 -6
- package/dist/setup-P7dAjwih.mjs.map +1 -0
- package/dist/storage/kysely.d.cts.map +1 -1
- package/dist/tracing-BX8uY2nR.d.cts.map +1 -1
- package/dist/tracing-PnECEbEu.d.mts.map +1 -1
- package/package.json +37 -44
- package/dist/setup-DC9JMEYZ.mjs.map +0 -1
- package/dist/setup-DufxQpi9.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _opentelemetry_api2 from "@opentelemetry/api";
|
|
2
2
|
import { Attributes, Context, Span } from "@opentelemetry/api";
|
|
3
3
|
|
|
4
4
|
//#region src/instrumentation/http.d.ts
|
|
@@ -51,7 +51,7 @@ interface HttpSpanAttributes extends HttpRequestAttributes {
|
|
|
51
51
|
/**
|
|
52
52
|
* Get or create a tracer for constructs instrumentation
|
|
53
53
|
*/
|
|
54
|
-
declare function getConstructsTracer():
|
|
54
|
+
declare function getConstructsTracer(): _opentelemetry_api2.Tracer;
|
|
55
55
|
/**
|
|
56
56
|
* Convert HTTP attributes to OpenTelemetry semantic conventions
|
|
57
57
|
*/
|
|
@@ -104,4 +104,4 @@ declare function isTracingEnabled(): boolean;
|
|
|
104
104
|
//# sourceMappingURL=http.d.ts.map
|
|
105
105
|
//#endregion
|
|
106
106
|
export { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan };
|
|
107
|
-
//# sourceMappingURL=http-
|
|
107
|
+
//# sourceMappingURL=http-D5kn3_Mt.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-
|
|
1
|
+
{"version":3,"file":"http-D5kn3_Mt.d.mts","names":[],"sources":["../src/instrumentation/http.ts"],"sourcesContent":[],"mappings":";;;;;;;AAciB,UAAA,qBAAA,CAAqB;EAerB,MAAA,EAAA,MAAA;EAQA,GAAA,CAAA,EAAA,MAAA;EASA,IAAA,CAAA,EAAA,MAAA;EASA,KAAA,CAAA,EAAA,MAAA;EAAmB,IAAA,CAAA,EAAA,MAAA;EAAA,MACxB,CAAA,EAAA,MAAA,GAAA,OAAA;EAAsB,SACtB,CAAA,EAAA,MAAA;EAAkB,QACtB,CAAA,EAAA,MAAA;EAAc,SACZ,CAAA,EAAA,MAAA;;AAJuD;AAYjE;AAOA;AAAgC,UA7Cf,sBAAA,CA6Ce;EAAA,UAAQ,EAAA,MAAA;EAAkB,YAAG,CAAA,EAAA,MAAA;AAAU;AAgDvE;;;AAEG,UAvFc,kBAAA,CAuFd;EAAO,IAAA,CAAA,EAAA,MAAA;EAkBM,WAAA,CAAA,EAAA,MAAA;EAAkB,IAAA,CAAA,EAAA,MAAA,EAAA;;;;AAGzB;AASO,UA5GC,cAAA,CA4GmB;EAAA,MAAA,CAAA,EAAA,MAAA;EAAA,SAC5B,CAAA,EAAA,MAAA;EAAkB,KACT,CAAA,EAAA,MAAA,EAAA;;AACV;AAqBP;;AACO,UA5HU,kBAAA,SAA2B,qBA4HrC,CAAA;EAAI,QACA,CAAA,EA5HC,sBA4HD;EAAsB,QACxB,CAAA,EA5HG,kBA4HH;EAAK,IAAA,CAAA,EA3HN,cA2HM;EAwCQ,MAAA,CAAA,EAlKZ,UAkKwB;;;;;AAEb,iBA5JL,mBAAA,CAAA,CA4JK,EA5Jc,mBAAA,CAAA,MA4Jd;;;;AAEX,iBAvJM,gBAAA,CAuJN,KAAA,EAvJ8B,kBAuJ9B,CAAA,EAvJmD,UAuJnD;AA0BV;;;AAAwE,iBAjIxD,mBAAA,CAiIwD,OAAA,EAhI9D,MAgI8D,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,EA/HrE,OA+HqE;AAAI;AAW5E;;AAEY,iBA1HI,kBAAA,CA0HJ,OAAA,EAzHF,MAyHE,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,GAAA,CAAA,EAxHL,OAwHK,CAAA,EAvHT,MAuHS,CAAA,MAAA,EAAA,MAAA,CAAA;;;;AAED,iBAhHK,oBAAA,CAgHL,KAAA,EA/GH,kBA+GG,EAAA,aAAA,CAAA,EA9GM,OA8GN,CAAA,EA7GR,IA6GQ;;AAAD;AA2BV;iBAnHgB,WAAA,OACT,gBACI,gCACF;;;;;;;;;;;;;;;iBAwCa,uBACd,+BACI,SAAS,QAAQ;;oBACZ,UACd,QAAQ;;;;iBA0BK,eAAA,4BAA2C,aAAa;;;;iBAWlD,0CAEV,SAAS,QAAQ,iBACf,aACX,QAAQ;;;;iBA2BK,gBAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan } from "../http-
|
|
1
|
+
import { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan } from "../http-D5kn3_Mt.mjs";
|
|
2
2
|
export { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan };
|
|
@@ -4,7 +4,7 @@ const require_http = require('../http-BsqmhurZ.cjs');
|
|
|
4
4
|
const require_hono = require('../hono-CPHX7FAm.cjs');
|
|
5
5
|
const require_middleware = require('../middleware-Bcq6XXGG.cjs');
|
|
6
6
|
const require_otel = require('../otel-BzjOtVxZ.cjs');
|
|
7
|
-
const require_setup = require('../setup-
|
|
7
|
+
const require_setup = require('../setup-CbqELCtm.cjs');
|
|
8
8
|
|
|
9
9
|
exports.NoopSpanProcessor = require_core.NoopSpanProcessor;
|
|
10
10
|
exports.OTelTelemetry = require_otel.OTelTelemetry;
|
|
@@ -2,7 +2,7 @@ import { SpanProcessorOptions, SpanProcessorStrategy } from "../types-BzQ78Efw.m
|
|
|
2
2
|
import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, withTelemetryFlush } from "../core--quSp5Qr.mjs";
|
|
3
3
|
import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "../tracing-PnECEbEu.mjs";
|
|
4
4
|
import { HonoTelemetryMiddlewareOptions, getSpanFromContext, getTraceContextFromHono, honoTelemetryMiddleware, withHonoSpanContext } from "../hono--uKQ7Jgi.mjs";
|
|
5
|
-
import { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan } from "../http-
|
|
5
|
+
import { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan } from "../http-D5kn3_Mt.mjs";
|
|
6
6
|
import { TelemetryMiddlewareOptions, getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext } from "../middleware-oHvo_ZgU.mjs";
|
|
7
7
|
import { OTelTelemetry, OTelTelemetryOptions } from "../otel-lPMsM26e.mjs";
|
|
8
8
|
import { TelemetryOptions, setupTelemetry, shutdownTelemetry } from "../setup-Bkxm4g6b.mjs";
|
|
@@ -4,6 +4,6 @@ import { createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext
|
|
|
4
4
|
import { getSpanFromContext, getTraceContextFromHono, honoTelemetryMiddleware, withHonoSpanContext } from "../hono-Bw-ey6CT.mjs";
|
|
5
5
|
import { getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext } from "../middleware-D1XEHvyy.mjs";
|
|
6
6
|
import { OTelTelemetry } from "../otel-B9bNoeZ2.mjs";
|
|
7
|
-
import { setupTelemetry, shutdownTelemetry } from "../setup-
|
|
7
|
+
import { setupTelemetry, shutdownTelemetry } from "../setup-P7dAjwih.mjs";
|
|
8
8
|
|
|
9
9
|
export { NoopSpanProcessor, OTelTelemetry, addSpanEvent, createChildSpan, createHttpServerSpan, createSpan, createSpanProcessor, enableTelemetryDebug, endHttpSpan, extractTraceContext, flushTelemetry, getActiveSpan, getConstructsTracer, getContextFromEvent, getRecommendedStrategy, getSpanFromContext, getSpanFromEvent, getSpanId, getTraceContextFromHono, getTraceId, honoTelemetryMiddleware, injectTraceContext, isTelemetryInitialized, isTracingEnabled, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, setupTelemetry, shutdownTelemetry, telemetryMiddleware, toOtelAttributes, withChildSpan, withEventContext, withHonoSpanContext, withHttpSpan, withSpan, withSpanSync, withTelemetryFlush };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require('../core-CtVHRJGv.cjs');
|
|
2
|
-
const require_setup = require('../setup-
|
|
2
|
+
const require_setup = require('../setup-CbqELCtm.cjs');
|
|
3
3
|
|
|
4
4
|
exports.setupTelemetry = require_setup.setupTelemetry;
|
|
5
5
|
exports.shutdownTelemetry = require_setup.shutdownTelemetry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.cts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"console.d.cts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,IACQ;AAIzB,CAAA;AAAuC,UAAtB,sBAAA,CAAsB;EAAA;;;EAiBtB,SAAA,EAbL,SAaK;EA+BJ;;;;EA8CA,MACN,CAAA,EAtFG,MAsFH;EAAK;;;EAKC,SA6BL,CAAA,EAAA,MAAA;EAAK;;;EAjFiC,OAAA,CAAA,EA/BnC,MA+BmC,CAAA,MAAA,EAAA,OAAA,CAAA;AAyJ9C;;;;;;AAIkB;;;;;;;;;;;;;;;;;;;;;cA7JL,eAAA,YAA2B;;;;;uBAMlB;;SAwCd;QACD;QACA;SACC;SAGA;SA6BA;;;;;sBAiCa;;;;;oCAac;;;;;;;;;;;;;;;;;;iBA0BnB,qBAAA,YACJ,oBACF,kBACC,0BACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.mts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"console.d.mts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,IACQ;AAIzB,CAAA;AAAuC,UAAtB,sBAAA,CAAsB;EAAA;;;EAiBtB,SAAA,EAbL,SAaK;EA+BJ;;;;EA8CA,MACN,CAAA,EAtFG,MAsFH;EAAK;;;EAKC,SA6BL,CAAA,EAAA,MAAA;EAAK;;;EAjFiC,OAAA,CAAA,EA/BnC,MA+BmC,CAAA,MAAA,EAAA,OAAA,CAAA;AAyJ9C;;;;;;AAIkB;;;;;;;;;;;;;;;;;;;;;cA7JL,eAAA,YAA2B;;;;;uBAMlB;;SAwCd;QACD;QACA;SACC;SAGA;SA6BA;;;;;sBAiCa;;;;;oCAac;;;;;;;;;;;;;;;;;;iBA0BnB,qBAAA,YACJ,oBACF,kBACC,0BACR"}
|
package/dist/logger/pino.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../types-l7Rlb5Mg.cjs";
|
|
2
2
|
import "../MetricsAggregator-4SqelGcG.cjs";
|
|
3
3
|
import { Telescope } from "../Telescope-D4nmwDRA.cjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as stream1 from "stream";
|
|
5
5
|
import build from "pino-abstract-transport";
|
|
6
6
|
|
|
7
7
|
//#region src/logger/pino.d.ts
|
|
@@ -62,7 +62,7 @@ interface TelescopePinoTransportOptions {
|
|
|
62
62
|
* logger.info({ userId: '123' }, 'User logged in');
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
|
-
declare function createPinoTransport(options: TelescopePinoTransportOptions):
|
|
65
|
+
declare function createPinoTransport(options: TelescopePinoTransportOptions): stream1.Transform & build.OnUnknown;
|
|
66
66
|
/**
|
|
67
67
|
* Create a Pino destination that sends logs to Telescope.
|
|
68
68
|
* Alias for createPinoTransport for API compatibility.
|
package/dist/logger/pino.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import "../types-B1EIa_cQ.mjs";
|
|
|
2
2
|
import "../MetricsAggregator-DZrW8ls6.mjs";
|
|
3
3
|
import { Telescope } from "../Telescope-Dl6VSfxd.mjs";
|
|
4
4
|
import build from "pino-abstract-transport";
|
|
5
|
-
import * as
|
|
5
|
+
import * as stream1 from "stream";
|
|
6
6
|
|
|
7
7
|
//#region src/logger/pino.d.ts
|
|
8
8
|
/**
|
|
@@ -62,7 +62,7 @@ interface TelescopePinoTransportOptions {
|
|
|
62
62
|
* logger.info({ userId: '123' }, 'User logged in');
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
|
-
declare function createPinoTransport(options: TelescopePinoTransportOptions):
|
|
65
|
+
declare function createPinoTransport(options: TelescopePinoTransportOptions): stream1.Transform & build.OnUnknown;
|
|
66
66
|
/**
|
|
67
67
|
* Create a Pino destination that sends logs to Telescope.
|
|
68
68
|
* Alias for createPinoTransport for API compatibility.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-Bk89b1lX.d.cts","names":[],"sources":["../src/instrumentation/otel.ts"],"sourcesContent":[],"mappings":";;;;;;AAcA;AAQA;AASiB,UAjBA,gBAAA,
|
|
1
|
+
{"version":3,"file":"otel-Bk89b1lX.d.cts","names":[],"sources":["../src/instrumentation/otel.ts"],"sourcesContent":[],"mappings":";;;;;;AAcA;AAQA;AASiB,UAjBA,gBAAA,CAoBN;EAOM,CAAA,GAAA,EAAA,MAAS,CAAA,EAAA,OAAA;;;;;;AAGL,UAtBJ,gBAAA,CAsBI;EAAgB,KAAS,EAAA,GAAA;EAAK,OAAA,EApBzC,OAoByC;AAanD;AA2DA;;;;AAG4C,UAxF3B,iBAAA,CAwF2B;EAAgB,UAiCzC,EAAA,MAAA;EAAgB,IAAY,CAAA,EAAA,MAAA;EAAiB,OAe3C,CAAA,EArIV,MAqIU,CAAA,MAAA,EAAA,MAAA,CAAA;;;AAnD0B;;;UA3E9B,SAAA;0BACQ,mBAAmB;oBACzB,4BAA4B;sBAC1B,yBAAyB;;;;;UAa7B,oBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2DJ,aAAA,YAAyB;;wBACR;0BAEL,mBAAmB;oBAiCzB,4BAA4B;sBAe1B,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-Bkxm4g6b.d.mts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;
|
|
1
|
+
{"version":3,"file":"setup-Bkxm4g6b.d.mts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;AA0IhB;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAtLsB;;;;YAKX;;;;;;;;0BASc;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BT,cAAA,UAAwB;;;;iBA0IlB,iBAAA,CAAA,GAAqB"}
|
|
@@ -36,7 +36,7 @@ function setupTelemetry(options) {
|
|
|
36
36
|
if (sdk) return;
|
|
37
37
|
const { serviceName, serviceVersion = "1.0.0", endpoint, instrumentPino = true, autoInstrument = true, debug = false, resourceAttributes = {}, headers = {}, spanProcessorStrategy, environment = "server" } = options;
|
|
38
38
|
if (debug) __opentelemetry_api.diag.setLogger(new __opentelemetry_api.DiagConsoleLogger(), __opentelemetry_api.DiagLogLevel.DEBUG);
|
|
39
|
-
const resource =
|
|
39
|
+
const resource = (0, __opentelemetry_resources.resourceFromAttributes)({
|
|
40
40
|
[__opentelemetry_semantic_conventions.ATTR_SERVICE_NAME]: serviceName,
|
|
41
41
|
[__opentelemetry_semantic_conventions.ATTR_SERVICE_VERSION]: serviceVersion,
|
|
42
42
|
...resourceAttributes
|
|
@@ -74,9 +74,11 @@ function setupTelemetry(options) {
|
|
|
74
74
|
url: `${endpoint}/logs`,
|
|
75
75
|
headers
|
|
76
76
|
});
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
|
|
77
|
+
const logProcessor = new __opentelemetry_sdk_logs.BatchLogRecordProcessor({ exporter: logExporter });
|
|
78
|
+
const loggerProvider = new __opentelemetry_sdk_logs.LoggerProvider({
|
|
79
|
+
resource,
|
|
80
|
+
processors: [logProcessor]
|
|
81
|
+
});
|
|
80
82
|
require_core.setGlobalLogProcessor(logProcessor);
|
|
81
83
|
}
|
|
82
84
|
sdk.start();
|
|
@@ -107,4 +109,4 @@ Object.defineProperty(exports, 'shutdownTelemetry', {
|
|
|
107
109
|
return shutdownTelemetry;
|
|
108
110
|
}
|
|
109
111
|
});
|
|
110
|
-
//# sourceMappingURL=setup-
|
|
112
|
+
//# sourceMappingURL=setup-CbqELCtm.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-CbqELCtm.cjs","names":["sdk: NodeSDK | null","options: TelemetryOptions","DiagConsoleLogger","DiagLogLevel","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","PinoInstrumentation","traceExporter: SpanExporter","OTLPTraceExporter","ConsoleSpanExporter","NodeSDK","OTLPLogExporter","BatchLogRecordProcessor","LoggerProvider"],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport {\n\tBatchLogRecordProcessor,\n\tLoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport {\n\tConsoleSpanExporter,\n\ttype SpanExporter,\n} from '@opentelemetry/sdk-trace-node';\nimport {\n\tATTR_SERVICE_NAME,\n\tATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanProcessorStrategy } from '../adapters/types';\nimport {\n\tcreateSpanProcessor,\n\tgetRecommendedStrategy,\n\tsetGlobalLogProcessor,\n\tsetGlobalSpanProcessor,\n} from './core';\n\n/**\n * Options for configuring telemetry\n */\nexport interface TelemetryOptions {\n\t/**\n\t * Service name for resource identification\n\t */\n\tserviceName: string;\n\n\t/**\n\t * Service version\n\t */\n\tserviceVersion?: string;\n\n\t/**\n\t * OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')\n\t * If not provided, traces will be logged to console\n\t */\n\tendpoint?: string;\n\n\t/**\n\t * Whether to instrument Pino for log correlation\n\t * @default true\n\t */\n\tinstrumentPino?: boolean;\n\n\t/**\n\t * Whether to enable auto-instrumentation for common libraries\n\t * (http, fetch, express, etc.)\n\t * @default true\n\t */\n\tautoInstrument?: boolean;\n\n\t/**\n\t * Enable debug logging for OTel SDK\n\t * @default false\n\t */\n\tdebug?: boolean;\n\n\t/**\n\t * Additional resource attributes\n\t */\n\tresourceAttributes?: Record<string, string>;\n\n\t/**\n\t * Headers to send with OTLP requests\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Span processor strategy.\n\t * - 'batch': Efficient batching for long-running servers (default)\n\t * - 'simple': Immediate export for serverless environments (Lambda, Edge)\n\t *\n\t * If not specified, automatically selected based on environment detection.\n\t */\n\tspanProcessorStrategy?: SpanProcessorStrategy;\n\n\t/**\n\t * Environment type for automatic configuration\n\t * @default 'server'\n\t */\n\tenvironment?: 'server' | 'lambda' | 'edge' | 'custom';\n}\n\nlet sdk: NodeSDK | null = null;\n\n/**\n * Set up OpenTelemetry instrumentation.\n * Call this BEFORE importing your application code.\n *\n * @example\n * ```typescript\n * // instrumentation.ts (create this file)\n * import { setupTelemetry } from '@geekmidas/telescope/instrumentation';\n *\n * setupTelemetry({\n * serviceName: 'my-api',\n * endpoint: 'http://localhost:3000/__telescope/v1',\n * });\n *\n * // Then in your entry point:\n * // import './instrumentation';\n * // import { app } from './app';\n * ```\n */\nexport function setupTelemetry(options: TelemetryOptions): void {\n\tif (sdk) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tserviceName,\n\t\tserviceVersion = '1.0.0',\n\t\tendpoint,\n\t\tinstrumentPino = true,\n\t\tautoInstrument = true,\n\t\tdebug = false,\n\t\tresourceAttributes = {},\n\t\theaders = {},\n\t\tspanProcessorStrategy,\n\t\tenvironment = 'server',\n\t} = options;\n\n\t// Enable debug logging if requested\n\tif (debug) {\n\t\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n\t}\n\n\t// Create resource\n\t// `new Resource(...)` went in resources 2.x — a resource is now made from\n\t// attributes by a function, so a detector and a literal produce the same\n\t// thing rather than two shapes that had to be merged.\n\tconst resource = resourceFromAttributes({\n\t\t[ATTR_SERVICE_NAME]: serviceName,\n\t\t[ATTR_SERVICE_VERSION]: serviceVersion,\n\t\t...resourceAttributes,\n\t});\n\n\t// Build instrumentations list\n\tconst instrumentations = [];\n\n\t// Add Pino instrumentation for log correlation\n\tif (instrumentPino) {\n\t\tinstrumentations.push(\n\t\t\tnew PinoInstrumentation({\n\t\t\t\t// Inject trace context into log records\n\t\t\t\tlogHook: (span, record) => {\n\t\t\t\t\trecord.trace_id = span.spanContext().traceId;\n\t\t\t\t\trecord.span_id = span.spanContext().spanId;\n\t\t\t\t\trecord.trace_flags = span.spanContext().traceFlags;\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Add auto-instrumentations for common libraries\n\tif (autoInstrument) {\n\t\tinstrumentations.push(\n\t\t\tgetNodeAutoInstrumentations({\n\t\t\t\t// Disable file system instrumentation (too noisy)\n\t\t\t\t'@opentelemetry/instrumentation-fs': { enabled: false },\n\t\t\t\t// Configure HTTP instrumentation\n\t\t\t\t'@opentelemetry/instrumentation-http': {\n\t\t\t\t\tignoreIncomingRequestHook: (request) => {\n\t\t\t\t\t\t// Ignore health checks and internal routes\n\t\t\t\t\t\tconst path = request.url || '';\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpath.includes('/__health') ||\n\t\t\t\t\t\t\tpath.includes('/__telescope') ||\n\t\t\t\t\t\t\tpath.includes('/favicon')\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Create exporters\n\tlet traceExporter: SpanExporter;\n\tif (endpoint) {\n\t\ttraceExporter = new OTLPTraceExporter({\n\t\t\turl: `${endpoint}/traces`,\n\t\t\theaders,\n\t\t});\n\t} else {\n\t\t// Fall back to console exporter for debugging\n\t\ttraceExporter = new ConsoleSpanExporter();\n\t}\n\n\t// Determine span processor strategy\n\tconst strategy = spanProcessorStrategy ?? getRecommendedStrategy(environment);\n\tconst spanProcessor = createSpanProcessor(traceExporter, { strategy });\n\n\t// Register globally for flush operations\n\tsetGlobalSpanProcessor(spanProcessor);\n\n\t// Create and configure SDK\n\tsdk = new NodeSDK({\n\t\tresource,\n\t\ttraceExporter,\n\t\tspanProcessors: [spanProcessor],\n\t\tinstrumentations,\n\t});\n\n\t// Set up log exporter if endpoint is provided\n\tif (endpoint) {\n\t\tconst logExporter = new OTLPLogExporter({\n\t\t\turl: `${endpoint}/logs`,\n\t\t\theaders,\n\t\t});\n\n\t\t// Both changed in sdk-logs 2.x, and for the same reason the trace SDK\n\t\t// changed: a provider whose processors could be swapped after it had begun\n\t\t// emitting was never safe, so processors are constructor-only and the\n\t\t// exporter is named rather than positional.\n\t\tconst logProcessor = new BatchLogRecordProcessor({\n\t\t\texporter: logExporter,\n\t\t});\n\t\tconst loggerProvider = new LoggerProvider({\n\t\t\tresource,\n\t\t\tprocessors: [logProcessor],\n\t\t});\n\n\t\t// Register for flush operations\n\t\tsetGlobalLogProcessor(logProcessor);\n\t}\n\n\t// Start the SDK\n\tsdk.start();\n\n\t// Graceful shutdown\n\tprocess.on('SIGTERM', () => {\n\t\tsdk\n\t\t\t?.shutdown()\n\t\t\t.then(() => {})\n\t\t\t.catch((_error) => {})\n\t\t\t.finally(() => process.exit(0));\n\t});\n}\n\n/**\n * Shut down telemetry (for testing or graceful shutdown)\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tif (sdk) {\n\t\tawait sdk.shutdown();\n\t\tsdk = null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AA4FA,IAAIA,MAAsB;;;;;;;;;;;;;;;;;;;;AAqB1B,SAAgB,eAAeC,SAAiC;AAC/D,KAAI,IACH;CAGD,MAAM,EACL,aACA,iBAAiB,SACjB,UACA,iBAAiB,MACjB,iBAAiB,MACjB,QAAQ,OACR,qBAAqB,CAAE,GACvB,UAAU,CAAE,GACZ,uBACA,cAAc,UACd,GAAG;AAGJ,KAAI,MACH,0BAAK,UAAU,IAAIC,yCAAqBC,iCAAa,MAAM;CAO5D,MAAM,WAAW,sDAAuB;GACtCC,yDAAoB;GACpBC,4DAAuB;EACxB,GAAG;CACH,EAAC;CAGF,MAAM,mBAAmB,CAAE;AAG3B,KAAI,eACH,kBAAiB,KAChB,IAAIC,yDAAoB,EAEvB,SAAS,CAAC,MAAM,WAAW;AAC1B,SAAO,WAAW,KAAK,aAAa,CAAC;AACrC,SAAO,UAAU,KAAK,aAAa,CAAC;AACpC,SAAO,cAAc,KAAK,aAAa,CAAC;CACxC,EACD,GACD;AAIF,KAAI,eACH,kBAAiB,KAChB,4EAA4B;EAE3B,qCAAqC,EAAE,SAAS,MAAO;EAEvD,uCAAuC,EACtC,2BAA2B,CAAC,YAAY;GAEvC,MAAM,OAAO,QAAQ,OAAO;AAC5B,UACC,KAAK,SAAS,YAAY,IAC1B,KAAK,SAAS,eAAe,IAC7B,KAAK,SAAS,WAAW;EAE1B,EACD;CACD,EAAC,CACF;CAIF,IAAIC;AACJ,KAAI,SACH,iBAAgB,IAAIC,2DAAkB;EACrC,MAAM,EAAE,SAAS;EACjB;CACA;KAGD,iBAAgB,IAAIC;CAIrB,MAAM,WAAW,yBAAyB,oCAAuB,YAAY;CAC7E,MAAM,gBAAgB,iCAAoB,eAAe,EAAE,SAAU,EAAC;AAGtE,qCAAuB,cAAc;AAGrC,OAAM,IAAIC,iCAAQ;EACjB;EACA;EACA,gBAAgB,CAAC,aAAc;EAC/B;CACA;AAGD,KAAI,UAAU;EACb,MAAM,cAAc,IAAIC,wDAAgB;GACvC,MAAM,EAAE,SAAS;GACjB;EACA;EAMD,MAAM,eAAe,IAAIC,iDAAwB,EAChD,UAAU,YACV;EACD,MAAM,iBAAiB,IAAIC,wCAAe;GACzC;GACA,YAAY,CAAC,YAAa;EAC1B;AAGD,qCAAsB,aAAa;CACnC;AAGD,KAAI,OAAO;AAGX,SAAQ,GAAG,WAAW,MAAM;AAC3B,OACG,UAAU,CACX,KAAK,MAAM,CAAE,EAAC,CACd,MAAM,CAAC,WAAW,CAAE,EAAC,CACrB,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC;CAChC,EAAC;AACF;;;;AAKD,eAAsB,oBAAmC;AACxD,KAAI,KAAK;AACR,QAAM,IAAI,UAAU;AACpB,QAAM;CACN;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-D58N1f9O.d.cts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;
|
|
1
|
+
{"version":3,"file":"setup-D58N1f9O.d.cts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;AA0IhB;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAtLsB;;;;YAKX;;;;;;;;0BASc;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BT,cAAA,UAAwB;;;;iBA0IlB,iBAAA,CAAA,GAAqB"}
|
|
@@ -4,7 +4,7 @@ import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentation
|
|
|
4
4
|
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
|
|
5
5
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
6
6
|
import { PinoInstrumentation } from "@opentelemetry/instrumentation-pino";
|
|
7
|
-
import {
|
|
7
|
+
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
8
8
|
import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
|
|
9
9
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
10
10
|
import { ConsoleSpanExporter } from "@opentelemetry/sdk-trace-node";
|
|
@@ -35,7 +35,7 @@ function setupTelemetry(options) {
|
|
|
35
35
|
if (sdk) return;
|
|
36
36
|
const { serviceName, serviceVersion = "1.0.0", endpoint, instrumentPino = true, autoInstrument = true, debug = false, resourceAttributes = {}, headers = {}, spanProcessorStrategy, environment = "server" } = options;
|
|
37
37
|
if (debug) diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);
|
|
38
|
-
const resource =
|
|
38
|
+
const resource = resourceFromAttributes({
|
|
39
39
|
[ATTR_SERVICE_NAME]: serviceName,
|
|
40
40
|
[ATTR_SERVICE_VERSION]: serviceVersion,
|
|
41
41
|
...resourceAttributes
|
|
@@ -73,9 +73,11 @@ function setupTelemetry(options) {
|
|
|
73
73
|
url: `${endpoint}/logs`,
|
|
74
74
|
headers
|
|
75
75
|
});
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
|
|
76
|
+
const logProcessor = new BatchLogRecordProcessor({ exporter: logExporter });
|
|
77
|
+
const loggerProvider = new LoggerProvider({
|
|
78
|
+
resource,
|
|
79
|
+
processors: [logProcessor]
|
|
80
|
+
});
|
|
79
81
|
setGlobalLogProcessor(logProcessor);
|
|
80
82
|
}
|
|
81
83
|
sdk.start();
|
|
@@ -95,4 +97,4 @@ async function shutdownTelemetry() {
|
|
|
95
97
|
|
|
96
98
|
//#endregion
|
|
97
99
|
export { setupTelemetry, shutdownTelemetry };
|
|
98
|
-
//# sourceMappingURL=setup-
|
|
100
|
+
//# sourceMappingURL=setup-P7dAjwih.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-P7dAjwih.mjs","names":["sdk: NodeSDK | null","options: TelemetryOptions","traceExporter: SpanExporter"],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport {\n\tBatchLogRecordProcessor,\n\tLoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport {\n\tConsoleSpanExporter,\n\ttype SpanExporter,\n} from '@opentelemetry/sdk-trace-node';\nimport {\n\tATTR_SERVICE_NAME,\n\tATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanProcessorStrategy } from '../adapters/types';\nimport {\n\tcreateSpanProcessor,\n\tgetRecommendedStrategy,\n\tsetGlobalLogProcessor,\n\tsetGlobalSpanProcessor,\n} from './core';\n\n/**\n * Options for configuring telemetry\n */\nexport interface TelemetryOptions {\n\t/**\n\t * Service name for resource identification\n\t */\n\tserviceName: string;\n\n\t/**\n\t * Service version\n\t */\n\tserviceVersion?: string;\n\n\t/**\n\t * OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')\n\t * If not provided, traces will be logged to console\n\t */\n\tendpoint?: string;\n\n\t/**\n\t * Whether to instrument Pino for log correlation\n\t * @default true\n\t */\n\tinstrumentPino?: boolean;\n\n\t/**\n\t * Whether to enable auto-instrumentation for common libraries\n\t * (http, fetch, express, etc.)\n\t * @default true\n\t */\n\tautoInstrument?: boolean;\n\n\t/**\n\t * Enable debug logging for OTel SDK\n\t * @default false\n\t */\n\tdebug?: boolean;\n\n\t/**\n\t * Additional resource attributes\n\t */\n\tresourceAttributes?: Record<string, string>;\n\n\t/**\n\t * Headers to send with OTLP requests\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Span processor strategy.\n\t * - 'batch': Efficient batching for long-running servers (default)\n\t * - 'simple': Immediate export for serverless environments (Lambda, Edge)\n\t *\n\t * If not specified, automatically selected based on environment detection.\n\t */\n\tspanProcessorStrategy?: SpanProcessorStrategy;\n\n\t/**\n\t * Environment type for automatic configuration\n\t * @default 'server'\n\t */\n\tenvironment?: 'server' | 'lambda' | 'edge' | 'custom';\n}\n\nlet sdk: NodeSDK | null = null;\n\n/**\n * Set up OpenTelemetry instrumentation.\n * Call this BEFORE importing your application code.\n *\n * @example\n * ```typescript\n * // instrumentation.ts (create this file)\n * import { setupTelemetry } from '@geekmidas/telescope/instrumentation';\n *\n * setupTelemetry({\n * serviceName: 'my-api',\n * endpoint: 'http://localhost:3000/__telescope/v1',\n * });\n *\n * // Then in your entry point:\n * // import './instrumentation';\n * // import { app } from './app';\n * ```\n */\nexport function setupTelemetry(options: TelemetryOptions): void {\n\tif (sdk) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tserviceName,\n\t\tserviceVersion = '1.0.0',\n\t\tendpoint,\n\t\tinstrumentPino = true,\n\t\tautoInstrument = true,\n\t\tdebug = false,\n\t\tresourceAttributes = {},\n\t\theaders = {},\n\t\tspanProcessorStrategy,\n\t\tenvironment = 'server',\n\t} = options;\n\n\t// Enable debug logging if requested\n\tif (debug) {\n\t\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n\t}\n\n\t// Create resource\n\t// `new Resource(...)` went in resources 2.x — a resource is now made from\n\t// attributes by a function, so a detector and a literal produce the same\n\t// thing rather than two shapes that had to be merged.\n\tconst resource = resourceFromAttributes({\n\t\t[ATTR_SERVICE_NAME]: serviceName,\n\t\t[ATTR_SERVICE_VERSION]: serviceVersion,\n\t\t...resourceAttributes,\n\t});\n\n\t// Build instrumentations list\n\tconst instrumentations = [];\n\n\t// Add Pino instrumentation for log correlation\n\tif (instrumentPino) {\n\t\tinstrumentations.push(\n\t\t\tnew PinoInstrumentation({\n\t\t\t\t// Inject trace context into log records\n\t\t\t\tlogHook: (span, record) => {\n\t\t\t\t\trecord.trace_id = span.spanContext().traceId;\n\t\t\t\t\trecord.span_id = span.spanContext().spanId;\n\t\t\t\t\trecord.trace_flags = span.spanContext().traceFlags;\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Add auto-instrumentations for common libraries\n\tif (autoInstrument) {\n\t\tinstrumentations.push(\n\t\t\tgetNodeAutoInstrumentations({\n\t\t\t\t// Disable file system instrumentation (too noisy)\n\t\t\t\t'@opentelemetry/instrumentation-fs': { enabled: false },\n\t\t\t\t// Configure HTTP instrumentation\n\t\t\t\t'@opentelemetry/instrumentation-http': {\n\t\t\t\t\tignoreIncomingRequestHook: (request) => {\n\t\t\t\t\t\t// Ignore health checks and internal routes\n\t\t\t\t\t\tconst path = request.url || '';\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpath.includes('/__health') ||\n\t\t\t\t\t\t\tpath.includes('/__telescope') ||\n\t\t\t\t\t\t\tpath.includes('/favicon')\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Create exporters\n\tlet traceExporter: SpanExporter;\n\tif (endpoint) {\n\t\ttraceExporter = new OTLPTraceExporter({\n\t\t\turl: `${endpoint}/traces`,\n\t\t\theaders,\n\t\t});\n\t} else {\n\t\t// Fall back to console exporter for debugging\n\t\ttraceExporter = new ConsoleSpanExporter();\n\t}\n\n\t// Determine span processor strategy\n\tconst strategy = spanProcessorStrategy ?? getRecommendedStrategy(environment);\n\tconst spanProcessor = createSpanProcessor(traceExporter, { strategy });\n\n\t// Register globally for flush operations\n\tsetGlobalSpanProcessor(spanProcessor);\n\n\t// Create and configure SDK\n\tsdk = new NodeSDK({\n\t\tresource,\n\t\ttraceExporter,\n\t\tspanProcessors: [spanProcessor],\n\t\tinstrumentations,\n\t});\n\n\t// Set up log exporter if endpoint is provided\n\tif (endpoint) {\n\t\tconst logExporter = new OTLPLogExporter({\n\t\t\turl: `${endpoint}/logs`,\n\t\t\theaders,\n\t\t});\n\n\t\t// Both changed in sdk-logs 2.x, and for the same reason the trace SDK\n\t\t// changed: a provider whose processors could be swapped after it had begun\n\t\t// emitting was never safe, so processors are constructor-only and the\n\t\t// exporter is named rather than positional.\n\t\tconst logProcessor = new BatchLogRecordProcessor({\n\t\t\texporter: logExporter,\n\t\t});\n\t\tconst loggerProvider = new LoggerProvider({\n\t\t\tresource,\n\t\t\tprocessors: [logProcessor],\n\t\t});\n\n\t\t// Register for flush operations\n\t\tsetGlobalLogProcessor(logProcessor);\n\t}\n\n\t// Start the SDK\n\tsdk.start();\n\n\t// Graceful shutdown\n\tprocess.on('SIGTERM', () => {\n\t\tsdk\n\t\t\t?.shutdown()\n\t\t\t.then(() => {})\n\t\t\t.catch((_error) => {})\n\t\t\t.finally(() => process.exit(0));\n\t});\n}\n\n/**\n * Shut down telemetry (for testing or graceful shutdown)\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tif (sdk) {\n\t\tawait sdk.shutdown();\n\t\tsdk = null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AA4FA,IAAIA,MAAsB;;;;;;;;;;;;;;;;;;;;AAqB1B,SAAgB,eAAeC,SAAiC;AAC/D,KAAI,IACH;CAGD,MAAM,EACL,aACA,iBAAiB,SACjB,UACA,iBAAiB,MACjB,iBAAiB,MACjB,QAAQ,OACR,qBAAqB,CAAE,GACvB,UAAU,CAAE,GACZ,uBACA,cAAc,UACd,GAAG;AAGJ,KAAI,MACH,MAAK,UAAU,IAAI,qBAAqB,aAAa,MAAM;CAO5D,MAAM,WAAW,uBAAuB;GACtC,oBAAoB;GACpB,uBAAuB;EACxB,GAAG;CACH,EAAC;CAGF,MAAM,mBAAmB,CAAE;AAG3B,KAAI,eACH,kBAAiB,KAChB,IAAI,oBAAoB,EAEvB,SAAS,CAAC,MAAM,WAAW;AAC1B,SAAO,WAAW,KAAK,aAAa,CAAC;AACrC,SAAO,UAAU,KAAK,aAAa,CAAC;AACpC,SAAO,cAAc,KAAK,aAAa,CAAC;CACxC,EACD,GACD;AAIF,KAAI,eACH,kBAAiB,KAChB,4BAA4B;EAE3B,qCAAqC,EAAE,SAAS,MAAO;EAEvD,uCAAuC,EACtC,2BAA2B,CAAC,YAAY;GAEvC,MAAM,OAAO,QAAQ,OAAO;AAC5B,UACC,KAAK,SAAS,YAAY,IAC1B,KAAK,SAAS,eAAe,IAC7B,KAAK,SAAS,WAAW;EAE1B,EACD;CACD,EAAC,CACF;CAIF,IAAIC;AACJ,KAAI,SACH,iBAAgB,IAAI,kBAAkB;EACrC,MAAM,EAAE,SAAS;EACjB;CACA;KAGD,iBAAgB,IAAI;CAIrB,MAAM,WAAW,yBAAyB,uBAAuB,YAAY;CAC7E,MAAM,gBAAgB,oBAAoB,eAAe,EAAE,SAAU,EAAC;AAGtE,wBAAuB,cAAc;AAGrC,OAAM,IAAI,QAAQ;EACjB;EACA;EACA,gBAAgB,CAAC,aAAc;EAC/B;CACA;AAGD,KAAI,UAAU;EACb,MAAM,cAAc,IAAI,gBAAgB;GACvC,MAAM,EAAE,SAAS;GACjB;EACA;EAMD,MAAM,eAAe,IAAI,wBAAwB,EAChD,UAAU,YACV;EACD,MAAM,iBAAiB,IAAI,eAAe;GACzC;GACA,YAAY,CAAC,YAAa;EAC1B;AAGD,wBAAsB,aAAa;CACnC;AAGD,KAAI,OAAO;AAGX,SAAQ,GAAG,WAAW,MAAM;AAC3B,OACG,UAAU,CACX,KAAK,MAAM,CAAE,EAAC,CACd,MAAM,CAAC,WAAW,CAAE,EAAC,CACrB,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC;CAChC,EAAC;AACF;;;;AAKD,eAAsB,oBAAmC;AACxD,KAAI,KAAK;AACR,QAAM,IAAI,UAAU;AACpB,QAAM;CACN;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely.d.cts","names":[],"sources":["../../src/storage/kysely.ts"],"sourcesContent":[],"mappings":";;;;;;;AAcA;AAqBA;AAeiB,UApCA,qBAAA,
|
|
1
|
+
{"version":3,"file":"kysely.d.cts","names":[],"sources":["../../src/storage/kysely.ts"],"sourcesContent":[],"mappings":";;;;;;;AAcA;AAqBA;AAeiB,UApCA,qBAAA,CA0CL;EAiBK,EAAA,EAAA,MAAA;EAAe,MAAA,EAAA,MAAA;EAAA,IACrB,EAAA,MAAA;EAAqB,GACnB,EAAA,MAAA;EAAuB,OAC7B,EAAA,OAAA;EAAiB,IAAA,EAAA,OAAA,GAAA,IAAA;EAMP,KAAA,EAAA,OAAA,GAAA,IAAA;EAAmB,MAAA,EAAA,MAAA;EAAA,gBAExB,EAAA,OAAA;EAAE,aAAT,EAAA,OAAA,GAAA,IAAA;EAAM,QAAA,EAAA,MAAA;EAqCE,SAAA,EA/FD,IA+FC;EAAa,EAAA,EAAA,MAAA,GAAA,IAAA;EAAA,OAgBe,EAAA,MAAA,GAAA,IAAA;EAAE,IAAtB,EAAA,OAAA,GAAA,IAAA;;;;;AA0BQ,UAhIZ,uBAAA,CAgIY;EAAY,EAAA,EAAW,MAAA;EAAY,IAApB,EAAA,MAAA;EAAO,OAoCZ,EAAA,MAAA;EAAY,KAApB,EAAA,OAAA;EAAO,MAcV,EAAA,OAAA,GAAA,IAAA;EAAc,UAAG,EAAA,MAAA,GAAA,IAAA;EAAO,SAQrB,EAnLnB,IAmLmB;EAAc,OAAK,EAAA,OAAA;EAAO,IAU1B,EAAA,OAAA,GAAA,IAAA;;;;;AA0BT,UA/ML,iBAAA,CA+MK;EAAQ,EAAA,EAAG,MAAA;EAAO,KAKf,EAAA,MAAA;EAAQ,OAAK,EAAA,MAAA;EAAO,OAOpB,EAAA,OAAA,GAAA,IAAA;EAAY,UAAW,EAAA,MAAA,GAAA,IAAA;EAAQ,SAAhB,EArN5B,IAqN4B;;;;;;AApJkB;AAwa1D;;;;;;;;;UAxdiB,eAAA;YACN;cACE;QACN;;;;;UAMU;;MAEZ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqCC,6BAA6B;;;;;;;;;;;;;;sBAgBrB,oBAAoB;qBAWf,eAAe;wBAKZ,iBAAiB;wBAUjB,eAAe,QAAQ;0BAoCrB,QAAQ;uBAcX,iBAAiB;0BAQd,mBAAmB;0BAUnB,eAAe,QAAQ;4BAYrB,QAAQ;iBAcnB,WAAW;oBAKR,aAAa;oBAOb,eAAe,QAAQ;mBAqBxB,OAAO;cA0BZ,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqOX,qBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing-BX8uY2nR.d.cts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,
|
|
1
|
+
{"version":3,"file":"tracing-BX8uY2nR.d.cts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,IAOuB,GAAA,SAAA;AAUxD;;;AAAmE,iBAVnD,iBAAA,CAUmD,UAAA,EAVrB,UAUqB,CAAA,EAAA,IAAA;AAAI;AAkBvE;;AAEY,iBApBI,UAAA,CAoBJ,IAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EApB0C,UAoB1C,CAAA,EApBuD,IAoBvD;;;;;;AAEF;AA4BV;;;;;;AAII,iBApCkB,QAoClB,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EAlCQ,IAkCR,EAAA,GAlCiB,OAkCjB,CAlCyB,CAkCzB,CAAA,EAAA,UAAA,CAAA,EAjCU,UAiCV,CAAA,EAhCD,OAgCC,CAhCO,CAgCP,CAAA;AA2BJ;AAQA;AAQA;AAcgB,iBA7DA,YA6DwC,CAAA,CAAA,CAAA,CAAU,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EA3DtD,IA2DsD,EAAA,GA3D7C,CA2D6C,EAAA,UAAA,CAAA,EA1DpD,UA0DoD,CAAA,EAzD/D,CAyD+D;;;;iBA9BlD,UAAA,CAAA;;;;iBAQA,SAAA,CAAA;;;;iBAQA,eAAA,QAAuB;;;;iBAcvB,YAAA,4BAAwC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing-PnECEbEu.d.mts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,
|
|
1
|
+
{"version":3,"file":"tracing-PnECEbEu.d.mts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,IAOa,GAAU,SAAA;AAUxD;;;AAAmE,iBAVnD,iBAAA,CAUmD,UAAA,EAVrB,UAUqB,CAAA,EAAA,IAAA;AAAI;AAkBvE;;AAEY,iBApBI,UAAA,CAoBJ,IAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EApB0C,UAoB1C,CAAA,EApBuD,IAoBvD;;;;;;AAEF;AA4BV;;;;;;AAII,iBApCkB,QAoClB,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EAlCQ,IAkCR,EAAA,GAlCiB,OAkCjB,CAlCyB,CAkCzB,CAAA,EAAA,UAAA,CAAA,EAjCU,UAiCV,CAAA,EAhCD,OAgCC,CAhCO,CAgCP,CAAA;AA2BJ;AAQA;AAQA;AAcgB,iBA7DA,YA6DwC,CAAA,CAAA,CAAA,CAAA,IAAU,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EA3DtD,IA2DsD,EAAA,GA3D7C,CA2D6C,EAAA,UAAA,CAAA,EA1DpD,UA0DoD,CAAA,EAzD/D,CAyD+D;;;;iBA9BlD,UAAA,CAAA;;;;iBAQA,SAAA,CAAA;;;;iBAQA,eAAA,QAAuB;;;;iBAcvB,YAAA,4BAAwC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/telescope",
|
|
3
|
-
"version": "10.0.0-alpha.
|
|
3
|
+
"version": "10.0.0-alpha.10",
|
|
4
4
|
"description": "Laravel Telescope-style debugging and monitoring for web applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -157,33 +157,29 @@
|
|
|
157
157
|
"access": "public"
|
|
158
158
|
},
|
|
159
159
|
"dependencies": {
|
|
160
|
-
"@pinojs/redact": "
|
|
161
|
-
"nanoid": "~
|
|
160
|
+
"@pinojs/redact": "~0.4.0",
|
|
161
|
+
"nanoid": "~6.0.1",
|
|
162
|
+
"@geekmidas/logger": "^10.0.0-alpha.10"
|
|
162
163
|
},
|
|
163
164
|
"peerDependencies": {
|
|
164
|
-
"@middy/core": "
|
|
165
|
-
"@opentelemetry/api": "
|
|
166
|
-
"@opentelemetry/auto-instrumentations-node": "
|
|
167
|
-
"@opentelemetry/exporter-logs-otlp-http": "
|
|
168
|
-
"@opentelemetry/exporter-trace-otlp-http": "
|
|
169
|
-
"@opentelemetry/instrumentation-pino": "
|
|
170
|
-
"@opentelemetry/resources": "
|
|
171
|
-
"@opentelemetry/sdk-logs": "
|
|
172
|
-
"@opentelemetry/sdk-node": "
|
|
173
|
-
"@opentelemetry/sdk-trace-base": "
|
|
174
|
-
"@opentelemetry/sdk-trace-node": "
|
|
175
|
-
"@opentelemetry/semantic-conventions": "
|
|
176
|
-
"@types/aws-lambda": "
|
|
177
|
-
"hono": "
|
|
178
|
-
"kysely": "
|
|
179
|
-
"pino": "
|
|
180
|
-
"pino-abstract-transport": "^2.0.0 || ^3.0.0",
|
|
181
|
-
"@geekmidas/logger": "^10.0.0-alpha.1"
|
|
165
|
+
"@middy/core": ">=7.9.2",
|
|
166
|
+
"@opentelemetry/api": ">=1.9.1",
|
|
167
|
+
"@opentelemetry/auto-instrumentations-node": "~0.80.0",
|
|
168
|
+
"@opentelemetry/exporter-logs-otlp-http": "~0.222.0",
|
|
169
|
+
"@opentelemetry/exporter-trace-otlp-http": "~0.222.0",
|
|
170
|
+
"@opentelemetry/instrumentation-pino": "~0.68.0",
|
|
171
|
+
"@opentelemetry/resources": ">=2.11.0",
|
|
172
|
+
"@opentelemetry/sdk-logs": "~0.222.0",
|
|
173
|
+
"@opentelemetry/sdk-node": "~0.222.0",
|
|
174
|
+
"@opentelemetry/sdk-trace-base": ">=2.11.0",
|
|
175
|
+
"@opentelemetry/sdk-trace-node": ">=2.11.0",
|
|
176
|
+
"@opentelemetry/semantic-conventions": ">=1.43.0",
|
|
177
|
+
"@types/aws-lambda": ">=8.10.163",
|
|
178
|
+
"hono": ">=4.13.8",
|
|
179
|
+
"kysely": "~0.29.6",
|
|
180
|
+
"pino-abstract-transport": ">=3.0.0"
|
|
182
181
|
},
|
|
183
182
|
"peerDependenciesMeta": {
|
|
184
|
-
"@geekmidas/logger": {
|
|
185
|
-
"optional": true
|
|
186
|
-
},
|
|
187
183
|
"@middy/core": {
|
|
188
184
|
"optional": true
|
|
189
185
|
},
|
|
@@ -229,32 +225,29 @@
|
|
|
229
225
|
"kysely": {
|
|
230
226
|
"optional": true
|
|
231
227
|
},
|
|
232
|
-
"pino": {
|
|
233
|
-
"optional": true
|
|
234
|
-
},
|
|
235
228
|
"pino-abstract-transport": {
|
|
236
229
|
"optional": true
|
|
237
230
|
}
|
|
238
231
|
},
|
|
239
232
|
"devDependencies": {
|
|
240
|
-
"@middy/core": "
|
|
241
|
-
"@opentelemetry/api": "
|
|
242
|
-
"@opentelemetry/auto-instrumentations-node": "
|
|
243
|
-
"@opentelemetry/exporter-logs-otlp-http": "
|
|
244
|
-
"@opentelemetry/exporter-trace-otlp-http": "
|
|
245
|
-
"@opentelemetry/instrumentation-pino": "
|
|
246
|
-
"@opentelemetry/resources": "
|
|
247
|
-
"@opentelemetry/sdk-logs": "
|
|
248
|
-
"@opentelemetry/sdk-node": "
|
|
249
|
-
"@opentelemetry/sdk-trace-base": "
|
|
250
|
-
"@opentelemetry/sdk-trace-node": "
|
|
251
|
-
"@opentelemetry/semantic-conventions": "
|
|
252
|
-
"@types/aws-lambda": "
|
|
253
|
-
"hono": "
|
|
254
|
-
"kysely": "~0.29.
|
|
255
|
-
"pino": "
|
|
233
|
+
"@middy/core": "~7.9.2",
|
|
234
|
+
"@opentelemetry/api": "~1.9.1",
|
|
235
|
+
"@opentelemetry/auto-instrumentations-node": "~0.80.0",
|
|
236
|
+
"@opentelemetry/exporter-logs-otlp-http": "~0.222.0",
|
|
237
|
+
"@opentelemetry/exporter-trace-otlp-http": "~0.222.0",
|
|
238
|
+
"@opentelemetry/instrumentation-pino": "~0.68.0",
|
|
239
|
+
"@opentelemetry/resources": "~2.11.0",
|
|
240
|
+
"@opentelemetry/sdk-logs": "~0.222.0",
|
|
241
|
+
"@opentelemetry/sdk-node": "~0.222.0",
|
|
242
|
+
"@opentelemetry/sdk-trace-base": "~2.11.0",
|
|
243
|
+
"@opentelemetry/sdk-trace-node": "~2.11.0",
|
|
244
|
+
"@opentelemetry/semantic-conventions": "~1.43.0",
|
|
245
|
+
"@types/aws-lambda": "~8.10.163",
|
|
246
|
+
"hono": "~4.13.8",
|
|
247
|
+
"kysely": "~0.29.6",
|
|
248
|
+
"pino": "~10.3.1",
|
|
256
249
|
"pino-abstract-transport": "~3.0.0",
|
|
257
|
-
"@geekmidas/logger": "^10.0.0-alpha.
|
|
250
|
+
"@geekmidas/logger": "^10.0.0-alpha.10"
|
|
258
251
|
},
|
|
259
252
|
"scripts": {
|
|
260
253
|
"build:ui": "pnpm --filter @geekmidas/telescope-ui build && tsx ../ui/scripts/embed-ui.ts dist/ui src/ui-assets.ts"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-DC9JMEYZ.mjs","names":["sdk: NodeSDK | null","options: TelemetryOptions","traceExporter: SpanExporter"],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';\nimport { Resource } from '@opentelemetry/resources';\nimport {\n\tBatchLogRecordProcessor,\n\tLoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport {\n\tConsoleSpanExporter,\n\ttype SpanExporter,\n} from '@opentelemetry/sdk-trace-node';\nimport {\n\tATTR_SERVICE_NAME,\n\tATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanProcessorStrategy } from '../adapters/types';\nimport {\n\tcreateSpanProcessor,\n\tgetRecommendedStrategy,\n\tsetGlobalLogProcessor,\n\tsetGlobalSpanProcessor,\n} from './core';\n\n/**\n * Options for configuring telemetry\n */\nexport interface TelemetryOptions {\n\t/**\n\t * Service name for resource identification\n\t */\n\tserviceName: string;\n\n\t/**\n\t * Service version\n\t */\n\tserviceVersion?: string;\n\n\t/**\n\t * OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')\n\t * If not provided, traces will be logged to console\n\t */\n\tendpoint?: string;\n\n\t/**\n\t * Whether to instrument Pino for log correlation\n\t * @default true\n\t */\n\tinstrumentPino?: boolean;\n\n\t/**\n\t * Whether to enable auto-instrumentation for common libraries\n\t * (http, fetch, express, etc.)\n\t * @default true\n\t */\n\tautoInstrument?: boolean;\n\n\t/**\n\t * Enable debug logging for OTel SDK\n\t * @default false\n\t */\n\tdebug?: boolean;\n\n\t/**\n\t * Additional resource attributes\n\t */\n\tresourceAttributes?: Record<string, string>;\n\n\t/**\n\t * Headers to send with OTLP requests\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Span processor strategy.\n\t * - 'batch': Efficient batching for long-running servers (default)\n\t * - 'simple': Immediate export for serverless environments (Lambda, Edge)\n\t *\n\t * If not specified, automatically selected based on environment detection.\n\t */\n\tspanProcessorStrategy?: SpanProcessorStrategy;\n\n\t/**\n\t * Environment type for automatic configuration\n\t * @default 'server'\n\t */\n\tenvironment?: 'server' | 'lambda' | 'edge' | 'custom';\n}\n\nlet sdk: NodeSDK | null = null;\n\n/**\n * Set up OpenTelemetry instrumentation.\n * Call this BEFORE importing your application code.\n *\n * @example\n * ```typescript\n * // instrumentation.ts (create this file)\n * import { setupTelemetry } from '@geekmidas/telescope/instrumentation';\n *\n * setupTelemetry({\n * serviceName: 'my-api',\n * endpoint: 'http://localhost:3000/__telescope/v1',\n * });\n *\n * // Then in your entry point:\n * // import './instrumentation';\n * // import { app } from './app';\n * ```\n */\nexport function setupTelemetry(options: TelemetryOptions): void {\n\tif (sdk) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tserviceName,\n\t\tserviceVersion = '1.0.0',\n\t\tendpoint,\n\t\tinstrumentPino = true,\n\t\tautoInstrument = true,\n\t\tdebug = false,\n\t\tresourceAttributes = {},\n\t\theaders = {},\n\t\tspanProcessorStrategy,\n\t\tenvironment = 'server',\n\t} = options;\n\n\t// Enable debug logging if requested\n\tif (debug) {\n\t\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n\t}\n\n\t// Create resource\n\tconst resource = new Resource({\n\t\t[ATTR_SERVICE_NAME]: serviceName,\n\t\t[ATTR_SERVICE_VERSION]: serviceVersion,\n\t\t...resourceAttributes,\n\t});\n\n\t// Build instrumentations list\n\tconst instrumentations = [];\n\n\t// Add Pino instrumentation for log correlation\n\tif (instrumentPino) {\n\t\tinstrumentations.push(\n\t\t\tnew PinoInstrumentation({\n\t\t\t\t// Inject trace context into log records\n\t\t\t\tlogHook: (span, record) => {\n\t\t\t\t\trecord.trace_id = span.spanContext().traceId;\n\t\t\t\t\trecord.span_id = span.spanContext().spanId;\n\t\t\t\t\trecord.trace_flags = span.spanContext().traceFlags;\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Add auto-instrumentations for common libraries\n\tif (autoInstrument) {\n\t\tinstrumentations.push(\n\t\t\tgetNodeAutoInstrumentations({\n\t\t\t\t// Disable file system instrumentation (too noisy)\n\t\t\t\t'@opentelemetry/instrumentation-fs': { enabled: false },\n\t\t\t\t// Configure HTTP instrumentation\n\t\t\t\t'@opentelemetry/instrumentation-http': {\n\t\t\t\t\tignoreIncomingRequestHook: (request) => {\n\t\t\t\t\t\t// Ignore health checks and internal routes\n\t\t\t\t\t\tconst path = request.url || '';\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpath.includes('/__health') ||\n\t\t\t\t\t\t\tpath.includes('/__telescope') ||\n\t\t\t\t\t\t\tpath.includes('/favicon')\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Create exporters\n\tlet traceExporter: SpanExporter;\n\tif (endpoint) {\n\t\ttraceExporter = new OTLPTraceExporter({\n\t\t\turl: `${endpoint}/traces`,\n\t\t\theaders,\n\t\t});\n\t} else {\n\t\t// Fall back to console exporter for debugging\n\t\ttraceExporter = new ConsoleSpanExporter();\n\t}\n\n\t// Determine span processor strategy\n\tconst strategy = spanProcessorStrategy ?? getRecommendedStrategy(environment);\n\tconst spanProcessor = createSpanProcessor(traceExporter, { strategy });\n\n\t// Register globally for flush operations\n\tsetGlobalSpanProcessor(spanProcessor);\n\n\t// Create and configure SDK\n\tsdk = new NodeSDK({\n\t\tresource,\n\t\ttraceExporter,\n\t\tspanProcessors: [spanProcessor],\n\t\tinstrumentations,\n\t});\n\n\t// Set up log exporter if endpoint is provided\n\tif (endpoint) {\n\t\tconst logExporter = new OTLPLogExporter({\n\t\t\turl: `${endpoint}/logs`,\n\t\t\theaders,\n\t\t});\n\n\t\tconst loggerProvider = new LoggerProvider({ resource });\n\t\tconst logProcessor = new BatchLogRecordProcessor(logExporter);\n\t\tloggerProvider.addLogRecordProcessor(logProcessor);\n\n\t\t// Register for flush operations\n\t\tsetGlobalLogProcessor(logProcessor);\n\t}\n\n\t// Start the SDK\n\tsdk.start();\n\n\t// Graceful shutdown\n\tprocess.on('SIGTERM', () => {\n\t\tsdk\n\t\t\t?.shutdown()\n\t\t\t.then(() => {})\n\t\t\t.catch((_error) => {})\n\t\t\t.finally(() => process.exit(0));\n\t});\n}\n\n/**\n * Shut down telemetry (for testing or graceful shutdown)\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tif (sdk) {\n\t\tawait sdk.shutdown();\n\t\tsdk = null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AA4FA,IAAIA,MAAsB;;;;;;;;;;;;;;;;;;;;AAqB1B,SAAgB,eAAeC,SAAiC;AAC/D,KAAI,IACH;CAGD,MAAM,EACL,aACA,iBAAiB,SACjB,UACA,iBAAiB,MACjB,iBAAiB,MACjB,QAAQ,OACR,qBAAqB,CAAE,GACvB,UAAU,CAAE,GACZ,uBACA,cAAc,UACd,GAAG;AAGJ,KAAI,MACH,MAAK,UAAU,IAAI,qBAAqB,aAAa,MAAM;CAI5D,MAAM,WAAW,IAAI,SAAS;GAC5B,oBAAoB;GACpB,uBAAuB;EACxB,GAAG;CACH;CAGD,MAAM,mBAAmB,CAAE;AAG3B,KAAI,eACH,kBAAiB,KAChB,IAAI,oBAAoB,EAEvB,SAAS,CAAC,MAAM,WAAW;AAC1B,SAAO,WAAW,KAAK,aAAa,CAAC;AACrC,SAAO,UAAU,KAAK,aAAa,CAAC;AACpC,SAAO,cAAc,KAAK,aAAa,CAAC;CACxC,EACD,GACD;AAIF,KAAI,eACH,kBAAiB,KAChB,4BAA4B;EAE3B,qCAAqC,EAAE,SAAS,MAAO;EAEvD,uCAAuC,EACtC,2BAA2B,CAAC,YAAY;GAEvC,MAAM,OAAO,QAAQ,OAAO;AAC5B,UACC,KAAK,SAAS,YAAY,IAC1B,KAAK,SAAS,eAAe,IAC7B,KAAK,SAAS,WAAW;EAE1B,EACD;CACD,EAAC,CACF;CAIF,IAAIC;AACJ,KAAI,SACH,iBAAgB,IAAI,kBAAkB;EACrC,MAAM,EAAE,SAAS;EACjB;CACA;KAGD,iBAAgB,IAAI;CAIrB,MAAM,WAAW,yBAAyB,uBAAuB,YAAY;CAC7E,MAAM,gBAAgB,oBAAoB,eAAe,EAAE,SAAU,EAAC;AAGtE,wBAAuB,cAAc;AAGrC,OAAM,IAAI,QAAQ;EACjB;EACA;EACA,gBAAgB,CAAC,aAAc;EAC/B;CACA;AAGD,KAAI,UAAU;EACb,MAAM,cAAc,IAAI,gBAAgB;GACvC,MAAM,EAAE,SAAS;GACjB;EACA;EAED,MAAM,iBAAiB,IAAI,eAAe,EAAE,SAAU;EACtD,MAAM,eAAe,IAAI,wBAAwB;AACjD,iBAAe,sBAAsB,aAAa;AAGlD,wBAAsB,aAAa;CACnC;AAGD,KAAI,OAAO;AAGX,SAAQ,GAAG,WAAW,MAAM;AAC3B,OACG,UAAU,CACX,KAAK,MAAM,CAAE,EAAC,CACd,MAAM,CAAC,WAAW,CAAE,EAAC,CACrB,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC;CAChC,EAAC;AACF;;;;AAKD,eAAsB,oBAAmC;AACxD,KAAI,KAAK;AACR,QAAM,IAAI,UAAU;AACpB,QAAM;CACN;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-DufxQpi9.cjs","names":["sdk: NodeSDK | null","options: TelemetryOptions","DiagConsoleLogger","DiagLogLevel","Resource","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","PinoInstrumentation","traceExporter: SpanExporter","OTLPTraceExporter","ConsoleSpanExporter","NodeSDK","OTLPLogExporter","LoggerProvider","BatchLogRecordProcessor"],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';\nimport { Resource } from '@opentelemetry/resources';\nimport {\n\tBatchLogRecordProcessor,\n\tLoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport {\n\tConsoleSpanExporter,\n\ttype SpanExporter,\n} from '@opentelemetry/sdk-trace-node';\nimport {\n\tATTR_SERVICE_NAME,\n\tATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanProcessorStrategy } from '../adapters/types';\nimport {\n\tcreateSpanProcessor,\n\tgetRecommendedStrategy,\n\tsetGlobalLogProcessor,\n\tsetGlobalSpanProcessor,\n} from './core';\n\n/**\n * Options for configuring telemetry\n */\nexport interface TelemetryOptions {\n\t/**\n\t * Service name for resource identification\n\t */\n\tserviceName: string;\n\n\t/**\n\t * Service version\n\t */\n\tserviceVersion?: string;\n\n\t/**\n\t * OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')\n\t * If not provided, traces will be logged to console\n\t */\n\tendpoint?: string;\n\n\t/**\n\t * Whether to instrument Pino for log correlation\n\t * @default true\n\t */\n\tinstrumentPino?: boolean;\n\n\t/**\n\t * Whether to enable auto-instrumentation for common libraries\n\t * (http, fetch, express, etc.)\n\t * @default true\n\t */\n\tautoInstrument?: boolean;\n\n\t/**\n\t * Enable debug logging for OTel SDK\n\t * @default false\n\t */\n\tdebug?: boolean;\n\n\t/**\n\t * Additional resource attributes\n\t */\n\tresourceAttributes?: Record<string, string>;\n\n\t/**\n\t * Headers to send with OTLP requests\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Span processor strategy.\n\t * - 'batch': Efficient batching for long-running servers (default)\n\t * - 'simple': Immediate export for serverless environments (Lambda, Edge)\n\t *\n\t * If not specified, automatically selected based on environment detection.\n\t */\n\tspanProcessorStrategy?: SpanProcessorStrategy;\n\n\t/**\n\t * Environment type for automatic configuration\n\t * @default 'server'\n\t */\n\tenvironment?: 'server' | 'lambda' | 'edge' | 'custom';\n}\n\nlet sdk: NodeSDK | null = null;\n\n/**\n * Set up OpenTelemetry instrumentation.\n * Call this BEFORE importing your application code.\n *\n * @example\n * ```typescript\n * // instrumentation.ts (create this file)\n * import { setupTelemetry } from '@geekmidas/telescope/instrumentation';\n *\n * setupTelemetry({\n * serviceName: 'my-api',\n * endpoint: 'http://localhost:3000/__telescope/v1',\n * });\n *\n * // Then in your entry point:\n * // import './instrumentation';\n * // import { app } from './app';\n * ```\n */\nexport function setupTelemetry(options: TelemetryOptions): void {\n\tif (sdk) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tserviceName,\n\t\tserviceVersion = '1.0.0',\n\t\tendpoint,\n\t\tinstrumentPino = true,\n\t\tautoInstrument = true,\n\t\tdebug = false,\n\t\tresourceAttributes = {},\n\t\theaders = {},\n\t\tspanProcessorStrategy,\n\t\tenvironment = 'server',\n\t} = options;\n\n\t// Enable debug logging if requested\n\tif (debug) {\n\t\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n\t}\n\n\t// Create resource\n\tconst resource = new Resource({\n\t\t[ATTR_SERVICE_NAME]: serviceName,\n\t\t[ATTR_SERVICE_VERSION]: serviceVersion,\n\t\t...resourceAttributes,\n\t});\n\n\t// Build instrumentations list\n\tconst instrumentations = [];\n\n\t// Add Pino instrumentation for log correlation\n\tif (instrumentPino) {\n\t\tinstrumentations.push(\n\t\t\tnew PinoInstrumentation({\n\t\t\t\t// Inject trace context into log records\n\t\t\t\tlogHook: (span, record) => {\n\t\t\t\t\trecord.trace_id = span.spanContext().traceId;\n\t\t\t\t\trecord.span_id = span.spanContext().spanId;\n\t\t\t\t\trecord.trace_flags = span.spanContext().traceFlags;\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Add auto-instrumentations for common libraries\n\tif (autoInstrument) {\n\t\tinstrumentations.push(\n\t\t\tgetNodeAutoInstrumentations({\n\t\t\t\t// Disable file system instrumentation (too noisy)\n\t\t\t\t'@opentelemetry/instrumentation-fs': { enabled: false },\n\t\t\t\t// Configure HTTP instrumentation\n\t\t\t\t'@opentelemetry/instrumentation-http': {\n\t\t\t\t\tignoreIncomingRequestHook: (request) => {\n\t\t\t\t\t\t// Ignore health checks and internal routes\n\t\t\t\t\t\tconst path = request.url || '';\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpath.includes('/__health') ||\n\t\t\t\t\t\t\tpath.includes('/__telescope') ||\n\t\t\t\t\t\t\tpath.includes('/favicon')\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Create exporters\n\tlet traceExporter: SpanExporter;\n\tif (endpoint) {\n\t\ttraceExporter = new OTLPTraceExporter({\n\t\t\turl: `${endpoint}/traces`,\n\t\t\theaders,\n\t\t});\n\t} else {\n\t\t// Fall back to console exporter for debugging\n\t\ttraceExporter = new ConsoleSpanExporter();\n\t}\n\n\t// Determine span processor strategy\n\tconst strategy = spanProcessorStrategy ?? getRecommendedStrategy(environment);\n\tconst spanProcessor = createSpanProcessor(traceExporter, { strategy });\n\n\t// Register globally for flush operations\n\tsetGlobalSpanProcessor(spanProcessor);\n\n\t// Create and configure SDK\n\tsdk = new NodeSDK({\n\t\tresource,\n\t\ttraceExporter,\n\t\tspanProcessors: [spanProcessor],\n\t\tinstrumentations,\n\t});\n\n\t// Set up log exporter if endpoint is provided\n\tif (endpoint) {\n\t\tconst logExporter = new OTLPLogExporter({\n\t\t\turl: `${endpoint}/logs`,\n\t\t\theaders,\n\t\t});\n\n\t\tconst loggerProvider = new LoggerProvider({ resource });\n\t\tconst logProcessor = new BatchLogRecordProcessor(logExporter);\n\t\tloggerProvider.addLogRecordProcessor(logProcessor);\n\n\t\t// Register for flush operations\n\t\tsetGlobalLogProcessor(logProcessor);\n\t}\n\n\t// Start the SDK\n\tsdk.start();\n\n\t// Graceful shutdown\n\tprocess.on('SIGTERM', () => {\n\t\tsdk\n\t\t\t?.shutdown()\n\t\t\t.then(() => {})\n\t\t\t.catch((_error) => {})\n\t\t\t.finally(() => process.exit(0));\n\t});\n}\n\n/**\n * Shut down telemetry (for testing or graceful shutdown)\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tif (sdk) {\n\t\tawait sdk.shutdown();\n\t\tsdk = null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AA4FA,IAAIA,MAAsB;;;;;;;;;;;;;;;;;;;;AAqB1B,SAAgB,eAAeC,SAAiC;AAC/D,KAAI,IACH;CAGD,MAAM,EACL,aACA,iBAAiB,SACjB,UACA,iBAAiB,MACjB,iBAAiB,MACjB,QAAQ,OACR,qBAAqB,CAAE,GACvB,UAAU,CAAE,GACZ,uBACA,cAAc,UACd,GAAG;AAGJ,KAAI,MACH,0BAAK,UAAU,IAAIC,yCAAqBC,iCAAa,MAAM;CAI5D,MAAM,WAAW,IAAIC,mCAAS;GAC5BC,yDAAoB;GACpBC,4DAAuB;EACxB,GAAG;CACH;CAGD,MAAM,mBAAmB,CAAE;AAG3B,KAAI,eACH,kBAAiB,KAChB,IAAIC,yDAAoB,EAEvB,SAAS,CAAC,MAAM,WAAW;AAC1B,SAAO,WAAW,KAAK,aAAa,CAAC;AACrC,SAAO,UAAU,KAAK,aAAa,CAAC;AACpC,SAAO,cAAc,KAAK,aAAa,CAAC;CACxC,EACD,GACD;AAIF,KAAI,eACH,kBAAiB,KAChB,4EAA4B;EAE3B,qCAAqC,EAAE,SAAS,MAAO;EAEvD,uCAAuC,EACtC,2BAA2B,CAAC,YAAY;GAEvC,MAAM,OAAO,QAAQ,OAAO;AAC5B,UACC,KAAK,SAAS,YAAY,IAC1B,KAAK,SAAS,eAAe,IAC7B,KAAK,SAAS,WAAW;EAE1B,EACD;CACD,EAAC,CACF;CAIF,IAAIC;AACJ,KAAI,SACH,iBAAgB,IAAIC,2DAAkB;EACrC,MAAM,EAAE,SAAS;EACjB;CACA;KAGD,iBAAgB,IAAIC;CAIrB,MAAM,WAAW,yBAAyB,oCAAuB,YAAY;CAC7E,MAAM,gBAAgB,iCAAoB,eAAe,EAAE,SAAU,EAAC;AAGtE,qCAAuB,cAAc;AAGrC,OAAM,IAAIC,iCAAQ;EACjB;EACA;EACA,gBAAgB,CAAC,aAAc;EAC/B;CACA;AAGD,KAAI,UAAU;EACb,MAAM,cAAc,IAAIC,wDAAgB;GACvC,MAAM,EAAE,SAAS;GACjB;EACA;EAED,MAAM,iBAAiB,IAAIC,wCAAe,EAAE,SAAU;EACtD,MAAM,eAAe,IAAIC,iDAAwB;AACjD,iBAAe,sBAAsB,aAAa;AAGlD,qCAAsB,aAAa;CACnC;AAGD,KAAI,OAAO;AAGX,SAAQ,GAAG,WAAW,MAAM;AAC3B,OACG,UAAU,CACX,KAAK,MAAM,CAAE,EAAC,CACd,MAAM,CAAC,WAAW,CAAE,EAAC,CACrB,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC;CAChC,EAAC;AACF;;;;AAKD,eAAsB,oBAAmC;AACxD,KAAI,KAAK;AACR,QAAM,IAAI,UAAU;AACpB,QAAM;CACN;AACD"}
|