コード例 #1
0
        public MackerelMetricsReporter(MetricsReportingMackerelOptions options)
        {
            this.Options = options;

            var httpOptions = Options.HttpOptions;

            // https://mackerel.io/ja/api-docs/entry/host-metrics#post
            httpOptions.HttpSettings.RequestUri = new Uri(Options.ApiBase + "/tsdb");
            httpOptions.MetricsOutputFormatter  = new HostMetricsJsonOutputFormatter(Options.HostId);
            httpOptions.InnerHttpMessageHandler = new MackerelApiMessageHandler(Options.ApiKey);

            _httpReporter = new HttpMetricsReporter(httpOptions);
        }
        public static IMetricsBuilder ToMackerel(
            this IMetricsReportingBuilder metricReporterProviderBuilder,
            Action <MetricsReportingMackerelOptions> setupAction)
        {
            if (metricReporterProviderBuilder == null)
            {
                throw new ArgumentNullException(nameof(metricReporterProviderBuilder));
            }

            var options = new MetricsReportingMackerelOptions();

            setupAction?.Invoke(options);

            var provider = new MackerelMetricsReporter(options);

            return(metricReporterProviderBuilder.Using(provider));
        }