// Copyright Epic Games, Inc. All Rights Reserved. using OpenTelemetry.Trace; namespace HordeServer.Utilities { /// /// Static initialization of all available OpenTelemetry tracers /// public static class OpenTelemetryTracers { /// /// Name of resource name attribute in Datadog /// Some traces use this for prettier display inside their UI /// public const string DatadogResourceAttribute = "resource.name"; /// /// Name of default Horde tracer (aka activity source) /// public const string HordeName = "Horde"; /// /// Name of MongoDB tracer (aka activity source) /// public const string MongoDbName = "MongoDB"; /// /// List of all source names configured in this class. /// They are needed at startup when initializing OpenTelemetry /// public static string[] SourceNames => new[] { HordeName, MongoDbName }; /// /// Default tracer used in Horde /// Prefer dependency-injected tracer over this static member. /// public static readonly Tracer Horde = TracerProvider.Default.GetTracer(HordeName); /// /// Tracer specific to MongoDB /// Prefer StartMongoDbSpan static extension for Tracer. /// public static readonly Tracer MongoDb = TracerProvider.Default.GetTracer(MongoDbName); } }