Извлекать транзакции из APM с помощью NEST

#elasticsearch #asp.net-web-api #kibana #nest #apm

Вопрос:

У меня есть asp.net основное приложение веб-приложения, которое будет записывать журналы с помощью serilog в elasticsearch, а также может считывать журналы из elasticsearch с помощью NEST. Я также настроил его так, чтобы я мог использовать APM для своего приложения. Если бы я хотел получить транзакции, которые находятся в APM, с помощью NEST, или транзакции на определенную дату, возможно ли это? Любые советы/учебники/документация по этому вопросу были бы великолепны!

введите описание изображения здесь

Ответ №1:

Вы захотите настроить таргетинг apm-*-transaction на псевдонимы

В инструментах разработки Kibana

 GET apm-*-transaction/_search
{
  "query": {
    "range": {
      "@timestamp": {
        "gte": "2021-06-04T00:00:00Z",
        "lte": "2021-06-05T00:00:00Z"
      }
    }
  }
}
 

В NEST (измените dynamic тип документа на свой)

 var client = new ElasticClient();
    
var searchResponse = client.Search<dynamic>(s => s
    .Index("apm-*-transaction")
    .Query(q => q
        .DateRange(dr => dr
            .Field("@timestamp")
            .GreaterThanOrEquals("2021-06-04T00:00:00Z")
            .LessThanOrEquals("2021-06-05T00:00:00Z")
        )
    )
);
 

Комментарии:

1. Спасибо! Я ценю ваши объяснения и помощь!