Exemple #1
0
        private static void AddOperationDocument(InnerBulkOperation operation, StringBuilder sb)
        {
            var json = JsonConvert.SerializeObject(operation.Document);

            sb.Append(json);
            sb.Append("\n");
        }
        private static void AddOperationMetadata(InnerBulkOperation operation, StringBuilder sb)
        {
            var indexParams = new Dictionary <string, string>(operation.IndexOperationParams)
            {
                { "_index", operation.IndexName },
                { "_type", operation.IndexType },
            };
            var paramStrings = indexParams
                               .Where(kv => kv.Value != null)
                               .Select(kv => $"\"{kv.Key}\" : \"{kv.Value}\"");

            var documentMetadata = string.Join(",", paramStrings);

            sb.Append($"{{ \"index\" : {{ {documentMetadata} }} }}");
            sb.Append("\n");
        }
Exemple #3
0
        private static void AddOperationMetadata(InnerBulkOperation operation, StringBuilder sb)
        {
            var indexParams = new Dictionary <string, string>(operation.IndexOperationParams)
            {
                { "_index", operation.IndexName },
            };

            if (!string.IsNullOrEmpty(operation.IndexType))
            {
                indexParams["_type"] = operation.IndexType;
            }
            var paramStrings = indexParams.Where(kv => kv.Value != null)
                               .Select(kv => string.Format(@"""{0}"" : ""{1}""", kv.Key, kv.Value));
            var documentMetadata = string.Join(",", paramStrings.ToArray());

            sb.AppendFormat(@"{{ ""index"" : {{ {0} }} }}", documentMetadata);
            sb.Append("\n");
        }
Exemple #4
0
        public void AddEventToBulk(Dictionary <string, object> logEvent, LogEventSmartFormatter indexNameFormat,
                                   LogEventSmartFormatter indexTypeFormat, IndexOperationParamsDictionary indexOperationParams)
        {
            var indexName = indexNameFormat.Format(logEvent).ToLower();
            var indexType = indexTypeFormat.Format(logEvent);
            var indexOperationParamValues = indexOperationParams.ToDictionary(logEvent);

            var operation = new InnerBulkOperation
            {
                Document             = logEvent,
                IndexName            = indexName,
                IndexType            = indexType,
                IndexOperationParams = indexOperationParamValues
            };

            lock (_lock)
            {
                _currentBulk.Add(operation);
            }
        }
        /// <summary>
        /// Prepare the event and add it to the BulkDescriptor.
        /// </summary>
        /// <param name="logEvent"></param>
        private void PrepareAndAddToBulk(Dictionary <string, object> logEvent)
        {
            ElasticFilters.PrepareEvent(logEvent);
            var indexName = _indexName.Format(logEvent).ToLower();
            var indexType = _indexType.Format(logEvent);
            var indexOperationParamValues = IndexOperationParams.ToDictionary(logEvent);

            var operation = new InnerBulkOperation
            {
                Document             = logEvent,
                IndexName            = indexName,
                IndexType            = indexType,
                IndexOperationParams = indexOperationParamValues
            };

            lock (_bulk)
            {
                _bulk.Add(operation);
            }
        }