Folyamatábra felépítése log alapján

Sziasztok!

 

Tudtok ajánlani olyan eszközt ami megeszik egy logfájlt és ez alapján azonosítja egy folyamat lépéseit illetve a köztük lévő összefüggéseket?

Részmegoldások is érdekelnek. pl. ha valami csak a lépéseket tudja azonosítani.

 

A cél az lenne, hogy egy rendszer logját megetetem vele és ebből felrajzolja, hogy milyen folyamat/folyamatokat hajt végre a rendszer. Lehetőség szerint minél automatikusabb eszköz kellene, tehát ne kelljen neki pl. megmondani, hogy a "Dokumentumfeldolgozás kezdete" szöveget tartalmazó sor az egy lépéshez tartozik, ezt találja ki magától.

 

Köszi!

Hozzászólások

Szerkesztve: 2023. 01. 18., sze – 17:23

Hát ha ilyen létezik tetszőleges logra, akkor megemelem a kalapom. (sub)

+1

Kell valami korrelációs ID, különben még az sem triviális melyik soroknak van köze egymáshoz.

Observability témakörben néznék körbe és az OpenTelemetry-nek megfelelő módon készíteném elő a logokat, akkor van esély. Random logok esetén nincs az az AI ami ezt kibogozza

Köszi, ránézek! Én azért nem gondolom megoldhatatlannak a dolgot két okból.

1. A lépéseket jelentő logsorok ismétlődnek a logban, ezt az ismétlődést fel lehet ismerni.

2. Korrelációs id-t is viszonylag jól be lehet lőni, mivel az meg állandó lesz a változó logsorokban. Ez alapján pl. a folyamat hosszát be lehet lőni ami alapján szintén lehet szűkíteni azt a tartományt amin meg kell oldjuk a feladatot.

Egy szakmérnöki képzés során a folyamatbányászat tárgy keretében volt szerencsém találkozni 2 megoldással is, az egyik a Disco, a másik a PM4py . A PM4py teljesen szabad szoftver, a fent említett algoritmusok mellett egyebeket is tud használni, széles a megjelenítési eszköztára, a fejlesztése mögött a Fraunhofer áll, szerintem egy próbát mindenképp megér. Anno a beadandóhoz a PM4py-t használtam, egy egyszerű gyártási folyamatot vizsgáltam vele, és az lett a végső konklúzióm, hogy szép és jó, de a párhuzamosságok megfelelő felderítéséhez több adatra lenne szükség a gyártási naplóban. Az egyes folyamatlépések kezdő időpontja mellett kellene a befejező időpont is, és azokat a PM4py-nak együtt kellene tudnia kezelni, amire nem találtam meg a megoldást, de lehet, hogy nem voltam kellően körültekintő. A Disco elvileg évek óta tudja ezt: https://fluxicon.com/blog/2017/09/dealing-with-parallelism-in-your-process-maps/

Szabi

Observability: metrics, logs, traces. Mint látod logokból trace-t csinálni fából vaskarika. Használjatok tracing library-t az applikációban.

Legutóbb nem LOG-ra, de egy spéci adathalmazra kellett nekem ábrát rajzolnom.
Ajánlom figyelmedbe a python3-graphviz csomagot.
A LOG elemzését Pythonból neked kell implementálnod. Viszont az így "megálmodott" gráfot ezzel a tool-lal szépen megrajzolhatod.

#!/usr/bin/python3

import graphviz

gvfilename = "gv-teszt.gv"

dot = graphviz.Digraph(comment='Első teszt')
dot.node('A', 'Egyik')
dot.node('B', 'Másik')
dot.node('C', 'Harmadik')
dot.node('D', 'Negyedik')

dot.edges(['AB', 'BC', 'CD'])
dot.edge('D', 'B', constraint='false') # nyíl vissza, de ne tolja el az objektumot

# Írjuk ki, rendreljük le
open(gvfilename, "w").write(dot.source)
dot.render(gvfilename).replace('\\', '/') # PDF-et gyárt

Egy Celonis nevű eszközt ajánlott most egyik kollégám. Van vele tapasztalat?