Files
doneit-web/src/app/services/monitoring/opentelemetry/opentelemetry.ts
T

35 lines
1.4 KiB
TypeScript
Raw Normal View History

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,
}),
});
2024-06-21 13:45:06 +01:00
// provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
2024-06-17 09:02:10 +01:00
provider.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({
2024-06-19 16:43:12 +01:00
url: 'https://5-180-182-151.cloud-xip.com:85/zipkin-endpoint/api/v2/spans',
2024-06-17 09:02:10 +01:00
serviceName: serviceName,
2024-06-19 18:55:36 +01:00
getExportRequestHeaders: () => {
return {
'Authorization': 'Basic ' + btoa('tabteste@006:tabteste@006'),
};
}
2024-06-17 09:02:10 +01:00
})));
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');