public ActiveMqMetricsRecorder(string name, ActiveMqMetricsOptions options, IMetrics metrics) { Name = name; _metrics = metrics; _messageSendTime = new HistogramOptions { Context = options.Context, Name = "Message Send Time", MeasurementUnit = Unit.Custom("ns") }; _messageSendRate = new MeterOptions { Context = options.Context, Name = "Message Send Rate", MeasurementUnit = Unit.Custom("msg") }; _messageProcessingTime = new HistogramOptions { Context = options.Context, Name = "Message Processing Time", MeasurementUnit = Unit.Custom("ns") }; _messageProcessingRate = new MeterOptions { Context = options.Context, Name = "Message Processing Rate", MeasurementUnit = Unit.Custom("msg"), }; }
public static IActiveMqBuilder AddMetrics(this IActiveMqBuilder builder, Action <ActiveMqMetricsOptions> configureOptions) { builder.Services.AddSingleton(provider => { var activeMqMetricsOptions = new ActiveMqMetricsOptions(); configureOptions.Invoke(activeMqMetricsOptions); var metrics = provider.GetRequiredService <IMetrics>(); return(new ActiveMqMetricsRecorder(builder.Name, activeMqMetricsOptions, metrics)); }); return(builder.AddSendObserver <ActiveMqMetricsRecorder>(provider => provider.GetMetricsRecorder(builder.Name)) .AddReceiveObserver <ActiveMqMetricsRecorder>(provider => provider.GetMetricsRecorder(builder.Name))); }