public BulkResponse ListOfObjects()
        {
            var postData = Projects.SelectMany(p => new object[] { new { index = new { } }, p });
            var lowLevel = ClientLowLevel.Bulk <BulkResponse>(PostData.MultiJson(postData));

            return(lowLevel);
        }
        private void SendBatch(IEnumerable <AsyncLogEventInfo> events)
        {
            try
            {
                var logEvents = events.Select(e => e.LogEvent);

                var payload = FormPayload(logEvents);

                var result = _client.Bulk <byte[]>(payload);

                if (result.Success)
                {
                    return;
                }

                InternalLogger.Error("Failed to send log messages to elasticsearch: status={0}, message=\"{1}\"",
                                     result.HttpStatusCode, result.OriginalException?.Message ?? "No error message. Enable Trace logging for more information.");
                InternalLogger.Trace("Failed to send log messages to elasticsearch: result={0}", result);

                if (result.OriginalException != null)
                {
                    throw result.OriginalException;
                }
            }
            catch (Exception ex)
            {
                InternalLogger.Error("Error while sending log messages to elasticsearch: message=\"{0}\"", ex.Message);

                if (ThrowExceptions)
                {
                    throw;
                }
            }
        }
Esempio n. 3
0
        private void SendBatch(ICollection <AsyncLogEventInfo> logEvents)
        {
            try
            {
                var payload = FormPayload(logEvents);

                var result = _client.Bulk <BytesResponse>(payload);

                if (!result.Success)
                {
                    var errorMessage = result.OriginalException?.Message ?? "No error message. Enable Trace logging for more information.";
                    InternalLogger.Error($"Failed to send log messages to elasticsearch: status={result.HttpStatusCode}, message=\"{errorMessage}\"");
                    InternalLogger.Trace($"Failed to send log messages to elasticsearch: result={result}");

                    if (result.OriginalException != null)
                    {
                        throw result.OriginalException;
                    }
                }

                foreach (var ev in logEvents)
                {
                    ev.Continuation(null);
                }
            }
            catch (Exception ex)
            {
                InternalLogger.Error($"Error while sending log messages to elasticsearch: message=\"{ex.Message}\"");

                foreach (var ev in logEvents)
                {
                    ev.Continuation(ex);
                }
            }
        }
Esempio n. 4
0
        public void Write(IEnumerable <IRow> rows)
        {
            var builder    = new StringBuilder();
            var fullCount  = 0;
            var batchCount = (uint)0;

            foreach (var part in rows.Partition(_context.Entity.InsertSize))
            {
                foreach (var row in part)
                {
                    batchCount++;
                    fullCount++;
                    foreach (var field in _context.OutputFields)
                    {
                        switch (field.Type)
                        {
                        case "guid":
                            row[field] = ((Guid)row[field]).ToString();
                            break;

                        case "datetime":
                            row[field] = ((DateTime)row[field]).ToString("o");
                            break;
                        }
                        if (field.SearchType == "geo_point")
                        {
                            row[field] = new Dictionary <string, string> {
                                { "text", row[field].ToString() },
                                { "location", row[field].ToString() }
                            };
                        }
                    }

                    builder.Append(_prefix);
                    foreach (var key in _context.OutputFields.Where(f => f.PrimaryKey))
                    {
                        builder.Append(row[key]);
                    }
                    builder.AppendLine("\"}}");
                    builder.AppendLine(JsonConvert.SerializeObject(_context.OutputFields.ToDictionary(f => f.Alias.ToLower(), f => row[f])));
                }
                var response = _client.Bulk <DynamicResponse>(builder.ToString(), nv => nv
                                                              .AddQueryString("refresh", @"true")
                                                              );
                _context.Increment(@by: batchCount);
                if (response.Success)
                {
                    _context.Debug(() => $"{batchCount} to output");
                }
                else
                {
                    _context.Error(response.OriginalException.Message);
                }
                builder.Clear();
                batchCount = 0;
            }

            _context.Info($"{fullCount} to output");
        }
Esempio n. 5
0
        private void SendBatch(IEnumerable <AsyncLogEventInfo> events)
        {
            #region Validations

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

            #endregion

            if (events.Count() == 0)
            {
                return;
            }

            try
            {
                var logEvents = events.Select(e => e.LogEvent);
                var payload   = ToPostData(logEvents);

                if (payload == null)
                {
                    return;
                }

                var result = _client.Bulk <byte[]>(payload);

                if (result.Success == true)
                {
                    return;
                }


                /*
                 *
                 */
                InternalLogger.Error("Failed to send Zinc messages to elasticsearch: status={0}, message=\"{1}\"",
                                     result.HttpStatusCode,
                                     result.OriginalException?.Message ?? "No error message. Enable Trace logging for more information.");

                InternalLogger.Trace("Failed to send Zinc messages to elasticsearch: result={0}", result);

                if (result.OriginalException != null)
                {
                    throw result.OriginalException;
                }
            }
            catch (Exception ex)
            {
                InternalLogger.Error("Error while sending Zinc messages to elasticsearch: message=\"{0}\"", ex.Message);

                if (ThrowExceptions == true)
                {
                    throw;
                }
            }
        }
        private void SendBatch(IEnumerable <AsyncLogEventInfo> events)
        {
            try
            {
                var logEvents = events.Select(e => e.LogEvent);

                var payload = FormPayload(logEvents);

                var result = _client.Bulk <byte[]>(payload);
                if (!result.Success)
                {
                    InternalLogger.Error("Failed to send log messages to elasticsearch: status={0}, message=\"{1}\"", result.HttpStatusCode, result.OriginalException.Message);
                }
            }
            catch (Exception ex)
            {
                InternalLogger.Error("Error while sending log messages to elasticsearch: message=\"{0}\"", ex.Message);

                if (ThrowExceptions)
                {
                    throw;
                }
            }
        }