@opentelemetry/otlp-exporter-base
Version:
OpenTelemetry OTLP Exporter base (for internal use only)
42 lines • 1.7 kB
JavaScript
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
export function validateTimeoutMillis(timeoutMillis) {
if (Number.isFinite(timeoutMillis) && timeoutMillis > 0) {
return timeoutMillis;
}
throw new Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${timeoutMillis}')`);
}
export function wrapStaticHeadersInFunction(headers) {
if (headers == null) {
return undefined;
}
return async () => headers;
}
/**
* @param userProvidedConfiguration Configuration options provided by the user in code.
* @param fallbackConfiguration Fallback to use when the {@link userProvidedConfiguration} does not specify an option.
* @param defaultConfiguration The defaults as defined by the exporter specification
*/
export function mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) {
return {
timeoutMillis: validateTimeoutMillis(userProvidedConfiguration.timeoutMillis ??
fallbackConfiguration.timeoutMillis ??
defaultConfiguration.timeoutMillis),
concurrencyLimit: userProvidedConfiguration.concurrencyLimit ??
fallbackConfiguration.concurrencyLimit ??
defaultConfiguration.concurrencyLimit,
compression: userProvidedConfiguration.compression ??
fallbackConfiguration.compression ??
defaultConfiguration.compression,
};
}
export function getSharedConfigurationDefaults() {
return {
timeoutMillis: 10000,
concurrencyLimit: 30,
compression: 'none',
};
}
//# sourceMappingURL=shared-configuration.js.map