@ones-op/node-host
Version:
ONES Open Platform Node.js plugin host
38 lines (37 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sdk = void 0;
const config_1 = require("./config");
const logger_1 = require("./logger");
const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc");
const resources_1 = require("@opentelemetry/resources");
const sdk_node_1 = require("@opentelemetry/sdk-node");
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
const utils_1 = require("./utils");
const options = {
resource: new resources_1.Resource({
[semantic_conventions_1.ATTR_SERVICE_NAME]: '@ones-open/node-host',
[semantic_conventions_1.ATTR_SERVICE_VERSION]: (0, utils_1.getHashJSON)().hash,
}),
sampler: new sdk_trace_node_1.ParentBasedSampler({
root: new sdk_trace_node_1.AlwaysOffSampler(), // sample incoming traced requests for now
}),
};
const endpoint = config_1.config.host.otlp_export_grpc_addr;
if (endpoint) {
if (endpoint.startsWith('https://')) {
logger_1.logger.error('otlp export does not support https for now, will not export traces to', endpoint);
}
else {
let url = endpoint;
if (!url.startsWith('http://')) {
url = `http://${url}`;
}
logger_1.logger.info('Node-Host: exporting traces to', url);
options.traceExporter = new exporter_trace_otlp_grpc_1.OTLPTraceExporter({
url,
});
}
}
exports.sdk = new sdk_node_1.NodeSDK(options);