@shopify/cli-kit
Version:
A set of utilities, interfaces, and models that are common across all the platform features
33 lines • 1.28 kB
JavaScript
import { DefaultMeterProvider } from './DefaultMeterProvider.js';
import { BaseOtelService } from '../BaseOtelService/BaseOtelService.js';
import { diag, DiagConsoleLogger, DiagLogLevel } from '@opentelemetry/api';
export class DefaultOtelService extends BaseOtelService {
/**
* Bootstraps an Otel exporter which can send Otel metrics to a dedicated Shopify supported collector endpoint.
*/
constructor({ throttleLimit = 5000, env = 'local', serviceName, prefixMetric = false, metrics = {}, onRecord, meterProvider, useXhr = false,
// CLI addition
otelEndpoint, }) {
diag.setLogger(new DiagConsoleLogger(), ['production', 'staging'].includes(env) ? DiagLogLevel.ERROR : DiagLogLevel.INFO);
super({
serviceName,
meterProvider: meterProvider ??
new DefaultMeterProvider({
serviceName,
env,
throttleLimit,
useXhr,
// CLI addition
otelEndpoint,
}),
prefixMetric,
metrics,
onRecord,
});
}
shutdown() {
diag.disable();
return super.shutdown();
}
}
//# sourceMappingURL=DefaultOtelService.js.map