Я новичок в ES и Serilog, но мои поиски еще не дали ответа. Я пытаюсь выяснить, как использовать Serilog для отправки данных в Elasticsearch таким образом, что если данные содержат поля (например, если это объект, который имеет общедоступные свойства), данные отображаются в ES с такими свойствами, как поля. До сих пор я дошел до использования RenderedCompactJsonFormatter и анонимных типов, чтобы иметь возможность достичь этого в основном (см. Ниже), но он все еще производит именованные поля, где данными в полях являются все, кроме «новой» части от типа декларации анонимной:Как отправить данные Serilog в Elasticsearch с полями
var log = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200/test_srpostimes"))
{
InlineFields = true,
IndexDecider = (@event,offset) => "test_elapsedtimes",
CustomFormatter = new RenderedCompactJsonFormatter()
})
.WriteTo.Console()
.CreateLogger();
var elapsedTime = new {Time = 64};
var timeStamp = new {Timestamp = DateTime.Now};
var transID = new {TransID = "551674"};
log.Information("{timeStamp} {transID} {elapsedTime}", timeStamp, transID, elapsedTime);
Это производит:
@t:
2016-07-11T18:45:35.0349343Z
@m:
"{ Timestamp = 7/11/2016 2:45:35 PM }" "{ TransID = 551674 }" "{ Time = 64 }"
@i:
b3ee2c05
timeStamp:
{ Timestamp = 7/11/2016 2:45:35 PM }
transID:
{ TransID = 551674 }
elapsedTime:
{ Time = 64 }
_id:
AVXbR11WjgSgCs5HSlYY
_type:
logevent
_index:
test_srpostimes
_score:
1
есть ли лучший способ сделать это так, что наши данные могут быть найдены/визуализировали с использованием полей в ES (и Kibana)?
Привет Ant, вы видели: https://github.com/serilog/serilog-sinks-elasticsearch? Может помочь с этой задачей. –
Да, я использую ваши замечательные инструменты :), но я думаю, что я либо пропустил, где объяснил, как это сделать, либо, может быть, (скорее?) Я слишком зеленый с ES и Serilog, и в противном случае знал бы, как это сделать это с большим опытом. Я кратко обновляю вопрос, чтобы показать, как я построил регистратор и раковину, чтобы лучше разъяснить ситуацию. – Ant