Exemplo n.º 1
0
    private MeterAdapter(MeterAdapterOptions options)
    {
        _options       = options;
        _metricFactory = Metrics.WithCustomRegistry(_options.Registry);

        _counter = _metricFactory.CreateCounter("dotnet_meters_counter", "Incrementing counters from the .NET Meters API.", new CounterConfiguration
        {
            LabelNames = new[] { "meter", "instrument", "unit", "description" }
        });

        _gauge = _metricFactory.CreateGauge("dotnet_meters_gauge", "Raw values from the .NET Meters API.", new GaugeConfiguration
        {
            LabelNames = new[] { "meter", "instrument", "unit", "description" }
        });

        _countersListener.InstrumentPublished += OnCounterInstrumentPublished;
        _countersListener.SetMeasurementEventCallback <byte>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <short>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <int>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <long>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <float>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <double>(OnCounterMeasurement);
        _countersListener.SetMeasurementEventCallback <decimal>(OnCounterMeasurement);

        _countersListener.Start();

        _gaugesListener.InstrumentPublished += OnGaugeInstrumentPublished;
        _gaugesListener.SetMeasurementEventCallback <byte>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <short>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <int>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <long>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <float>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <double>(OnGaugeMeasurement);
        _gaugesListener.SetMeasurementEventCallback <decimal>(OnGaugeMeasurement);

        _gaugesListener.Start();

        Task.Run(TimerLoopAsync);
    }
Exemplo n.º 2
0
 public static IDisposable StartListening(MeterAdapterOptions options) => new MeterAdapter(options);