Grafana-LogQL: как извлечь метки из объектов ключ-значение в массиве json

#asp.net-core #logging #grafana #grafana-loki

Вопрос:

Я работаю с ASP.NET 5.0 регистратор json и области ведения журнала. Я хочу заполнить ключевые значения области в виде меток. Созданный json имеет следующий формат (выдержка):

 {
"LogLevel": "Information",
"Scopes": [
    {
        "Message": "System.Collections.Generic.Dictionaryu00602[System.String,System.Object]",
        "MsgId": "c08e834e8edb4287ab8abf0b5510bb53"
    },
    {
        "Message": "System.Collections.Generic.Dictionaryu00602[System.String,System.Object]",
        "EventId": "03ec8be0-9975-482e-95b9-2ba6185a4ed4",
        "EventName": "someEvent",
        "EntityKeyValue": "someNonTechId"
    }
]
}
 

Единственный способ, который я нашел, — это сделать

 | json MsgId="Scopes[0].MsgId", EventName="Scopes[1].EventName" etc. ...
 

Проблема в том, что:

  • не все области присутствуют всегда
  • так что и индексы могут измениться…

Есть ли какое-нибудь решение для этого?

Кстати, мы работаем в управляемом кластере, поэтому пользовательские плагины не будут работать…