36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using System;
|
|
using System.Diagnostics.Metrics;
|
|
using OpenTelemetry;
|
|
using OpenTelemetry.Metrics;
|
|
using OpenTelemetry.Resources;
|
|
|
|
namespace Server;
|
|
|
|
public class Telemetry
|
|
{
|
|
public static MeterProvider MeterProvider { get; private set; }
|
|
public static readonly Meter AccountingMeter = new("ModernUO.Accounting");
|
|
public static readonly Meter ItemsMeter = new("ModernUO.Items");
|
|
public static readonly Meter MobilesMeter = new("ModernUO.Mobiles");
|
|
public static readonly Meter EconomyMeter = new("ModernUO.Economy");
|
|
|
|
public static void Start()
|
|
{
|
|
MeterProvider = Sdk.CreateMeterProviderBuilder()
|
|
.ConfigureResource(r => r.AddService("ModernUO"))
|
|
.AddOtlpExporter(options =>
|
|
{
|
|
options.BatchExportProcessorOptions.ScheduledDelayMilliseconds = TimeSpan.FromSeconds(10.0).Milliseconds;
|
|
})
|
|
.AddMeter("ModernUO.Accounting")
|
|
.AddMeter("ModernUO.Items")
|
|
.AddMeter("ModernUO.Mobiles")
|
|
.AddMeter("ModernUO.Economy")
|
|
.AddView(
|
|
"gold_created_histogram",
|
|
new ExplicitBucketHistogramConfiguration()
|
|
{ Boundaries = new double[] { 100, 200, 300, 400, 500, 700, 1000, 1500, 2000 } }
|
|
)
|
|
.Build();
|
|
}
|
|
}
|