Skip to content

Commit 8733cff

Browse files
committed
chore: config management cleanup
1 parent c19ab40 commit 8733cff

File tree

4 files changed

+150
-168
lines changed

4 files changed

+150
-168
lines changed

src/tracer/BrowserTracer.ts

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { resourceFromAttributes } from "@opentelemetry/resources";
22
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
33
import { VERSION } from "../version";
44
import { OpenTelemetryKeys } from "./OpenTelemetryKeys";
5-
import { Tracer, TracerInitializeOptions, TracerOptions } from "./Tracer";
5+
import { Tracer, TracerInitializeOptions } from "./Tracer";
66
import { TracerConfiguration } from "./TracerConfiguration";
77

88
export type BrowserTracerInitializeOptions = TracerInitializeOptions & {};
@@ -11,15 +11,16 @@ export class BrowserTracer extends Tracer {
1111
private webTracerProvider?: WebTracerProvider;
1212

1313
public async initialize(
14-
options: BrowserTracerInitializeOptions = {},
14+
options: BrowserTracerInitializeOptions = {}
1515
): Promise<BrowserTracer> {
1616
if (this._initialized) {
1717
return this;
1818
}
1919

2020
try {
2121
const resourceAttributes = {
22-
[OpenTelemetryKeys.ResourceKeys.SERVICE_NAME]: this.projectName,
22+
[OpenTelemetryKeys.ResourceKeys.SERVICE_NAME]:
23+
this.configuration.projectName,
2324
[OpenTelemetryKeys.ResourceKeys.TELEMETRY_SDK_VERSION]: VERSION,
2425
...options.resourceAttributes,
2526
};
@@ -30,44 +31,33 @@ export class BrowserTracer extends Tracer {
3031

3132
this.webTracerProvider.register();
3233

33-
this.configuration = TracerConfiguration.builder()
34-
.projectName(this.projectName)
35-
.apiKey(this.apiKey)
36-
.organizationId(this.organizationId)
37-
.enableEvaluation(this.enableEvaluation)
38-
.build();
39-
4034
this._initialized = true;
4135
return this;
4236
} catch (error) {
4337
throw new Error(
44-
`Failed to initialize browser tracer: ${error instanceof Error ? error.message : String(error)}`,
38+
`Failed to initialize browser tracer: ${error instanceof Error ? error.message : String(error)}`
4539
);
4640
}
4741
}
4842

49-
public static getInstance(
50-
projectName: string,
51-
options: TracerOptions = {},
52-
): BrowserTracer {
53-
const key = `BrowserTracer:${projectName}`;
43+
public static getInstance(configuration: TracerConfiguration): BrowserTracer {
44+
const key = `BrowserTracer:${configuration.projectName}`;
5445
if (!Tracer.instances.has(key)) {
55-
Tracer.instances.set(key, new BrowserTracer(projectName, options));
46+
Tracer.instances.set(key, new BrowserTracer(configuration));
5647
}
5748
return Tracer.instances.get(key) as BrowserTracer;
5849
}
5950

6051
public static createDefault(projectName: string): BrowserTracer {
61-
return BrowserTracer.getInstance(projectName);
52+
const configuration = TracerConfiguration.builder()
53+
.projectName(projectName)
54+
.build();
55+
return BrowserTracer.getInstance(configuration);
6256
}
6357

6458
public static createWithConfiguration(
65-
configuration: TracerConfiguration,
59+
configuration: TracerConfiguration
6660
): BrowserTracer {
67-
return BrowserTracer.getInstance(configuration.projectName, {
68-
apiKey: configuration.apiKey,
69-
organizationId: configuration.organizationId,
70-
enableEvaluation: configuration.enableEvaluation,
71-
});
61+
return new BrowserTracer(configuration);
7262
}
7363
}

src/tracer/NodeTracer.ts

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { resourceFromAttributes } from "@opentelemetry/resources";
22
import { NodeSDK, NodeSDKConfiguration } from "@opentelemetry/sdk-node";
33
import { VERSION } from "../version";
44
import { OpenTelemetryKeys } from "./OpenTelemetryKeys";
5-
import { Tracer, TracerInitializeOptions, TracerOptions } from "./Tracer";
5+
import { Tracer, TracerInitializeOptions } from "./Tracer";
66
import { TracerConfiguration } from "./TracerConfiguration";
77

88
export type NodeTracerInitializeOptions = TracerInitializeOptions & {
@@ -14,15 +14,16 @@ export class NodeTracer extends Tracer {
1414
private nodeSDK?: NodeSDK;
1515

1616
public async initialize(
17-
options: NodeTracerInitializeOptions = {},
17+
options: NodeTracerInitializeOptions = {}
1818
): Promise<NodeTracer> {
1919
if (this._initialized) {
2020
return this;
2121
}
2222

2323
try {
2424
const resourceAttributes = {
25-
[OpenTelemetryKeys.ResourceKeys.SERVICE_NAME]: this.projectName,
25+
[OpenTelemetryKeys.ResourceKeys.SERVICE_NAME]:
26+
this.configuration.projectName,
2627
[OpenTelemetryKeys.ResourceKeys.TELEMETRY_SDK_VERSION]: VERSION,
2728
...options.resourceAttributes,
2829
};
@@ -35,45 +36,35 @@ export class NodeTracer extends Tracer {
3536

3637
this.nodeSDK.start();
3738

38-
this.configuration = TracerConfiguration.builder()
39-
.projectName(this.projectName)
40-
.apiKey(this.apiKey)
41-
.organizationId(this.organizationId)
42-
.enableEvaluation(this.enableEvaluation)
43-
.build();
44-
4539
this._initialized = true;
4640
return this;
4741
} catch (error) {
4842
throw new Error(
49-
`Failed to initialize node tracer: ${error instanceof Error ? error.message : String(error)}`,
43+
`Failed to initialize node tracer: ${error instanceof Error ? error.message : String(error)}`
5044
);
5145
}
5246
}
5347

54-
public static getInstance(
55-
projectName: string,
56-
options: TracerOptions = {},
57-
): NodeTracer {
58-
const key = `NodeTracer:${projectName}`;
48+
public static getInstance(configuration: TracerConfiguration): NodeTracer {
49+
const key = `NodeTracer:${configuration.projectName}`;
5950
if (!Tracer.instances.has(key)) {
60-
Tracer.instances.set(key, new NodeTracer(projectName, options));
51+
Tracer.instances.set(key, new NodeTracer(configuration));
6152
}
6253
return Tracer.instances.get(key) as NodeTracer;
6354
}
6455

6556
public static createDefault(projectName: string): NodeTracer {
66-
return NodeTracer.getInstance(projectName);
57+
const configuration = TracerConfiguration.builder()
58+
.projectName(projectName)
59+
.enableEvaluation(true)
60+
.build();
61+
return NodeTracer.getInstance(configuration);
6762
}
6863

6964
public static createWithConfiguration(
70-
configuration: TracerConfiguration,
65+
configuration: TracerConfiguration
7166
): NodeTracer {
72-
return NodeTracer.getInstance(configuration.projectName, {
73-
apiKey: configuration.apiKey,
74-
organizationId: configuration.organizationId,
75-
enableEvaluation: configuration.enableEvaluation,
76-
});
67+
return new NodeTracer(configuration);
7768
}
7869

7970
public async shutdown(): Promise<void> {

0 commit comments

Comments
 (0)