Skip to content

Commit d95b98d

Browse files
committed
fix: add type declarations for opentelemetry
1 parent 04f1b89 commit d95b98d

File tree

9 files changed

+45
-53
lines changed

9 files changed

+45
-53
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ packages/log-error/**/*.d.*
55
packages/logger/**/*.d.*
66
packages/middleware-log-errors/**/*.d.*
77
packages/middleware-render-error-info/**/*.d.*
8-
packages/opentelemetry/**/*.d.*
98
coverage
109
node_modules/
1110
resources/logos/dist

jsconfig.build.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"packages/log-error/**/*.js",
1414
"packages/logger/**/*.js",
1515
"packages/middleware-log-errors/**/*.js",
16-
"packages/middleware-render-error-info/**/*.js",
17-
"packages/opentelemetry/**/*.js"
16+
"packages/middleware-render-error-info/**/*.js"
1817
]
1918
}

packages/opentelemetry/.npmignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
!*.d.ts
2-
!*.d.ts.map
31
CHANGELOG.md
42
docs
53
test

packages/opentelemetry/lib/config/metrics.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,10 @@ const { PeriodicExportingMetricReader } =
88
const logger = require('@dotcom-reliability-kit/logger');
99
const { METRICS_USER_AGENT } = require('./user-agents');
1010

11-
/**
12-
* @typedef {object} MetricsOptions
13-
* @property {string} [apiGatewayKey]
14-
* The API key to send to the metrics collector if you're using the FT's official metrics collector endpoint.
15-
* @property {string} [endpoint]
16-
* The URL to send OpenTelemetry metrics to, for example http://localhost:4318/v1/metrics.
17-
*/
18-
1911
/**
2012
* Create an OpenTelemetry metrics configuration.
2113
*
22-
* @param {MetricsOptions} options
14+
* @param {import('@dotcom-reliability-kit/opentelemetry').MetricsOptions} options
2315
* @returns {Partial<import('@opentelemetry/sdk-node').NodeSDKConfiguration>}
2416
*/
2517
exports.createMetricsConfig = function createMetricsConfig(options) {

packages/opentelemetry/lib/config/tracing.js

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,10 @@ const { TRACING_USER_AGENT } = require('./user-agents');
99

1010
const DEFAULT_SAMPLE_PERCENTAGE = 5;
1111

12-
/**
13-
* @typedef {object} TracingOptions
14-
* @property {string} [authorizationHeader]
15-
* The HTTP `Authorization` header to send with OpenTelemetry tracing requests if you're using the Customer Products trace collector endpoint.
16-
* @property {string} [endpoint]
17-
* The URL to send OpenTelemetry trace segments to, for example http://localhost:4318/v1/traces.
18-
* @property {number} [samplePercentage]
19-
* What percentage of traces should be sent onto the collector.
20-
*/
21-
2212
/**
2313
* Create an OpenTelemetry tracing configuration.
2414
*
25-
* @param {TracingOptions} options
15+
* @param {import('@dotcom-reliability-kit/opentelemetry').TracingOptions} options
2616
* @returns {Partial<import('@opentelemetry/sdk-node').NodeSDKConfiguration>}
2717
*/
2818
exports.createTracingConfig = function createTracingConfig(options) {

packages/opentelemetry/lib/index.js

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,11 @@ const opentelemetry = require('@opentelemetry/sdk-node');
77
const logger = require('@dotcom-reliability-kit/logger');
88

99
/**
10-
* @typedef {import('./config/metrics').MetricsOptions} MetricsOptions
10+
* @typedef {import('@dotcom-reliability-kit/opentelemetry').Options} Options
1111
*/
1212

1313
/**
14-
* @typedef {import('./config/tracing').TracingOptions} TracingOptions
15-
*/
16-
17-
/**
18-
* @typedef {object} Options
19-
* @property {string} [authorizationHeader]
20-
* [DEPRECATED] The HTTP `Authorization` header to send with OpenTelemetry requests. Use `tracing.authorizationHeader` instead.
21-
* @property {MetricsOptions} [metrics]
22-
* Configuration options for OpenTelemetry metrics.
23-
* @property {TracingOptions} [tracing]
24-
* Configuration options for OpenTelemetry tracing.
25-
*/
26-
27-
/**
28-
* @typedef {object} Instances
29-
* @property {opentelemetry.NodeSDK} sdk
30-
* A singleton instance of the OpenTelemetry Node SDK.
31-
* @property {HostMetrics} [hostMetrics]
32-
* A singleton instances of the OpenTelemetry host metrics collector.
14+
* @typedef {import('@dotcom-reliability-kit/opentelemetry').Instances} Instances
3315
*/
3416

3517
/**
@@ -43,9 +25,7 @@ let instances;
4325
* Set up OpenTelemetry tracing.
4426
*
4527
* @param {Options} [options]
46-
* OpenTelemetry configuration options.
4728
* @returns {Instances}
48-
* Returns any created SDK instances.
4929
*/
5030
function setupOpenTelemetry({
5131
authorizationHeader,
@@ -121,13 +101,9 @@ function setupOpenTelemetry({
121101
* Get a metrics meter from the configured OpenTelemetry SDK.
122102
*
123103
* @param {string} name
124-
* The meter name.
125104
* @param {string} [version]
126-
* The meter version.
127105
* @param {opentelemetry.api.MeterOptions} [options]
128-
* Additional configuration options for the meter.
129106
* @returns {opentelemetry.api.Meter}
130-
* Returns a metrics meter.
131107
*/
132108
function getMeter(name, version, options) {
133109
if (!instances) {

packages/opentelemetry/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"node": "18.x || 20.x || 22.x",
1515
"npm": "8.x || 9.x || 10.x"
1616
},
17-
"main": "lib",
17+
"main": "lib/index.js",
18+
"types": "types/index.d.ts",
1819
"dependencies": {
1920
"@dotcom-reliability-kit/app-info": "^3.2.0",
2021
"@dotcom-reliability-kit/errors": "^3.1.0",
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { HostMetrics } from '@opentelemetry/host-metrics';
2+
import opentelemetry from '@opentelemetry/sdk-node';
3+
4+
declare module '@dotcom-reliability-kit/opentelemetry' {
5+
export type MetricsOptions = {
6+
apiGatewayKey?: string;
7+
endpoint?: string;
8+
};
9+
10+
export type TracingOptions = {
11+
authorizationHeader?: string;
12+
endpoint?: string;
13+
samplePercentage?: number;
14+
};
15+
16+
export type Options = {
17+
/** @deprecated */
18+
authorizationHeader?: string;
19+
metrics?: MetricsOptions;
20+
tracing?: TracingOptions;
21+
};
22+
23+
export type Instances = {
24+
sdk: opentelemetry.NodeSDK;
25+
hostMetrics?: HostMetrics;
26+
};
27+
28+
export function setup(options?: Options): Instances;
29+
export function getMeter(
30+
name: string,
31+
version?: string,
32+
options?: opentelemetry.api.MeterOptions
33+
): opentelemetry.api.Meter;
34+
}
35+
36+
declare module '@dotcom-reliability-kit/opentelemetry/setup' {
37+
export {};
38+
}

scripts/clean-generated-types.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ find ./packages/log-error -name "*.d.ts*" | xargs -r rm
66
find ./packages/logger -name "*.d.ts*" | xargs -r rm
77
find ./packages/middleware-log-errors -name "*.d.ts*" | xargs -r rm
88
find ./packages/middleware-render-error-info -name "*.d.ts*" | xargs -r rm
9-
find ./packages/opentelemetry -name "*.d.ts*" | xargs -r rm

0 commit comments

Comments
 (0)