autotel
Version:
Write Once, Observe Anywhere
92 lines (89 loc) • 2.78 kB
JavaScript
;
var chunkYREV3LGG_cjs = require('./chunk-YREV3LGG.cjs');
var api = require('@opentelemetry/api');
var IS_PRODUCTION = process.env.NODE_ENV === "production";
var IS_DEV = process.env.NODE_ENV === "development";
process.env.NODE_ENV === "test";
var FEATURE_FLAGS = {
/** Enable full auto-instrumentation (expensive, production only) */
ENABLE_AUTO_INSTRUMENTATION: IS_PRODUCTION && process.env.autotel_AUTO_INSTRUMENT !== "false",
/** Enable verbose logging (development only) */
ENABLE_VERBOSE_LOGGING: IS_DEV || process.env.autotel_VERBOSE === "true",
/** Enable metrics collection (production only) */
ENABLE_METRICS_BY_DEFAULT: IS_PRODUCTION && process.env.autotel_METRICS !== "false",
/** Enable async resource detection (production only) */
ENABLE_RESOURCE_DETECTION: IS_PRODUCTION && process.env.autotel_RESOURCE_DETECTION === "true",
/** Enable tracing in all environments (can be disabled via autotel_TRACING=false) */
ENABLE_TRACING: process.env.autotel_TRACING !== "false",
/** Enable log redaction for sensitive fields (can be disabled via autotel_REDACTION=false) */
ENABLE_REDACTION: process.env.autotel_REDACTION !== "false"
};
var Config = class {
config = {
tracerName: "app",
meterName: "app",
tracer: chunkYREV3LGG_cjs.getAutotelTracer("app"),
meter: api.metrics.getMeter("app")
};
/**
* Get feature flags
*/
get featureFlags() {
return FEATURE_FLAGS;
}
/**
* Update global configuration
*/
configure(options) {
if (options.tracerName) {
this.config.tracerName = options.tracerName;
this.config.tracer = chunkYREV3LGG_cjs.getAutotelTracer(options.tracerName);
}
if (options.meterName) {
this.config.meterName = options.meterName;
this.config.meter = api.metrics.getMeter(options.meterName);
}
if (options.tracer) {
this.config.tracer = options.tracer;
}
if (options.meter) {
this.config.meter = options.meter;
}
}
/**
* Get current configuration
*/
get() {
return this.config;
}
/**
* Reset to defaults (mainly for testing)
*/
reset() {
this.config = {
tracerName: "app",
meterName: "app",
tracer: api.trace.getTracer("app"),
meter: api.metrics.getMeter("app")
};
}
};
var globalConfig = new Config();
function configure(options) {
globalConfig.configure(options);
}
function getConfig() {
return {
...globalConfig.get(),
featureFlags: FEATURE_FLAGS
};
}
function resetConfig() {
globalConfig.reset();
}
exports.FEATURE_FLAGS = FEATURE_FLAGS;
exports.configure = configure;
exports.getConfig = getConfig;
exports.resetConfig = resetConfig;
//# sourceMappingURL=chunk-ESLWRGAG.cjs.map
//# sourceMappingURL=chunk-ESLWRGAG.cjs.map