@sebspark/otel 0.2.2 → 0.2.3
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/README.md +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +19 -7
- package/dist/index.mjs +27 -19
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ Logs inside active spans automatically include:
|
|
|
61
61
|
```ts
|
|
62
62
|
import { getTracer } from '@sebspark/otel'
|
|
63
63
|
|
|
64
|
-
const tracer = getTracer()
|
|
64
|
+
const tracer = getTracer() // async to ensure otel initialization
|
|
65
65
|
|
|
66
66
|
await tracer.withTrace('trace.name', async (span) => {
|
|
67
67
|
span.setAttribute('user.id', '123')
|
|
@@ -111,7 +111,7 @@ span.end()
|
|
|
111
111
|
```ts
|
|
112
112
|
import { getMeter } from '@sebspark/otel'
|
|
113
113
|
|
|
114
|
-
const meter = getMeter()
|
|
114
|
+
const meter = getMeter() // async to ensure otel initialization
|
|
115
115
|
|
|
116
116
|
const counter = meter.createCounter('http_requests_total', {
|
|
117
117
|
description: 'Total number of HTTP requests',
|
package/dist/index.d.mts
CHANGED
|
@@ -13,7 +13,7 @@ declare function getLogger(serviceOverride?: string, extraAttrs?: Attrs): {
|
|
|
13
13
|
emergency: (msg: string, attrs?: Attrs) => void;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
declare function getMeter(componentNameOverride?: string): _opentelemetry_api.Meter
|
|
16
|
+
declare function getMeter(componentNameOverride?: string): Promise<_opentelemetry_api.Meter>;
|
|
17
17
|
|
|
18
18
|
type OtelTracer = ReturnType<typeof trace.getTracer>;
|
|
19
19
|
type Span = ReturnType<OtelTracer['startSpan']>;
|
|
@@ -45,6 +45,6 @@ interface Tracer extends OtelTracer {
|
|
|
45
45
|
* @param serviceOverride - Optional override for service name
|
|
46
46
|
* @returns Tracer with helpers
|
|
47
47
|
*/
|
|
48
|
-
declare function getTracer(componentNameOverride?: string): Tracer
|
|
48
|
+
declare function getTracer(componentNameOverride?: string): Promise<Tracer>;
|
|
49
49
|
|
|
50
50
|
export { getLogger, getMeter, getTracer };
|
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ declare function getLogger(serviceOverride?: string, extraAttrs?: Attrs): {
|
|
|
13
13
|
emergency: (msg: string, attrs?: Attrs) => void;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
declare function getMeter(componentNameOverride?: string): _opentelemetry_api.Meter
|
|
16
|
+
declare function getMeter(componentNameOverride?: string): Promise<_opentelemetry_api.Meter>;
|
|
17
17
|
|
|
18
18
|
type OtelTracer = ReturnType<typeof trace.getTracer>;
|
|
19
19
|
type Span = ReturnType<OtelTracer['startSpan']>;
|
|
@@ -45,6 +45,6 @@ interface Tracer extends OtelTracer {
|
|
|
45
45
|
* @param serviceOverride - Optional override for service name
|
|
46
46
|
* @returns Tracer with helpers
|
|
47
47
|
*/
|
|
48
|
-
declare function getTracer(componentNameOverride?: string): Tracer
|
|
48
|
+
declare function getTracer(componentNameOverride?: string): Promise<Tracer>;
|
|
49
49
|
|
|
50
50
|
export { getLogger, getMeter, getTracer };
|
package/dist/index.js
CHANGED
|
@@ -619,12 +619,14 @@ var getResource = async () => {
|
|
|
619
619
|
|
|
620
620
|
// src/otel.ts
|
|
621
621
|
import_api3.diag.setLogger(new import_api3.DiagConsoleLogger(), import_api3.DiagLogLevel.ERROR);
|
|
622
|
-
var
|
|
622
|
+
var initialization;
|
|
623
623
|
async function initialize() {
|
|
624
|
-
if (
|
|
625
|
-
|
|
624
|
+
if (!initialization) {
|
|
625
|
+
initialization = _initialize();
|
|
626
626
|
}
|
|
627
|
-
|
|
627
|
+
return initialization;
|
|
628
|
+
}
|
|
629
|
+
async function _initialize() {
|
|
628
630
|
try {
|
|
629
631
|
const serviceName = process.env.OTEL_SERVICE_NAME ?? "unknown-service";
|
|
630
632
|
const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
@@ -657,12 +659,20 @@ var import_api4 = require("@opentelemetry/api");
|
|
|
657
659
|
var import_api_logs2 = require("@opentelemetry/api-logs");
|
|
658
660
|
function getLogger(serviceOverride, extraAttrs = {}) {
|
|
659
661
|
const { systemName, systemVersion, resourceAttributes } = detectTelemetryContext(serviceOverride);
|
|
660
|
-
const logger = import_api_logs2.logs.getLogger(systemName, systemVersion);
|
|
661
662
|
const defaultAttrs = {
|
|
662
663
|
...resourceAttributes,
|
|
663
664
|
...extraAttrs
|
|
664
665
|
};
|
|
666
|
+
let isInitialized = false;
|
|
665
667
|
function emit(severityText, body, attrs = {}) {
|
|
668
|
+
if (!isInitialized) {
|
|
669
|
+
initialize().then(() => {
|
|
670
|
+
isInitialized = true;
|
|
671
|
+
emit(severityText, body, attrs);
|
|
672
|
+
});
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
const logger = import_api_logs2.logs.getLogger(systemName, systemVersion);
|
|
666
676
|
const span = import_api4.trace.getSpan(import_api4.context.active());
|
|
667
677
|
const spanContext = span?.spanContext();
|
|
668
678
|
logger.emit({
|
|
@@ -696,7 +706,8 @@ function getLogger(serviceOverride, extraAttrs = {}) {
|
|
|
696
706
|
|
|
697
707
|
// src/metrics.ts
|
|
698
708
|
var import_api5 = require("@opentelemetry/api");
|
|
699
|
-
function getMeter(componentNameOverride) {
|
|
709
|
+
async function getMeter(componentNameOverride) {
|
|
710
|
+
await initialize();
|
|
700
711
|
const { componentName, systemName, systemVersion } = detectTelemetryContext(
|
|
701
712
|
componentNameOverride
|
|
702
713
|
);
|
|
@@ -705,7 +716,8 @@ function getMeter(componentNameOverride) {
|
|
|
705
716
|
|
|
706
717
|
// src/tracer.ts
|
|
707
718
|
var import_api6 = require("@opentelemetry/api");
|
|
708
|
-
function getTracer(componentNameOverride) {
|
|
719
|
+
async function getTracer(componentNameOverride) {
|
|
720
|
+
await initialize();
|
|
709
721
|
const { componentName, systemName, systemVersion } = detectTelemetryContext(
|
|
710
722
|
componentNameOverride
|
|
711
723
|
);
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
// src/otel.ts
|
|
2
|
-
import {
|
|
3
|
-
DiagConsoleLogger,
|
|
4
|
-
DiagLogLevel,
|
|
5
|
-
diag
|
|
6
|
-
} from "@opentelemetry/api";
|
|
2
|
+
import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
|
|
7
3
|
import { logs } from "@opentelemetry/api-logs";
|
|
8
4
|
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
9
5
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
@@ -600,12 +596,14 @@ var getResource = async () => {
|
|
|
600
596
|
|
|
601
597
|
// src/otel.ts
|
|
602
598
|
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ERROR);
|
|
603
|
-
var
|
|
599
|
+
var initialization;
|
|
604
600
|
async function initialize() {
|
|
605
|
-
if (
|
|
606
|
-
|
|
601
|
+
if (!initialization) {
|
|
602
|
+
initialization = _initialize();
|
|
607
603
|
}
|
|
608
|
-
|
|
604
|
+
return initialization;
|
|
605
|
+
}
|
|
606
|
+
async function _initialize() {
|
|
609
607
|
try {
|
|
610
608
|
const serviceName = process.env.OTEL_SERVICE_NAME ?? "unknown-service";
|
|
611
609
|
const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
@@ -634,17 +632,25 @@ async function initialize() {
|
|
|
634
632
|
}
|
|
635
633
|
|
|
636
634
|
// src/logger.ts
|
|
637
|
-
import { context
|
|
635
|
+
import { context, trace } from "@opentelemetry/api";
|
|
638
636
|
import { logs as logs2 } from "@opentelemetry/api-logs";
|
|
639
637
|
function getLogger(serviceOverride, extraAttrs = {}) {
|
|
640
638
|
const { systemName, systemVersion, resourceAttributes } = detectTelemetryContext(serviceOverride);
|
|
641
|
-
const logger = logs2.getLogger(systemName, systemVersion);
|
|
642
639
|
const defaultAttrs = {
|
|
643
640
|
...resourceAttributes,
|
|
644
641
|
...extraAttrs
|
|
645
642
|
};
|
|
643
|
+
let isInitialized = false;
|
|
646
644
|
function emit(severityText, body, attrs = {}) {
|
|
647
|
-
|
|
645
|
+
if (!isInitialized) {
|
|
646
|
+
initialize().then(() => {
|
|
647
|
+
isInitialized = true;
|
|
648
|
+
emit(severityText, body, attrs);
|
|
649
|
+
});
|
|
650
|
+
return;
|
|
651
|
+
}
|
|
652
|
+
const logger = logs2.getLogger(systemName, systemVersion);
|
|
653
|
+
const span = trace.getSpan(context.active());
|
|
648
654
|
const spanContext = span?.spanContext();
|
|
649
655
|
logger.emit({
|
|
650
656
|
severityText,
|
|
@@ -677,7 +683,8 @@ function getLogger(serviceOverride, extraAttrs = {}) {
|
|
|
677
683
|
|
|
678
684
|
// src/metrics.ts
|
|
679
685
|
import { metrics } from "@opentelemetry/api";
|
|
680
|
-
function getMeter(componentNameOverride) {
|
|
686
|
+
async function getMeter(componentNameOverride) {
|
|
687
|
+
await initialize();
|
|
681
688
|
const { componentName, systemName, systemVersion } = detectTelemetryContext(
|
|
682
689
|
componentNameOverride
|
|
683
690
|
);
|
|
@@ -686,11 +693,12 @@ function getMeter(componentNameOverride) {
|
|
|
686
693
|
|
|
687
694
|
// src/tracer.ts
|
|
688
695
|
import {
|
|
689
|
-
context as
|
|
696
|
+
context as context2,
|
|
690
697
|
SpanStatusCode as SpanStatusCode3,
|
|
691
698
|
trace as trace2
|
|
692
699
|
} from "@opentelemetry/api";
|
|
693
|
-
function getTracer(componentNameOverride) {
|
|
700
|
+
async function getTracer(componentNameOverride) {
|
|
701
|
+
await initialize();
|
|
694
702
|
const { componentName, systemName, systemVersion } = detectTelemetryContext(
|
|
695
703
|
componentNameOverride
|
|
696
704
|
);
|
|
@@ -704,9 +712,9 @@ function getTracer(componentNameOverride) {
|
|
|
704
712
|
spanOrFunc,
|
|
705
713
|
func
|
|
706
714
|
);
|
|
707
|
-
const parentContext = parent ? trace2.setSpan(
|
|
715
|
+
const parentContext = parent ? trace2.setSpan(context2.active(), parent) : context2.active();
|
|
708
716
|
const span = tracer.startSpan(name, options, parentContext);
|
|
709
|
-
return await
|
|
717
|
+
return await context2.with(trace2.setSpan(parentContext, span), async () => {
|
|
710
718
|
try {
|
|
711
719
|
const result = await fn(span);
|
|
712
720
|
span.setStatus({ code: SpanStatusCode3.OK });
|
|
@@ -727,9 +735,9 @@ function getTracer(componentNameOverride) {
|
|
|
727
735
|
spanOrFunc,
|
|
728
736
|
func
|
|
729
737
|
);
|
|
730
|
-
const parentContext = parent ? trace2.setSpan(
|
|
738
|
+
const parentContext = parent ? trace2.setSpan(context2.active(), parent) : context2.active();
|
|
731
739
|
const span = tracer.startSpan(name, options, parentContext);
|
|
732
|
-
return
|
|
740
|
+
return context2.with(trace2.setSpan(parentContext, span), () => {
|
|
733
741
|
try {
|
|
734
742
|
const result = fn(span);
|
|
735
743
|
span.setStatus({ code: SpanStatusCode3.OK });
|