2024-06-17 09:02:10 +01:00
|
|
|
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
|
|
|
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
|
|
|
|
|
import { ZipkinExporter } from '@opentelemetry/exporter-zipkin';
|
|
|
|
|
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
|
|
|
|
|
import { Resource } from '@opentelemetry/resources';
|
|
|
|
|
|
|
|
|
|
function createProvider(serviceName) {
|
|
|
|
|
const provider = new WebTracerProvider({
|
|
|
|
|
resource: new Resource({
|
|
|
|
|
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
|
|
|
}),
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
|
|
|
|
|
provider.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({
|
2024-06-17 14:38:31 +01:00
|
|
|
url: 'http://5.180.182.151:9411/api/v2/spans',
|
2024-06-17 09:02:10 +01:00
|
|
|
serviceName: serviceName,
|
|
|
|
|
// Uncomment and customize the following if needed
|
|
|
|
|
// getExportRequestHeaders: () => {
|
|
|
|
|
// return {
|
|
|
|
|
// foo: 'bar',
|
|
|
|
|
// };
|
|
|
|
|
// }
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
|
provider.register();
|
|
|
|
|
return provider;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Example usage:
|
|
|
|
|
export const OpentelemetryChatProvider = createProvider('FO-chat-service');
|
|
|
|
|
export const OpentelemetryAgendaProvider = createProvider('FO-agenda-service');
|
2024-06-18 12:03:38 +01:00
|
|
|
export const OpentelemetryNotificationProvider = createProvider('FO-notification');
|
2024-06-19 09:03:26 +01:00
|
|
|
export const OpentelemetryInterceptorProvider = createProvider('FO-interceptor');
|
2024-06-17 09:02:10 +01:00
|
|
|
export const OpentelemetryPublicationProvider = createProvider('FO-publication-service');
|