ELK stack: logstash: expanze číselných rozsahů

Jose D

  • *****
  • 671
    • Zobrazit profil
ELK stack: logstash: expanze číselných rozsahů
« kdy: 26. 11. 2016, 13:03:36 »
Ahoj, nema nekdo napad jak v logstashi expandovat ciselne rozsahy, napr. "1-5,7" na "1 2 3 4 5 7" ?

Uz se nad tim zamyslim od vcerejska a zatim me napada ubastlit neco v ruby a prohnat to filterem "ruby", a nebo to pres exec poslat ven, zpracovat vlastni binarkou/skriptem, poslat do souboru, a znovu pres filebeat poslat na vstup logstashe.

edit: Jeste bych poznamenal ze v praxi ty rozsahy budou v radech stovek az tisicu, muzou byt dost fragmentovane, a taky tech zprav bude celkem dost, takze hledam reseni s rozumnou cpu a mem narocnosti..
« Poslední změna: 28. 11. 2016, 08:04:18 od Petr Krčmář »


Youda

Re:ELK stack: logstash: expanze ciselnych rozsahu
« Odpověď #1 kdy: 27. 11. 2016, 11:10:50 »
Ahoj, nema nekdo napad jak v logstashi expandovat ciselne rozsahy, napr. "1-5,7" na "1 2 3 4 5 7" ?

Uz se nad tim zamyslim od vcerejska a zatim me napada ubastlit neco v ruby a prohnat to filterem "ruby", a nebo to pres exec poslat ven, zpracovat vlastni binarkou/skriptem, poslat do souboru, a znovu pres filebeat poslat na vstup logstashe.

edit: Jeste bych poznamenal ze v praxi ty rozsahy budou v radech stovek az tisicu, muzou byt dost fragmentovane, a taky tech zprav bude celkem dost, takze hledam reseni s rozumnou cpu a mem narocnosti..

No odpovedel sis vicemene sam.
Jako prvni pokus bych zkusil ruby filter. Logstash bezi vicemene cely v ruby, takze to bude pomale, ale tak jako je pomaly cely logstash.

Alternativne si napis vlastni filter plugin do logstashe, neni to nic sloziteho, staci vyjit z nejakeho existujiciho na githubu

Jose D

  • *****
  • 671
    • Zobrazit profil
Re:ELK stack: logstash: expanze ciselnych rozsahu
« Odpověď #2 kdy: 11. 12. 2016, 13:23:25 »
...Jako prvni pokus bych zkusil ruby filter...

yep, nakonec vyřešeno relativně nečistě, ale z pohledu výkonu celé pipeline to není bottleneck. Přes exec z ruby to sypu do toolu nodeset z projektu clustershell. (https://github.com/cea-hpc/clustershell).
Tak kdyby někoho v budoucnu google hodil sem, tak:

Kód: [Vybrat]
ruby {
    code => "slurm_nodelist=event.get('slurm_nodelist');expanded_nodelist=`nodeset -e #{slurm_nodelist}`; event.set('nodelist', expanded_nodelist)"
  }