51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
|
|
import {
|
||
|
|
BatchSpanProcessor,
|
||
|
|
NodeTracerProvider,
|
||
|
|
} from "@opentelemetry/sdk-trace-node";
|
||
|
|
import { Resource } from "@opentelemetry/resources";
|
||
|
|
import {
|
||
|
|
ATTR_DEPLOYMENT_NAME,
|
||
|
|
ATTR_SERVICE_INSTANCE_ID,
|
||
|
|
} from "@opentelemetry/semantic-conventions/incubating";
|
||
|
|
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
|
||
|
|
import { registerInstrumentations } from "@opentelemetry/instrumentation";
|
||
|
|
import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
|
||
|
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
||
|
|
|
||
|
|
const provider = new NodeTracerProvider({
|
||
|
|
resource: new Resource({
|
||
|
|
[ATTR_DEPLOYMENT_NAME]: `${process.env.APPSMITH_DEPLOYMENT_NAME || "self-hosted"}`,
|
||
|
|
[ATTR_SERVICE_INSTANCE_ID]: `${process.env.HOSTNAME || "appsmith-0"}`,
|
||
|
|
[ATTR_SERVICE_NAME]: "rts",
|
||
|
|
}),
|
||
|
|
});
|
||
|
|
|
||
|
|
const nrTracesExporter = new OTLPTraceExporter({
|
||
|
|
url: `${process.env.APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`,
|
||
|
|
headers: {
|
||
|
|
"api-key": `${process.env.APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY}`,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
|
||
|
|
registerInstrumentations({
|
||
|
|
instrumentations: [new HttpInstrumentation()],
|
||
|
|
});
|
||
|
|
|
||
|
|
const batchSpanProcessor = new BatchSpanProcessor(
|
||
|
|
nrTracesExporter,
|
||
|
|
//Optional BatchSpanProcessor Configurations
|
||
|
|
{
|
||
|
|
// The maximum queue size. After the size is reached spans are dropped.
|
||
|
|
maxQueueSize: 100,
|
||
|
|
// The maximum batch size of every export. It must be smaller or equal to maxQueueSize.
|
||
|
|
maxExportBatchSize: 50,
|
||
|
|
// The interval between two consecutive exports
|
||
|
|
scheduledDelayMillis: 500,
|
||
|
|
// How long the export can run before it is cancelled
|
||
|
|
exportTimeoutMillis: 30000,
|
||
|
|
},
|
||
|
|
);
|
||
|
|
|
||
|
|
provider.addSpanProcessor(batchSpanProcessor);
|
||
|
|
provider.register();
|