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"),
            };
        }
Example #2
0
 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)));
 }