Händelseövervakning

Inom datavetenskap är händelseövervakning processen att samla in, analysera och signalera händelseförekomster till abonnenter såsom operativsystemprocesser , aktiva databasregler såväl som mänskliga operatörer. Dessa händelser kan härröra från godtyckliga källor i både mjukvara eller hårdvara , såsom operativsystem, databashanteringssystem , applikationsprogram och processorer . Händelseövervakning kan använda en tidsseriedatabas .

Grundläggande koncept

Händelseövervakning använder sig av en logisk buss för att transportera händelseförekomster från källor till abonnenter , där händelsekällor signalerar händelseförekomster till alla händelseprenumeranter och händelseabonnenter tar emot händelseförekomster. En händelsebuss kan distribueras över en uppsättning fysiska noder såsom fristående datorsystem. Typiska exempel på händelsebussar finns i grafiska system som X Window System , Microsoft Windows samt utvecklingsverktyg som SDT.

Händelseinsamling är processen att samla in händelseförekomster i en filtrerad händelselogg för analys. En filtrerad händelselogg är loggade händelseförekomster som kan vara till meningsfull användning i framtiden; detta innebär att händelseförekomster kan tas bort från den filtrerade händelseloggen om de är oanvändbara i framtiden. Händelselogganalys är processen för att analysera den filtrerade händelseloggen för att samla händelseförekomster eller för att bestämma om en händelseförekomst ska signaleras eller inte. Händelsesignalering är processen att signalera händelseförekomster över händelsebussen.

Något som övervakas betecknas det övervakade objektet ; till exempel kan en applikation, ett operativsystem, en databas, hårdvara etc. vara övervakade objekt. Ett övervakat objekt måste vara korrekt konditionerat med händelsesensorer för att möjliggöra händelseövervakning, det vill säga ett objekt måste vara instrumenterat med händelsesensorer för att vara ett övervakat objekt. Händelsesensorer är sensorer som signalerar händelser närhelst en händelse inträffar. Närhelst något övervakas måste sondeffekten hanteras.

Övervakade objekt och sondeffekten

Som diskuterats av Gait, när ett objekt övervakas ändras dess beteende. I synnerhet i alla samtidiga system där processer kan köras parallellt , utgör detta ett särskilt problem. Anledningen är att närhelst sensorer introduceras i systemet kan processer köras i en annan ordning. Detta kan orsaka problem om vi till exempel försöker lokalisera ett fel och genom att övervaka systemet ändrar vi dess beteende på ett sådant sätt att felet inte kan leda till ett fel; i huvudsak kan felet maskeras genom att övervaka systemet. Sondeffekten dess oinstrumenterade motsvarighet.

Enligt Schütz kan vi undvika, kompensera för eller ignorera sondeffekten. I kritiska realtidssystem, där aktualitet (dvs. förmågan hos ett system att möta tidsbegränsningar såsom deadlines) är betydande, är undvikande det enda alternativet. Om vi ​​till exempel instrumenterar ett system för testning och sedan tar bort instrumenteringen före leverans, ogiltigförklarar detta resultaten av de flesta tester baserat på hela systemet. I mindre kritiska realtidssystem (t.ex. mediabaserade system) kan kompensation vara acceptabel för till exempel prestandatestning . I icke-samtidiga system är okunnighet acceptabel, eftersom beteendet med avseende på exekveringsordningen lämnas oförändrat.

Händelselogganalys

Händelselogganalys är känd som händelsesammansättning i aktiva databaser , krönikeigenkänning inom artificiell intelligens och som realtidslogikutvärdering i realtidssystem. I huvudsak används händelselogganalys för mönstermatchning , filtrering av händelseförekomster och aggregering av händelseförekomster till sammansatta händelseförekomster. Vanligtvis används dynamiska programmeringsstrategier från algoritmer för att spara resultat från tidigare analyser för framtida användning, eftersom till exempel samma mönster kan matchas med samma händelseförekomster i flera på varandra följande analysbearbetningar. I motsats till generell regelbearbetning (används för att hävda nya fakta från andra fakta, jfr inferensmotor ) som vanligtvis är baserad på bakåtspårningstekniker , är algoritmer för händelselogganalys vanligtvis giriga ; till exempel, när en sammansättning sägs ha inträffat, återkallas detta faktum aldrig, vilket kan göras i en bakåtspårningsbaserad algoritm.

Flera mekanismer har föreslagits för händelselogganalys: finita tillståndsautomater , Petri-nät , procedurmässiga (antingen baserade på ett imperativt programmeringsspråk eller ett objektorienterat programmeringsspråk), en modifiering av Boyer-Moore-strängsökningsalgoritmen och enkla temporala nätverk .

Se även

  1. ^ J. Gait (1985). En debugger för samtidiga program. Software-Practice And Experience , 15(6)
  2. ^ W. Schütz (1994). Grundläggande frågor vid testning av distribuerade realtidssystem. Real-Time Systems , 7(2):129–157