@lazyapps/observability 0.2.0 → 0.3.0
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/config.js +4 -3
- package/exporters.js +4 -0
- package/index.js +10 -9
- package/package.json +4 -4
- package/register.js +14 -0
- package/resource.js +13 -10
package/config.js
CHANGED
|
@@ -5,12 +5,13 @@ import { AmqplibInstrumentation } from '@opentelemetry/instrumentation-amqplib';
|
|
|
5
5
|
import { SocketIoInstrumentation } from '@opentelemetry/instrumentation-socket.io';
|
|
6
6
|
|
|
7
7
|
const defaults = {
|
|
8
|
-
serviceName:
|
|
8
|
+
serviceName: undefined,
|
|
9
|
+
serviceNamespace: undefined,
|
|
9
10
|
serviceVersion: undefined,
|
|
10
11
|
environment: undefined,
|
|
11
12
|
otlp: {
|
|
12
|
-
endpoint:
|
|
13
|
-
protocol:
|
|
13
|
+
endpoint: undefined,
|
|
14
|
+
protocol: undefined,
|
|
14
15
|
insecure: true,
|
|
15
16
|
},
|
|
16
17
|
traces: true,
|
package/exporters.js
CHANGED
|
@@ -9,6 +9,10 @@ const createOtlpConfig = (config) => ({
|
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
export const createExporters = (config) => {
|
|
12
|
+
if (!config.otlp.endpoint) {
|
|
13
|
+
return { trace: undefined, metrics: undefined, logs: undefined };
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
const otlpConfig = createOtlpConfig(config);
|
|
13
17
|
|
|
14
18
|
return {
|
package/index.js
CHANGED
|
@@ -43,12 +43,12 @@ export const initialize = (userConfig) => {
|
|
|
43
43
|
const resource = createResource(config);
|
|
44
44
|
const exporters = createExporters(config);
|
|
45
45
|
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const sdkConfig = { instrumentations: config.instrumentations };
|
|
47
|
+
if (resource) sdkConfig.resource = resource;
|
|
48
|
+
if (exporters.trace) sdkConfig.traceExporter = exporters.trace;
|
|
49
|
+
if (exporters.metrics) sdkConfig.metricReader = exporters.metrics;
|
|
50
|
+
|
|
51
|
+
const sdk = new NodeSDK(sdkConfig);
|
|
52
52
|
|
|
53
53
|
sdk.start();
|
|
54
54
|
sdkInstance = sdk;
|
|
@@ -56,10 +56,11 @@ export const initialize = (userConfig) => {
|
|
|
56
56
|
// NodeSDK does not register a global LoggerProvider, so logs.getLogger()
|
|
57
57
|
// returns a NOOP logger by default. We create and register one explicitly.
|
|
58
58
|
if (exporters.logs) {
|
|
59
|
-
const
|
|
60
|
-
resource,
|
|
59
|
+
const loggerConfig = {
|
|
61
60
|
processors: [new BatchLogRecordProcessor(exporters.logs)],
|
|
62
|
-
}
|
|
61
|
+
};
|
|
62
|
+
if (resource) loggerConfig.resource = resource;
|
|
63
|
+
const loggerProvider = new LoggerProvider(loggerConfig);
|
|
63
64
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
64
65
|
loggerProviderInstance = loggerProvider;
|
|
65
66
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lazyapps/observability",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "OpenTelemetry SDK initialization and configuration for the LazyApps framework",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -31,8 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"eslint": "^8.46.0",
|
|
34
|
-
"vitest": "^4.0.18"
|
|
35
|
-
"@lazyapps/logger": "0.2.0"
|
|
34
|
+
"vitest": "^4.0.18"
|
|
36
35
|
},
|
|
37
36
|
"dependencies": {
|
|
38
37
|
"@opentelemetry/api": "^1.9.0",
|
|
@@ -49,7 +48,8 @@
|
|
|
49
48
|
"@opentelemetry/instrumentation-express": "^0.59.0",
|
|
50
49
|
"@opentelemetry/instrumentation-mongodb": "^0.64.0",
|
|
51
50
|
"@opentelemetry/instrumentation-amqplib": "^0.58.0",
|
|
52
|
-
"@opentelemetry/instrumentation-socket.io": "^0.57.0"
|
|
51
|
+
"@opentelemetry/instrumentation-socket.io": "^0.57.0",
|
|
52
|
+
"@lazyapps/logger": "0.2.0"
|
|
53
53
|
},
|
|
54
54
|
"type": "module",
|
|
55
55
|
"scripts": {
|
package/register.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { initialize, getLoggerProvider } from './index.js';
|
|
2
|
+
import { configureOtel } from '@lazyapps/logger';
|
|
3
|
+
import { trace, context } from '@opentelemetry/api';
|
|
4
|
+
import { logs, SeverityNumber } from '@opentelemetry/api-logs';
|
|
5
|
+
|
|
6
|
+
initialize();
|
|
7
|
+
|
|
8
|
+
configureOtel({
|
|
9
|
+
logs,
|
|
10
|
+
SeverityNumber,
|
|
11
|
+
trace,
|
|
12
|
+
context,
|
|
13
|
+
loggerProvider: getLoggerProvider(),
|
|
14
|
+
});
|
package/resource.js
CHANGED
|
@@ -4,13 +4,16 @@ import {
|
|
|
4
4
|
ATTR_SERVICE_VERSION,
|
|
5
5
|
} from '@opentelemetry/semantic-conventions';
|
|
6
6
|
|
|
7
|
-
export const createResource = (config) =>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
export const createResource = (config) => {
|
|
8
|
+
const attrs = {};
|
|
9
|
+
if (config.serviceName) attrs[ATTR_SERVICE_NAME] = config.serviceName;
|
|
10
|
+
if (config.serviceNamespace)
|
|
11
|
+
attrs['service.namespace'] = config.serviceNamespace;
|
|
12
|
+
if (config.serviceVersion)
|
|
13
|
+
attrs[ATTR_SERVICE_VERSION] = config.serviceVersion;
|
|
14
|
+
if (config.environment)
|
|
15
|
+
attrs['deployment.environment.name'] = config.environment;
|
|
16
|
+
return Object.keys(attrs).length > 0
|
|
17
|
+
? resourceFromAttributes(attrs)
|
|
18
|
+
: undefined;
|
|
19
|
+
};
|