コード例 #1
0
        /// <summary>
        ///     Add the <see cref="HttpMetricsReporter" /> allowing metrics to be reported over HTTP.
        /// </summary>
        /// <param name="metricReporterProviderBuilder">
        ///     The <see cref="IMetricsReportingBuilder" /> used to configure metrics reporters.
        /// </param>
        /// <param name="endpoint">The HTTP endpoint where metrics are POSTed.</param>
        /// <returns>
        ///     An <see cref="IMetricsBuilder" /> that can be used to further configure App Metrics.
        /// </returns>
        public static IMetricsBuilder OverHttp(
            this IMetricsReportingBuilder metricReporterProviderBuilder,
            string endpoint)
        {
            if (metricReporterProviderBuilder == null)
            {
                throw new ArgumentNullException(nameof(metricReporterProviderBuilder));
            }

            if (endpoint == null)
            {
                throw new ArgumentNullException(nameof(endpoint));
            }

            if (!Uri.TryCreate(endpoint, UriKind.Absolute, out var uri))
            {
                throw new InvalidOperationException($"{nameof(endpoint)} must be a valid absolute URI");
            }

            var options = new MetricsReportingHttpOptions {
                HttpSettings = new HttpSettings(uri)
            };
            var provider = new HttpMetricsReporter(options);

            return(metricReporterProviderBuilder.Using(provider));
        }
コード例 #2
0
        /// <summary>
        ///     Add the <see cref="HttpMetricsReporter" /> allowing metrics to be reported over HTTP.
        /// </summary>
        /// <param name="metricReporterProviderBuilder">
        ///     The <see cref="IMetricsReportingBuilder" /> used to configure metrics reporters.
        /// </param>
        /// <param name="options">The HTTP reporting options to use.</param>
        /// <returns>
        ///     An <see cref="IMetricsBuilder" /> that can be used to further configure App Metrics.
        /// </returns>
        public static IMetricsBuilder OverHttp(
            this IMetricsReportingBuilder metricReporterProviderBuilder,
            MetricsReportingHttpOptions options)
        {
            if (metricReporterProviderBuilder == null)
            {
                throw new ArgumentNullException(nameof(metricReporterProviderBuilder));
            }

            var provider = new HttpMetricsReporter(options);

            return(metricReporterProviderBuilder.Using(provider));
        }
コード例 #3
0
        /// <summary>
        ///     Add the <see cref="HttpMetricsReporter" /> allowing metrics to be reported over HTTP.
        /// </summary>
        /// <param name="metricReporterProviderBuilder">
        ///     The <see cref="IMetricsReportingBuilder" /> used to configure metrics reporters.
        /// </param>
        /// <param name="setupAction">The HTTP reporting options to use.</param>
        /// <returns>
        ///     An <see cref="IMetricsBuilder" /> that can be used to further configure App Metrics.
        /// </returns>
        public static IMetricsBuilder OverHttp(
            this IMetricsReportingBuilder metricReporterProviderBuilder,
            Action <MetricsReportingHttpOptions> setupAction)
        {
            if (metricReporterProviderBuilder == null)
            {
                throw new ArgumentNullException(nameof(metricReporterProviderBuilder));
            }

            var options = new MetricsReportingHttpOptions();

            setupAction?.Invoke(options);

            var provider = new HttpMetricsReporter(options);

            return(metricReporterProviderBuilder.Using(provider));
        }