@boxyhq/metrics
Version:
Internal SDK for OTel instrumentation
45 lines (44 loc) • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initializeMetrics = initializeMetrics;
const api_1 = require("@opentelemetry/api");
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
const exporter_metrics_otlp_grpc_1 = require("@opentelemetry/exporter-metrics-otlp-grpc");
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
const resources_1 = require("@opentelemetry/resources");
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
/**
* Configure the exporter and also a global MeterProvider.
*
* See https://opentelemetry.io/docs/instrumentation/js/instrumentation/#initialize-metrics
*/
function initializeMetrics(serviceInfo) {
if (process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
const meterProvider = new sdk_metrics_1.MeterProvider({
resource: new resources_1.Resource({
[semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: `${serviceInfo.name}`,
[semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: `${serviceInfo.version}`,
}),
});
let metricExporter;
if (process.env.OTEL_EXPORTER_OTLP_PROTOCOL === 'grpc' ||
process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL === 'grpc') {
metricExporter = new exporter_metrics_otlp_grpc_1.OTLPMetricExporter();
}
else {
metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter();
}
/** exportIntervalMillis must be greater than exportTimeoutMillis */
const exportIntervalMillis = Number(process.env.OTEL_EXPORT_INTERVAL_MS) || 60000;
const exportTimeoutMillis = Number(process.env.OTEL_EXPORT_INTERVAL_MS) - 1000 || 30000;
meterProvider.addMetricReader(new sdk_metrics_1.PeriodicExportingMetricReader({
exporter: metricExporter,
exportIntervalMillis,
exportTimeoutMillis,
}));
api_1.metrics.setGlobalMeterProvider(meterProvider);
}
if (process.env.OTEL_EXPORTER_DEBUG) {
api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.DEBUG);
}
}