コード例 #1
0
    protected override void Setup(FeatureConfigurationContext context)
    {
        #region setup-datadog-client

        var dogstatsdConfig = new StatsdConfig
        {
            StatsdServerName = "127.0.0.1",
            StatsdPort       = 8125,
        }; //Datadog agent default address, port

        DogStatsd.Configure(dogstatsdConfig);

        #endregion

        #region datadog-enable-nsb-metrics

        _metricsOptions.RegisterObservers(register: probeContext =>
        {
            foreach (var duration in probeContext.Durations)
            {
                if (!_nameMapping.ContainsKey(duration.Name))
                {
                    continue;
                }
                duration.Register((ref DurationEvent @event) =>
                {
                    var statName = ComposeStatName(duration.Name);
                    var tags     = ComposeTags(@event.MessageType);
                    DogStatsd.Timer(statName, @event.Duration.TotalMilliseconds, tags: tags);
                });
            }

            foreach (var signal in probeContext.Signals)
            {
                if (!_nameMapping.ContainsKey(signal.Name))
                {
                    continue;
                }
                signal.Register((ref SignalEvent @event) =>
                {
                    var statName = ComposeStatName(signal.Name);
                    var tags     = ComposeTags(@event.MessageType);
                    DogStatsd.Increment(statName, tags: tags);
                });
            }
        });

        #endregion
    }