Можно ли удалить включающий элемент, используя отображение json в siddhi? - PullRequest
1 голос
/ 04 июля 2019

Я получил рабочий код siddhi и хочу узнать, возможно ли выводить события в формате json без включающего элемента.

Я пробовал положить нулевой вложенный элемент и $. , но ни один из них, кажется, не работает.

@sink(type = 'file', file.uri = "/var/log/cert/output/{{name}}", 
    @map(type = 'json', fail.on.missing.attibute = "false",enclosing.element="$."))
define stream AlertStream (timestamp long, name string, ipsrc string, ipdst string, evento string, tipoAmenaza string, eventCategory string, severity string, network string, threatId string, eventTech string, eventArea string, urlOriginal string, eventID string, tag string);

я получил следующий результат

{"event":{"timestamp":1562232334157,"name":"client_name","ipsrc":"192.168.1.1","ipdst":"192.168.1.2","evento":"threat","tipoAmenaza":"file","eventCategory":"alert","severity":"medium","network":"192.168.0.0-192.168.255.255","threatId":"spyware","eventTech":"firewall","eventArea":"fwaas","urlOriginal":"undefined","eventID":"901e1155-5407-48ce-bddb-c7469fcf5c48","tag":"[Spyware-fwaas]"}}

и ожидаемый результат равен

{"timestamp":1562232334157,"name":"client_name","ipsrc":"192.168.1.1","ipdst":"192.168.1.2","evento":"threat","tipoAmenaza":"file","eventCategory":"alert","severity":"medium","network":"192.168.0.0-192.168.255.255","threatId":"spyware","eventTech":"firewall","eventArea":"fwaas","urlOriginal":"undefined","eventID":"901e1155-5407-48ce-bddb-c7469fcf5c48","tag":"[Spyware-fwaas]"}

1 Ответ

0 голосов
/ 05 июля 2019

Вы должны использовать пользовательское отображение, облегченное аннотацией @payload. Для получения дополнительной информации см. https://siddhi -io.github.io / siddhi-map-json / api / 5.0.2 / # json-sink-mapper

@sink(type='inMemory', topic='{{symbol}}', 
     @map(type='json', 
         @payload( """{"StockData":{"Symbol":"{{symbol}}","Price":{{price}}}""")))
define stream BarStream (symbol string, price float, volume long);
...