diff --git a/.changeset/stale-pumas-appear.md b/.changeset/stale-pumas-appear.md new file mode 100644 index 00000000..7deac41c --- /dev/null +++ b/.changeset/stale-pumas-appear.md @@ -0,0 +1,5 @@ +--- +'@hyperdx/node-opentelemetry': patch +--- + +feat: support OTEL_METRIC_EXPORT_INTERVAL and OTEL_METRIC_EXPORT_TIMEOUT diff --git a/packages/node-opentelemetry/src/constants.ts b/packages/node-opentelemetry/src/constants.ts index e3004c92..585ae14b 100644 --- a/packages/node-opentelemetry/src/constants.ts +++ b/packages/node-opentelemetry/src/constants.ts @@ -36,13 +36,19 @@ export const DEFAULT_OTEL_LOGS_EXPORTER_URL = (otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT ? `${otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/logs` : 'https://in-otel.hyperdx.io/v1/logs'); -export const DEFAULT_OTEL_METRICS_EXPORTER = (otelEnv as any) - .OTEL_METRICS_EXPORTER; // not exist yet +export const DEFAULT_OTEL_METRICS_EXPORTER = env.OTEL_METRICS_EXPORTER; // not exist yet export const DEFAULT_OTEL_METRICS_EXPORTER_URL = otelEnv.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ?? (otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT ? `${otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/metrics` : 'https://in-otel.hyperdx.io/v1/metrics'); +export const DEFAULT_OTEL_METRIC_EXPORT_INTERVAL = + env.OTEL_METRIC_EXPORT_INTERVAL + ? Number(env.OTEL_METRIC_EXPORT_INTERVAL) + : 60000; // not exist yet +export const DEFAULT_OTEL_METRIC_EXPORT_TIMEOUT = env.OTEL_METRIC_EXPORT_TIMEOUT + ? Number(env.OTEL_METRIC_EXPORT_TIMEOUT) + : 30000; // not exist yet export const DEFAULT_SERVICE_NAME = () => getEnvWithoutDefaults().OTEL_SERVICE_NAME ?? defaultServiceName(); export const DEFAULT_OTEL_LOG_LEVEL = otelEnvWithDefaults.OTEL_LOG_LEVEL; diff --git a/packages/node-opentelemetry/src/metrics.ts b/packages/node-opentelemetry/src/metrics.ts index 66849270..b9432f85 100644 --- a/packages/node-opentelemetry/src/metrics.ts +++ b/packages/node-opentelemetry/src/metrics.ts @@ -1,12 +1,17 @@ import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto'; import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; -import { DEFAULT_OTEL_METRICS_EXPORTER_URL } from './constants'; +import { + DEFAULT_OTEL_METRIC_EXPORT_INTERVAL, + DEFAULT_OTEL_METRIC_EXPORT_TIMEOUT, + DEFAULT_OTEL_METRICS_EXPORTER_URL, +} from './constants'; export const getHyperDXMetricReader = () => new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter({ url: DEFAULT_OTEL_METRICS_EXPORTER_URL, }), - exportIntervalMillis: 1000, + exportIntervalMillis: DEFAULT_OTEL_METRIC_EXPORT_INTERVAL, + exportTimeoutMillis: DEFAULT_OTEL_METRIC_EXPORT_TIMEOUT, });