コード例 #1
0
        private HttpClient CreateClient(ElasticSearchSettings settings, HttpPolicy httpPolicy)
        {
            var httpClient = new HttpClient
            {
                BaseAddress = settings.Address,
                Timeout     = httpPolicy.Timeout
            };

            switch (settings.AuthorizationSchema)
            {
            case ElasticSearchAuthorizationSchemes.Anonymous:
                httpClient.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", settings.BearerToken);
                break;

            case ElasticSearchAuthorizationSchemes.Basic:
                var byteArray = Encoding.ASCII.GetBytes($"{settings.UserName}:{settings.Password}");
                httpClient.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
                break;

            case ElasticSearchAuthorizationSchemes.BearerToken:
                break;

            default:
                throw new NotImplementedException($"The specified schema {settings.AuthorizationSchema} is not implemented");
            }

            return(httpClient);
        }
コード例 #2
0
 public ElasticSearchBulkClient(
     ILoggerFactory loggerFactory,
     ElasticSearchSettings elasticSearchSettings)
     : this(
         loggerFactory,
         elasticSearchSettings,
         new HttpPolicy())
 {
 }
コード例 #3
0
        public ElasticSearchBulkClient(
            ILoggerFactory loggerFactory,
            ElasticSearchSettings elasticSearchSettings,
            HttpPolicy httpPolicy,
            HttpMessageHandler httpMessageHandler = null)
        {
            if (elasticSearchSettings == null)
            {
                throw new ArgumentNullException(nameof(elasticSearchSettings));
            }

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

            _httpClient            = CreateClient(elasticSearchSettings, httpPolicy);
            _backOffPeriod         = httpPolicy.BackoffPeriod;
            _failuresBeforeBackoff = httpPolicy.FailuresBeforeBackoff;
            _failureAttempts       = 0;
            _logger = loggerFactory.CreateLogger <ElasticSearchBulkClient>();
        }
コード例 #4
0
 public BulkPayloadBuilder(ElasticSearchSettings settings, Func <string, string> metricTagValueFormatter)
 {
     _settings = settings ?? throw new ArgumentNullException(nameof(settings));
     _metricTagValueFormatter = metricTagValueFormatter;
     _serializer = JsonSerializer.Create();
 }