@prairielearn/opentelemetry 1.10.6 → 1.11.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @prairielearn/opentelemetry
2
2
 
3
+ ## 1.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - bd4cff1: Allow trace exporting to be disabled; export more types
8
+
9
+ ## 1.10.7
10
+
11
+ ### Patch Changes
12
+
13
+ - 3395c25: Upgrade all JavaScript dependencies
14
+
3
15
  ## 1.10.6
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { trace, metrics, context, SpanStatusCode, ValueType, TraceFlags, Meter, Counter, Histogram, UpDownCounter, ObservableCounter, ObservableUpDownCounter, ObservableGauge, } from '@opentelemetry/api';
1
+ export { trace, metrics, context, SpanStatusCode, ValueType, TraceFlags, Meter, Counter, Histogram, UpDownCounter, ObservableCounter, ObservableUpDownCounter, ObservableGauge, ObservableResult, } from '@opentelemetry/api';
2
2
  export { suppressTracing } from '@opentelemetry/core';
3
3
  export { init, shutdown, disableInstrumentations } from './init';
4
4
  export { instrumented } from './tracing';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAc4B;AAb1B,4FAAA,KAAK,OAAA;AACL,8FAAA,OAAO,OAAA;AACP,8FAAA,OAAO,OAAA;AACP,qGAAA,cAAc,OAAA;AACd,gGAAA,SAAS,OAAA;AACT,iGAAA,UAAU,OAAA;AASZ,4CAAsD;AAA7C,uGAAA,eAAe,OAAA;AAExB,+BAAiE;AAAxD,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAE,+GAAA,uBAAuB,OAAA;AAChD,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,qCAUmB;AATjB,kHAAA,uBAAuB,OAAA;AACvB,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,uGAAA,YAAY,OAAA;AACZ,+GAAA,oBAAoB,OAAA;AACpB,qHAAA,0BAA0B,OAAA;AAC1B,6GAAA,kBAAkB,OAAA;AAClB,sHAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAe4B;AAd1B,4FAAA,KAAK,OAAA;AACL,8FAAA,OAAO,OAAA;AACP,8FAAA,OAAO,OAAA;AACP,qGAAA,cAAc,OAAA;AACd,gGAAA,SAAS,OAAA;AACT,iGAAA,UAAU,OAAA;AAUZ,4CAAsD;AAA7C,uGAAA,eAAe,OAAA;AAExB,+BAAiE;AAAxD,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAE,+GAAA,uBAAuB,OAAA;AAChD,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,qCAUmB;AATjB,kHAAA,uBAAuB,OAAA;AACvB,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,uGAAA,YAAY,OAAA;AACZ,+GAAA,oBAAoB,OAAA;AACpB,qHAAA,0BAA0B,OAAA;AAC1B,6GAAA,kBAAkB,OAAA;AAClB,sHAAA,2BAA2B,OAAA"}
package/dist/init.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { PushMetricExporter } from '@opentelemetry/sdk-metrics';
2
- import { SpanExporter } from '@opentelemetry/sdk-trace-base';
2
+ import { SpanExporter, SpanProcessor } from '@opentelemetry/sdk-trace-base';
3
3
  export interface OpenTelemetryConfigEnabled {
4
4
  openTelemetryEnabled: true;
5
- openTelemetryExporter: 'console' | 'honeycomb' | 'jaeger' | SpanExporter;
5
+ openTelemetryExporter?: 'console' | 'honeycomb' | 'jaeger' | SpanExporter;
6
6
  openTelemetryMetricExporter?: 'console' | 'honeycomb' | PushMetricExporter;
7
7
  openTelemetryMetricExportIntervalMillis?: number;
8
8
  openTelemetrySamplerType: 'always-on' | 'always-off' | 'trace-id-ratio';
9
9
  openTelemetrySampleRate?: number;
10
- openTelemetrySpanProcessor?: 'batch' | 'simple';
10
+ openTelemetrySpanProcessor?: 'batch' | 'simple' | SpanProcessor;
11
11
  honeycombApiKey?: string;
12
12
  honeycombDataset?: string;
13
13
  serviceName?: string;
package/dist/init.js CHANGED
@@ -11,7 +11,6 @@ const api_1 = require("@opentelemetry/api");
11
11
  const core_1 = require("@opentelemetry/core");
12
12
  // Exporters go here.
13
13
  const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc");
14
- const exporter_jaeger_1 = require("@opentelemetry/exporter-jaeger");
15
14
  const exporter_metrics_otlp_grpc_1 = require("@opentelemetry/exporter-metrics-otlp-grpc");
16
15
  // Instrumentations go here.
17
16
  const instrumentation_aws_sdk_1 = require("@opentelemetry/instrumentation-aws-sdk");
@@ -108,6 +107,8 @@ function getHoneycombMetadata(config, datasetSuffix = '') {
108
107
  return metadata;
109
108
  }
110
109
  function getTraceExporter(config) {
110
+ if (!config.openTelemetryExporter)
111
+ return null;
111
112
  if (typeof config.openTelemetryExporter === 'object') {
112
113
  return config.openTelemetryExporter;
113
114
  }
@@ -122,13 +123,8 @@ function getTraceExporter(config) {
122
123
  });
123
124
  break;
124
125
  case 'jaeger':
125
- return new exporter_jaeger_1.JaegerExporter({
126
- // By default, the UDP sender will be used, but that causes issues
127
- // with packet sizes when Jaeger is running in Docker. We'll instead
128
- // configure it to use the HTTP sender, which shouldn't face those
129
- // same issues. We'll still allow the endpoint to be overridden via
130
- // environment variable if needed.
131
- endpoint: process.env.OTEL_EXPORTER_JAEGER_ENDPOINT ?? 'http://localhost:14268/api/traces',
126
+ return new exporter_trace_otlp_grpc_1.OTLPTraceExporter({
127
+ url: process.env.OTEL_EXPORTER_JAEGER_ENDPOINT ?? 'grpc://localhost:4317/',
132
128
  });
133
129
  default:
134
130
  throw new Error(`Unknown OpenTelemetry exporter: ${config.openTelemetryExporter}`);
@@ -159,6 +155,25 @@ function getMetricExporter(config) {
159
155
  throw new Error(`Unknown OpenTelemetry metric exporter: ${config.openTelemetryMetricExporter}`);
160
156
  }
161
157
  }
158
+ function getSpanProcessor(config) {
159
+ if (typeof config.openTelemetrySpanProcessor === 'object') {
160
+ return config.openTelemetrySpanProcessor;
161
+ }
162
+ const traceExporter = getTraceExporter(config);
163
+ if (!traceExporter)
164
+ return null;
165
+ switch (config.openTelemetrySpanProcessor ?? 'batch') {
166
+ case 'batch': {
167
+ return new FilterBatchSpanProcessor(traceExporter, filter);
168
+ }
169
+ case 'simple': {
170
+ return new sdk_trace_base_1.SimpleSpanProcessor(traceExporter);
171
+ }
172
+ default: {
173
+ throw new Error(`Unknown OpenTelemetry span processor: ${config.openTelemetrySpanProcessor}`);
174
+ }
175
+ }
176
+ }
162
177
  /**
163
178
  * Should be called once we've loaded our config; this will allow us to set up
164
179
  * the correct metadata for the Honeycomb exporter. We don't actually have that
@@ -175,8 +190,8 @@ async function init(config) {
175
190
  // https://github.com/open-telemetry/opentelemetry-js-contrib/pull/972
176
191
  return;
177
192
  }
178
- const traceExporter = getTraceExporter(config);
179
193
  const metricExporter = getMetricExporter(config);
194
+ const spanProcessor = getSpanProcessor(config);
180
195
  let sampler;
181
196
  switch (config.openTelemetrySamplerType ?? 'always-on') {
182
197
  case 'always-on': {
@@ -196,26 +211,12 @@ async function init(config) {
196
211
  default:
197
212
  throw new Error(`Unknown OpenTelemetry sampler type: ${config.openTelemetrySamplerType}`);
198
213
  }
199
- let spanProcessor;
200
- switch (config.openTelemetrySpanProcessor ?? 'batch') {
201
- case 'batch': {
202
- spanProcessor = new FilterBatchSpanProcessor(traceExporter, filter);
203
- break;
204
- }
205
- case 'simple': {
206
- spanProcessor = new sdk_trace_base_1.SimpleSpanProcessor(traceExporter);
207
- break;
208
- }
209
- default: {
210
- throw new Error(`Unknown OpenTelemetry span processor: ${config.openTelemetrySpanProcessor}`);
211
- }
212
- }
213
214
  // Much of this functionality is copied from `@opentelemetry/sdk-node`, but
214
215
  // we can't use the SDK directly because of the fact that we load our config
215
216
  // asynchronously. We need to initialize our instrumentations first; only
216
217
  // then can we actually start requiring all of our code that loads our config
217
218
  // and ultimately tells us how to configure OpenTelemetry.
218
- let resource = await (0, resources_1.detectResources)({
219
+ let resource = (0, resources_1.detectResourcesSync)({
219
220
  detectors: [resource_detector_aws_1.awsEc2Detector, resources_1.processDetector, resources_1.envDetector],
220
221
  });
221
222
  if (config.serviceName) {
@@ -226,20 +227,25 @@ async function init(config) {
226
227
  sampler,
227
228
  resource,
228
229
  });
229
- nodeTracerProvider.addSpanProcessor(spanProcessor);
230
+ if (spanProcessor) {
231
+ nodeTracerProvider.addSpanProcessor(spanProcessor);
232
+ }
230
233
  nodeTracerProvider.register();
231
234
  instrumentations.forEach((i) => i.setTracerProvider(nodeTracerProvider));
232
235
  // Save the provider so we can shut it down later.
233
236
  tracerProvider = nodeTracerProvider;
234
237
  // Set up metrics instrumentation if it's enabled.
235
238
  if (metricExporter) {
236
- const meterProvider = new sdk_metrics_1.MeterProvider({ resource });
237
- api_1.metrics.setGlobalMeterProvider(meterProvider);
238
- const metricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
239
- exporter: metricExporter,
240
- exportIntervalMillis: config.openTelemetryMetricExportIntervalMillis ?? 30000,
239
+ const meterProvider = new sdk_metrics_1.MeterProvider({
240
+ resource,
241
+ readers: [
242
+ new sdk_metrics_1.PeriodicExportingMetricReader({
243
+ exporter: metricExporter,
244
+ exportIntervalMillis: config.openTelemetryMetricExportIntervalMillis ?? 30000,
245
+ }),
246
+ ],
241
247
  });
242
- meterProvider.addMetricReader(metricReader);
248
+ api_1.metrics.setGlobalMeterProvider(meterProvider);
243
249
  }
244
250
  }
245
251
  exports.init = init;
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
package/dist/metrics.d.ts CHANGED
@@ -20,9 +20,9 @@ export interface createObservableValueGaugesOptions extends MetricOptions {
20
20
  * - `${name}.max`
21
21
  * - `${name}.avg`
22
22
  */
23
- export declare function createObservableValueGauges(meter: Meter, name: string, options: createObservableValueGaugesOptions, observe: () => number): Promise<{
23
+ export declare function createObservableValueGauges(meter: Meter, name: string, options: createObservableValueGaugesOptions, observe: () => number): {
24
24
  minGauge: ObservableGauge<import("@opentelemetry/api").Attributes>;
25
25
  maxGauge: ObservableGauge<import("@opentelemetry/api").Attributes>;
26
26
  averageGauge: ObservableGauge<import("@opentelemetry/api").Attributes>;
27
27
  stop: () => void;
28
- }>;
28
+ };
package/dist/metrics.js CHANGED
@@ -75,7 +75,7 @@ exports.instrumentedWithMetrics = instrumentedWithMetrics;
75
75
  * - `${name}.max`
76
76
  * - `${name}.avg`
77
77
  */
78
- async function createObservableValueGauges(meter, name, options, observe) {
78
+ function createObservableValueGauges(meter, name, options, observe) {
79
79
  const { interval, ...metricOptions } = options;
80
80
  let min = 0;
81
81
  let max = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":";;;AAAA,4CAU4B;AAE5B,MAAM,cAAc,GAAG,IAAI,OAAO,EAAiC,CAAC;AACpE,MAAM,YAAY,GAAG,IAAI,OAAO,EAA+B,CAAC;AAChE,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAqC,CAAC;AAC5E,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAyC,CAAC;AACpF,MAAM,4BAA4B,GAAG,IAAI,OAAO,EAA+C,CAAC;AAChG,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAEhF,SAAS,eAAe,CACtB,KAAqC,EACrC,KAAY,EACZ,IAAY,EACZ,MAAe;IAEf,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,EAAE,CAAC;QAClB,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IAC9E,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAClG,CAAC;AAFD,oCAEC;AAED,SAAgB,UAAU,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IAC5E,OAAO,eAAe,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9F,CAAC;AAFD,gCAEC;AAED,SAAgB,gBAAgB,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IAClF,OAAO,eAAe,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAC3D,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CACzC,CAAC;AACJ,CAAC;AAJD,4CAIC;AAED,SAAgB,oBAAoB,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IACtF,OAAO,eAAe,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAC/D,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAC7C,CAAC;AACJ,CAAC;AAJD,oDAIC;AAED,SAAgB,0BAA0B,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IAC5F,OAAO,eAAe,CAAC,4BAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CACrE,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,CACnD,CAAC;AACJ,CAAC;AAJD,gEAIC;AAED,SAAgB,kBAAkB,CAAC,KAAY,EAAE,IAAY,EAAE,OAAuB;IACpF,OAAO,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAC7D,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAC3C,CAAC;AACJ,CAAC;AAJD,gDAIC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,KAAY,EACZ,IAAY,EACZ,EAAwB;IAExB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,EAAE,SAAS,EAAE,eAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE;QACxD,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,eAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AApBD,0DAoBC;AAMD;;;;;;;;;;GAUG;AACH,SAAgB,2BAA2B,CACzC,KAAY,EACZ,IAAY,EACZ,OAA2C,EAC3C,OAAqB;IAErB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAE/C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,kEAAkE;IAClE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACvB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,GAAG,IAAI,KAAK,CAAC;YACb,KAAK,IAAI,CAAC,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,yCAAyC;IACzC,UAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE;QAC5D,GAAG,aAAa;QAChB,oEAAoE;QACpE,SAAS,EAAE,eAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,EAAE;QACxC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,GAAG,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,EAAE;QACxC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,GAAG,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;QACxB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,GAAG,GAAG,CAAC,CAAC;QACR,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;AACrF,CAAC;AAzDD,kEAyDC"}
@@ -7,12 +7,13 @@ const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
7
7
  describe('instrumented', () => {
8
8
  let contextManager;
9
9
  const exporter = new sdk_node_1.tracing.InMemorySpanExporter();
10
+ const spanProcessor = new sdk_node_1.tracing.SimpleSpanProcessor(exporter);
10
11
  before(async () => {
11
12
  await (0, index_1.init)({
12
13
  openTelemetryEnabled: true,
13
14
  openTelemetryExporter: exporter,
14
15
  openTelemetrySamplerType: 'always-on',
15
- openTelemetrySpanProcessor: 'simple',
16
+ openTelemetrySpanProcessor: spanProcessor,
16
17
  });
17
18
  });
18
19
  beforeEach(async () => {
@@ -20,6 +21,7 @@ describe('instrumented', () => {
20
21
  index_1.context.setGlobalContextManager(contextManager.enable());
21
22
  });
22
23
  afterEach(async () => {
24
+ await spanProcessor.forceFlush();
23
25
  exporter.reset();
24
26
  index_1.context.disable();
25
27
  });
@@ -29,6 +31,7 @@ describe('instrumented', () => {
29
31
  });
30
32
  it('records a span on success', async () => {
31
33
  await (0, index_1.instrumented)('test-success', () => 'foo');
34
+ await spanProcessor.forceFlush();
32
35
  const spans = exporter.getFinishedSpans();
33
36
  chai_1.assert.lengthOf(spans, 1);
34
37
  chai_1.assert.equal(spans[0].name, 'test-success');
@@ -47,6 +50,7 @@ describe('instrumented', () => {
47
50
  // Ensure the error was propagated back to the caller.
48
51
  chai_1.assert.equal(maybeError?.message, 'foo');
49
52
  // Ensure the correct span was recorded.
53
+ await spanProcessor.forceFlush();
50
54
  const spans = exporter.getFinishedSpans();
51
55
  chai_1.assert.lengthOf(spans, 1);
52
56
  chai_1.assert.equal(spans[0].name, 'test-failure');
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.test.js","sourceRoot":"","sources":["../src/tracing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracing.test.js","sourceRoot":"","sources":["../src/tracing.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prairielearn/opentelemetry",
3
- "version": "1.10.6",
3
+ "version": "1.11.0",
4
4
  "main": "dist/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,38 +13,37 @@
13
13
  "test": "mocha --no-config --require tsx src/**/*.test.ts"
14
14
  },
15
15
  "dependencies": {
16
- "@grpc/grpc-js": "^1.9.14",
17
- "@opentelemetry/api": "^1.7.0",
18
- "@opentelemetry/core": "^1.21.0",
19
- "@opentelemetry/exporter-jaeger": "^1.21.0",
20
- "@opentelemetry/exporter-metrics-otlp-grpc": "^0.48.0",
21
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.48.0",
22
- "@opentelemetry/instrumentation": "^0.48.0",
23
- "@opentelemetry/instrumentation-aws-sdk": "^0.38.0",
16
+ "@grpc/grpc-js": "^1.10.1",
17
+ "@opentelemetry/api": "^1.8.0",
18
+ "@opentelemetry/core": "^1.22.0",
19
+ "@opentelemetry/exporter-metrics-otlp-grpc": "^0.49.1",
20
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.49.1",
21
+ "@opentelemetry/instrumentation": "^0.49.1",
22
+ "@opentelemetry/instrumentation-aws-sdk": "^0.38.1",
24
23
  "@opentelemetry/instrumentation-connect": "^0.33.0",
25
24
  "@opentelemetry/instrumentation-dns": "^0.33.0",
26
25
  "@opentelemetry/instrumentation-express": "^0.35.0",
27
- "@opentelemetry/instrumentation-http": "^0.48.0",
26
+ "@opentelemetry/instrumentation-http": "^0.49.1",
28
27
  "@opentelemetry/instrumentation-pg": "^0.38.0",
29
28
  "@opentelemetry/instrumentation-redis": "^0.36.0",
30
29
  "@opentelemetry/resource-detector-aws": "^1.3.6",
31
- "@opentelemetry/resources": "^1.21.0",
32
- "@opentelemetry/sdk-metrics": "^1.21.0",
33
- "@opentelemetry/sdk-node": "^0.48.0",
34
- "@opentelemetry/sdk-trace-base": "^1.21.0",
35
- "@opentelemetry/sdk-trace-node": "^1.21.0",
36
- "@opentelemetry/semantic-conventions": "^1.21.0"
30
+ "@opentelemetry/resources": "^1.22.0",
31
+ "@opentelemetry/sdk-metrics": "^1.22.0",
32
+ "@opentelemetry/sdk-node": "^0.49.1",
33
+ "@opentelemetry/sdk-trace-base": "^1.22.0",
34
+ "@opentelemetry/sdk-trace-node": "^1.22.0",
35
+ "@opentelemetry/semantic-conventions": "^1.22.0"
37
36
  },
38
37
  "devDependencies": {
39
- "@opentelemetry/context-async-hooks": "^1.21.0",
38
+ "@opentelemetry/context-async-hooks": "^1.22.0",
40
39
  "@prairielearn/tsconfig": "^0.0.0",
41
- "@types/chai": "^4.3.11",
40
+ "@types/chai": "^4.3.12",
42
41
  "@types/mocha": "^10.0.6",
43
- "@types/node": "^20.11.11",
42
+ "@types/node": "^20.11.24",
44
43
  "chai": "^4.4.1",
45
44
  "chai-as-promised": "^7.1.1",
46
- "mocha": "^10.2.0",
47
- "tsx": "^4.7.0",
45
+ "mocha": "^10.3.0",
46
+ "tsx": "^4.7.1",
48
47
  "typescript": "^5.3.3"
49
48
  }
50
49
  }
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export {
12
12
  ObservableCounter,
13
13
  ObservableUpDownCounter,
14
14
  ObservableGauge,
15
+ ObservableResult,
15
16
  } from '@opentelemetry/api';
16
17
  export { suppressTracing } from '@opentelemetry/core';
17
18
 
package/src/init.ts CHANGED
@@ -21,14 +21,18 @@ import {
21
21
  Sampler,
22
22
  ConsoleSpanExporter,
23
23
  } from '@opentelemetry/sdk-trace-base';
24
- import { detectResources, processDetector, envDetector, Resource } from '@opentelemetry/resources';
24
+ import {
25
+ detectResourcesSync,
26
+ processDetector,
27
+ envDetector,
28
+ Resource,
29
+ } from '@opentelemetry/resources';
25
30
  import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
26
31
  import { metrics } from '@opentelemetry/api';
27
32
  import { hrTimeToMilliseconds } from '@opentelemetry/core';
28
33
 
29
34
  // Exporters go here.
30
35
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
31
- import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
32
36
  import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
33
37
 
34
38
  // Instrumentations go here.
@@ -127,12 +131,12 @@ let tracerProvider: NodeTracerProvider | null;
127
131
 
128
132
  export interface OpenTelemetryConfigEnabled {
129
133
  openTelemetryEnabled: true;
130
- openTelemetryExporter: 'console' | 'honeycomb' | 'jaeger' | SpanExporter;
134
+ openTelemetryExporter?: 'console' | 'honeycomb' | 'jaeger' | SpanExporter;
131
135
  openTelemetryMetricExporter?: 'console' | 'honeycomb' | PushMetricExporter;
132
136
  openTelemetryMetricExportIntervalMillis?: number;
133
137
  openTelemetrySamplerType: 'always-on' | 'always-off' | 'trace-id-ratio';
134
138
  openTelemetrySampleRate?: number;
135
- openTelemetrySpanProcessor?: 'batch' | 'simple';
139
+ openTelemetrySpanProcessor?: 'batch' | 'simple' | SpanProcessor;
136
140
  honeycombApiKey?: string;
137
141
  honeycombDataset?: string;
138
142
  serviceName?: string;
@@ -156,7 +160,9 @@ function getHoneycombMetadata(config: OpenTelemetryConfigEnabled, datasetSuffix
156
160
  return metadata;
157
161
  }
158
162
 
159
- function getTraceExporter(config: OpenTelemetryConfigEnabled): SpanExporter {
163
+ function getTraceExporter(config: OpenTelemetryConfigEnabled): SpanExporter | null {
164
+ if (!config.openTelemetryExporter) return null;
165
+
160
166
  if (typeof config.openTelemetryExporter === 'object') {
161
167
  return config.openTelemetryExporter;
162
168
  }
@@ -172,13 +178,8 @@ function getTraceExporter(config: OpenTelemetryConfigEnabled): SpanExporter {
172
178
  });
173
179
  break;
174
180
  case 'jaeger':
175
- return new JaegerExporter({
176
- // By default, the UDP sender will be used, but that causes issues
177
- // with packet sizes when Jaeger is running in Docker. We'll instead
178
- // configure it to use the HTTP sender, which shouldn't face those
179
- // same issues. We'll still allow the endpoint to be overridden via
180
- // environment variable if needed.
181
- endpoint: process.env.OTEL_EXPORTER_JAEGER_ENDPOINT ?? 'http://localhost:14268/api/traces',
181
+ return new OTLPTraceExporter({
182
+ url: process.env.OTEL_EXPORTER_JAEGER_ENDPOINT ?? 'grpc://localhost:4317/',
182
183
  });
183
184
  default:
184
185
  throw new Error(`Unknown OpenTelemetry exporter: ${config.openTelemetryExporter}`);
@@ -214,6 +215,27 @@ function getMetricExporter(config: OpenTelemetryConfigEnabled): PushMetricExport
214
215
  }
215
216
  }
216
217
 
218
+ function getSpanProcessor(config: OpenTelemetryConfigEnabled): SpanProcessor | null {
219
+ if (typeof config.openTelemetrySpanProcessor === 'object') {
220
+ return config.openTelemetrySpanProcessor;
221
+ }
222
+
223
+ const traceExporter = getTraceExporter(config);
224
+ if (!traceExporter) return null;
225
+
226
+ switch (config.openTelemetrySpanProcessor ?? 'batch') {
227
+ case 'batch': {
228
+ return new FilterBatchSpanProcessor(traceExporter, filter);
229
+ }
230
+ case 'simple': {
231
+ return new SimpleSpanProcessor(traceExporter);
232
+ }
233
+ default: {
234
+ throw new Error(`Unknown OpenTelemetry span processor: ${config.openTelemetrySpanProcessor}`);
235
+ }
236
+ }
237
+ }
238
+
217
239
  /**
218
240
  * Should be called once we've loaded our config; this will allow us to set up
219
241
  * the correct metadata for the Honeycomb exporter. We don't actually have that
@@ -231,8 +253,8 @@ export async function init(config: OpenTelemetryConfig) {
231
253
  return;
232
254
  }
233
255
 
234
- const traceExporter = getTraceExporter(config);
235
256
  const metricExporter = getMetricExporter(config);
257
+ const spanProcessor = getSpanProcessor(config);
236
258
 
237
259
  let sampler: Sampler;
238
260
  switch (config.openTelemetrySamplerType ?? 'always-on') {
@@ -254,28 +276,13 @@ export async function init(config: OpenTelemetryConfig) {
254
276
  throw new Error(`Unknown OpenTelemetry sampler type: ${config.openTelemetrySamplerType}`);
255
277
  }
256
278
 
257
- let spanProcessor: SpanProcessor;
258
- switch (config.openTelemetrySpanProcessor ?? 'batch') {
259
- case 'batch': {
260
- spanProcessor = new FilterBatchSpanProcessor(traceExporter, filter);
261
- break;
262
- }
263
- case 'simple': {
264
- spanProcessor = new SimpleSpanProcessor(traceExporter);
265
- break;
266
- }
267
- default: {
268
- throw new Error(`Unknown OpenTelemetry span processor: ${config.openTelemetrySpanProcessor}`);
269
- }
270
- }
271
-
272
279
  // Much of this functionality is copied from `@opentelemetry/sdk-node`, but
273
280
  // we can't use the SDK directly because of the fact that we load our config
274
281
  // asynchronously. We need to initialize our instrumentations first; only
275
282
  // then can we actually start requiring all of our code that loads our config
276
283
  // and ultimately tells us how to configure OpenTelemetry.
277
284
 
278
- let resource = await detectResources({
285
+ let resource = detectResourcesSync({
279
286
  detectors: [awsEc2Detector, processDetector, envDetector],
280
287
  });
281
288
 
@@ -290,7 +297,9 @@ export async function init(config: OpenTelemetryConfig) {
290
297
  sampler,
291
298
  resource,
292
299
  });
293
- nodeTracerProvider.addSpanProcessor(spanProcessor);
300
+ if (spanProcessor) {
301
+ nodeTracerProvider.addSpanProcessor(spanProcessor);
302
+ }
294
303
  nodeTracerProvider.register();
295
304
  instrumentations.forEach((i) => i.setTracerProvider(nodeTracerProvider));
296
305
 
@@ -299,13 +308,16 @@ export async function init(config: OpenTelemetryConfig) {
299
308
 
300
309
  // Set up metrics instrumentation if it's enabled.
301
310
  if (metricExporter) {
302
- const meterProvider = new MeterProvider({ resource });
303
- metrics.setGlobalMeterProvider(meterProvider);
304
- const metricReader = new PeriodicExportingMetricReader({
305
- exporter: metricExporter,
306
- exportIntervalMillis: config.openTelemetryMetricExportIntervalMillis ?? 30_000,
311
+ const meterProvider = new MeterProvider({
312
+ resource,
313
+ readers: [
314
+ new PeriodicExportingMetricReader({
315
+ exporter: metricExporter,
316
+ exportIntervalMillis: config.openTelemetryMetricExportIntervalMillis ?? 30_000,
317
+ }),
318
+ ],
307
319
  });
308
- meterProvider.addMetricReader(metricReader);
320
+ metrics.setGlobalMeterProvider(meterProvider);
309
321
  }
310
322
  }
311
323
 
package/src/metrics.ts CHANGED
@@ -107,7 +107,7 @@ export interface createObservableValueGaugesOptions extends MetricOptions {
107
107
  * - `${name}.max`
108
108
  * - `${name}.avg`
109
109
  */
110
- export async function createObservableValueGauges(
110
+ export function createObservableValueGauges(
111
111
  meter: Meter,
112
112
  name: string,
113
113
  options: createObservableValueGaugesOptions,
@@ -7,13 +7,14 @@ import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks';
7
7
  describe('instrumented', () => {
8
8
  let contextManager: AsyncHooksContextManager;
9
9
  const exporter = new tracing.InMemorySpanExporter();
10
+ const spanProcessor = new tracing.SimpleSpanProcessor(exporter);
10
11
 
11
12
  before(async () => {
12
13
  await init({
13
14
  openTelemetryEnabled: true,
14
15
  openTelemetryExporter: exporter,
15
16
  openTelemetrySamplerType: 'always-on',
16
- openTelemetrySpanProcessor: 'simple',
17
+ openTelemetrySpanProcessor: spanProcessor,
17
18
  });
18
19
  });
19
20
 
@@ -23,6 +24,7 @@ describe('instrumented', () => {
23
24
  });
24
25
 
25
26
  afterEach(async () => {
27
+ await spanProcessor.forceFlush();
26
28
  exporter.reset();
27
29
  context.disable();
28
30
  });
@@ -35,6 +37,7 @@ describe('instrumented', () => {
35
37
  it('records a span on success', async () => {
36
38
  await instrumented('test-success', () => 'foo');
37
39
 
40
+ await spanProcessor.forceFlush();
38
41
  const spans = exporter.getFinishedSpans();
39
42
  assert.lengthOf(spans, 1);
40
43
  assert.equal(spans[0].name, 'test-success');
@@ -56,6 +59,7 @@ describe('instrumented', () => {
56
59
  assert.equal(maybeError?.message, 'foo');
57
60
 
58
61
  // Ensure the correct span was recorded.
62
+ await spanProcessor.forceFlush();
59
63
  const spans = exporter.getFinishedSpans();
60
64
  assert.lengthOf(spans, 1);
61
65
  assert.equal(spans[0].name, 'test-failure');
package/tsconfig.json CHANGED
@@ -3,6 +3,6 @@
3
3
  "compilerOptions": {
4
4
  "outDir": "./dist",
5
5
  "rootDir": "./src",
6
- "types": ["mocha", "node"],
7
- },
6
+ "types": ["mocha", "node"]
7
+ }
8
8
  }