DE102022001118A1 - Verfahren zur Analyse von Ereignisprotokollen - Google Patents

Verfahren zur Analyse von Ereignisprotokollen Download PDF

Info

Publication number
DE102022001118A1
DE102022001118A1 DE102022001118.2A DE102022001118A DE102022001118A1 DE 102022001118 A1 DE102022001118 A1 DE 102022001118A1 DE 102022001118 A DE102022001118 A DE 102022001118A DE 102022001118 A1 DE102022001118 A1 DE 102022001118A1
Authority
DE
Germany
Prior art keywords
variable
bit
log
indices
search criterion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022001118.2A
Other languages
English (en)
Inventor
Thorsten Wilmer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mercedes Benz Group AG
Original Assignee
Mercedes Benz Group AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mercedes Benz Group AG filed Critical Mercedes Benz Group AG
Priority to DE102022001118.2A priority Critical patent/DE102022001118A1/de
Publication of DE102022001118A1 publication Critical patent/DE102022001118A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein computerimplementiertes Verfahren zur Analyse eines Ereignisprotokolls (1) mit mindestens einem durch einen Logindex identifizierbaren Logeintrag (21 bis 2N) jeweils umfassend mindestens einen Variablenwert (x11 bis xNM) einer Variablen (X1 bis XM), wobei jeder Variablenwert (x11 bis xNM) über ein Bitmuster von einer vorbestimmten, der korrespondierenden Variablen (X1 bis XM) zugeordneten Bitbreite darstellbar ist. Beim Einlesen des Ereignisprotokolls (1) wird für jedes Bit einer jeden Variablen (X1 bis XM) jeweils ein nicht-negierter Bitindex und ein negierter Bitindex aufgebaut. Die Logindizes eines jeden Bitindex werden spätestens nach dem Einlesen sortiert. Mindestens ein Suchkriterium wird als von mindestens einer Variablen (X1 bis XM) abhängiger logischer Ausdruck präsentiert. Für jedes Suchkriterium wird ein Suchergebnis als Liste von Logindizes ermittelt, indem das Suchkriterium in eine Normalform von Elementarbedingungen überführt wird, die von jeweils nur einer Variablen (X1 bis XM) abhängen, indem zu jeder der Elementarbedingungen des Suchkriteriums die diese Elementarbedingung erfüllenden Bitindizes dieser Variablen (X1 bis XM) ausgewählt werden und indem die ausgewählten Bitindizes aller Variablen (X1 bis XM) aller Elementarbedingungen mengenarithmetisch gemäß der Normalform des Suchkriteriums verbunden werden.

Description

  • Die Erfindung betrifft ein computerimplementiertes Verfahren zur Analyse von Ereignisprotokollen (im Folgenden auch als Log oder Logdatei bezeichnet) gemäß dem Oberbegriff des Anspruchs 1.
  • Ereignisprotokolle umfassen Logeinträge, die vorzugsweise zeitlich sortiert und/oder mit einem Zeitstempel versehen sind. In einem Logeintrag sind Betriebs- und/oder Zustandsparameter eines technischen Systems, beispielsweise einer Maschine oder eines Fahrzeugs, erfasst. Derartige Parameter werden als Variablenwerte erfasst und in dem Ereignisprotokoll abgelegt, wobei ein Variablenwert einer (beispielsweise über einen Namen und/oder einen Index) identifizierbaren Variablen zugeordnet ist. Jeder Variablenwert kann digital als Bitmuster abgelegt werden, indem der zugeordneten Variablen über einen Variablentyp eine Kodierungsvorschrift zugewiesen wird.
  • Beispielsweise kann ein Betriebsparameter eines Fahrzeugs als Variable „Öltemperatur“ erfasst werden, der der Variablentyp „vorzeichenbehaftete Ganzzahl mit 16 Bit Bitbreite“ (signed short) zugewiesen ist. Ein anderer Betriebsparameter kann als Variable „Öldruck“ erfasst werden, der der Variablentyp „vorzeichenlose Ganzzahl mit 16 Bit Bitbreite“ (unsigned short) zugewiesen ist. Ein weiterer Betriebsparameter kann als Variable „Lenkwinkel“ erfasst werden, der der Variablentyp „Gleitkommazahl mit 32 Bit Bitbreite“ (float) zugewiesen ist. Ein Zustandsparameter kann als Variable „Fehlercode Motorsteuerung“ erfasst werden, der der Variablentyp „Bitfeld mit 14 Bit Bitbreite“ zugewiesen ist.
  • In einem Ereignisprotokoll werden verschiedene Betriebs- und Zustandsparameter mit verschiedenen zeitlichen Abständen oder ereignisbezogen erfasst. Mit anderen Worten: in einem Logeintrag kann allen Variablen oder auch nur einer einzigen Variablen ein konkreter Variablenwert zugeordnet sein.
  • Bei der Auswertung derartiger Ereignisprotokolle werden typischerweise Logeinträge gesucht, die ein gewisses Suchkriterium hinsichtlich einer oder mehrerer Variablen erfüllen. Beispielhaft werden alle Logeinträge gesucht, bei denen die Öltemperatur höher als 110 Grad Celsius ist. Alternativ können, als weiteres Beispiel, alle Logeinträge gesucht werden, bei denen die Öltemperatur höher als 120 Grad Celsius und der Öldruck geringer als 3 Bar ist. Da derartige Ereignisprotokolle sehr viele Logeinträge und/oder sehr viele Parameter (das heißt: Variablen) umfassen können, kann die Ausführung einer solchen Suche mit hohem Aufwand an Rechenzeit und/oder Rechenressourcen verbunden sein.
  • Das Dokument WO 2016/161381 A1 beschreibt ein System, ein Verfahren und ein Computerprogrammprodukt zur Implementierung eines Verfahrens zur Auswertung von Ereignisprotokollen sowie ein System, das zur effizienten Konfiguration, Erfassung und Analyse von Logeinträgen eingerichtet ist. Ferner wird dort ein verbessertes Verfahren zur automatischen Generierung eines Parsers durch Auswertung der Logeinträge eines Ereignisprotokolls beschrieben. Ferner wird ein Verfahren zur Extraktion von Schlüssel - Wert - Paaren aus dem Inhalt des Ereignisprotokolls beschrieben.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein verbessertes computerimplementiertes Verfahren zur Analyse von Ereignisprotokollen bereitzustellen.
  • Die Aufgabe wird erfindungsgemäß gelöst durch ein computerimplementiertes Verfahren mit den Merkmalen des Anspruchs 1.
  • Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
  • Ein Ereignisprotokoll umfasst mindestens einen Logeintrag. Jeder Logeintrag ist durch einen Logindex identifizierbar, der beispielsweise als Zeitstempel ausgebildet oder einem Zeitstempel zugeordnet sein kann. Beispielsweise kann ein Logindex durch die Durchnummerierung zeitlich aufeinanderfolgender Logeinträge gebildet werden. Die Anzahl der im Ereignisprotokoll umfassten Logeinträge wird mit N bezeichnet.
  • Ein Logeintrag umfasst jeweils mindestens einen Variablenwert einer Variablen, die über einen Namen und/oder einen Variablenindex identifizierbar und von anderen Variablen unterscheidbar ist. Jeder Variablen ist ein Variablentyp und mit dem Variablentyp auch ein Bitmuster zugeordnet, in dem Variablenwerte dieser Variablen in einer vorbestimmten Bitbreite dargestellt werden können.
  • Die Anzahl der im Ereignisprotokoll insgesamt erfassten Variablen wird mit M bezeichnet. Ein einzelner Logeintrag umfasst mindestens einen und höchsten M Variablenwerte. Somit umfasst das Ereignisprotokoll in seinen N Logeinträgen insgesamt mindestens einen und höchstens M x N Variablenwerte.
  • Bei einem computerimplementierten Verfahren zur Analyse eines derartigen Ereignisprotokolls wird das Ereignisprotokoll eingelesen. Beim Einlesen werden für jedes Bit einer jeden Variablen jeweils ein nicht-negierter Bitindex und ein negierter Bitindex aufgebaut.
  • Ein nicht-negierter Bitindex ist die Menge aller Logindizes derjenigen Logeinträge, in denen ein Variablenwert der jeweiligen (dem nicht-negierten Bitindex zugeordneten) Variablen enthalten ist und in denen in der Darstellung dieses Variablenwertes als Bitmuster gemäß dem Variablentyp die dem nicht-negierten Bitindex zugeordnete Bitstelle mit dem Wert 1 belegt ist.
  • Ein negierter Bitindex ist die Menge aller Logindizes derjenigen Logeinträge, in denen ein Variablenwert der jeweiligen (dem negierten Bitindex zugeordneten) Variablen enthalten ist und in denen in der Darstellung dieses Variablenwertes als Bitmuster gemäß dem Variablentyp die dem negierten Bitindex zugeordnete Bitstelle mit dem Wert 0 belegt ist.
  • Mit anderen Worten: jeder Bitindex umfasst, beispielsweise in der Art einer Liste, eine Menge von Logindizes entsprechend der Zuordnung der Variablen, der Zuordnung der Bitstelle und der Ausprägung als negierter oder nicht-negierter Bitindex. Diese Menge kann leer sein und bis zu N Logindizes umfassen.
  • Die Logindizes eines jeden Bitindex werden sortiert. Die Sortierung kann in aufsteigender oder in abfallender Folge der Logindizes erfolgen. Die Sortierung kann während des Einlesens erfolgen (das heißt: während die Bitindizes aufgebaut werden). Alternativ kann die Sortierung erfolgen, wenn das Einlesen abgeschlossen wurde (das heißt: nachdem die Bitindizes vollständig, aber unsortiert aufgebaut wurden).
  • Nach dem Einlesen kann ein Suchkriterium oder auch eine Folge von Suchkriterien präsentiert werden, gemäß dem jeweils alle Logeinträge ermittelt werden sollen, die das jeweilige Suchkriterium erfüllen. Ein Suchkriterium wird dabei als logischer Ausdruck präsentiert, der von mindestens einer Variablen abhängt.
  • Für jedes der Suchkriterien wird ein Suchergebnis als eine Liste von Logindizes ermittelt, indem das Suchkriterium in eine Normalform von Elementarbedingungen überführt wird. Als Elementarbedingung wird hier und im Folgenden ein logischer Ausdruck verstanden, der von nur einer einzigen Variablen abhängt.
  • Das Suchkriterium wird in eine Normalform derartiger Elementarbedingungen überführt. Beispielsweise wird das Suchkriterium in eine Disjunktive Normalform überführt, die als Disjunktion von Konjunktionen von Elementarbedingungen formuliert ist. Alternativ kann das Suchkriterium auch in eine Konjunktive Normalform überführt werden, die als Konjunktion von Disjunktionen von Elementarbedingungen formuliert ist.
  • Zu jeder der Elementarbedingungen eines in Normalform überführten Suchkriteriums werden diejenigen Bitindizes ausgewählt, die diese Elementarbedingung erfüllen. Mit anderen Worten: es werden diejenigen Bitindizes der Variablen dieser Elementarbedingung ausgewählt, deren zugeordnete Bitbelegung kompatibel zu der Elementarbedingung ist. Das heißt: ein nicht-negierter Bitindex wird dann ausgewählt, wenn die zugeordnete Bitstelle für mindestens einen Variablenwert, der der Elementarbedingung genügt, mit 1 belegt ist und ein negierter Bitindex wird dann ausgewählt, wenn die zugeordnete Bitstelle für mindestens einen Variablenwert, der der Elementarbedingung genügt, mit 0 belegt ist.
  • Die ausgewählten Bitindizes aller Variablen aller in dem Suchkriterium in Normalform enthaltenen Elementarbedingungen werden gemäß der Normalform mengenarithmetisch verbunden. Beispielsweise werden für ein in Disjunktiver Normalform vorliegendes Suchkriterium alle Bitindizes zur Vereinigungsmenge verbunden. Für ein in Konjunktiver Normalform vorliegendes Suchkriterium werden alle Bitindizes zur Schnittmenge verbunden.
  • Während das Durchsuchen aller bis zu M x N Variablenwerte des Ereignisprotokolls bei der Suche nach Logeinträgen mit Verfahren nach dem Stand der Technik mit einem Aufwand skaliert, der proportional zum Produkt M × N log N wächst, ermöglicht das erfindungsgemäße Verfahren einen Suchaufwand, der nur proportional zur Anzahl der Variablen (das heißt: zu M) oder proportional zur Anzahl der Logeinträge (das heißt: zu N) wächst. Aufgrund dieses nur linearen Wachstums wird eine effiziente Suche insbesondere bei sehr langen (das heißt: viele Logeinträge umfassenden) und/oder sehr detaillierten (das heißt: sehr viele Parameter beziehungsweise Variablen umfassenden) Ereignisprotokollen ermöglicht.
  • Zwar steht dem ein erhöhter Aufwand beim Einlesen des Ereignisprotokolls gegenüber, der durch den Aufbau der Bitindizes verursacht wird. Dieser Aufwand muss jedoch nur einmalig investiert werden. Insbesondere kann der Aufbau der Bitindizes vor der Präsentierung einer Suchanfrage erfolgen. Dadurch ist eine besonders schnelle Reaktion (das heißt: eine besonders schnelle Bereitstellung eines Suchergebnisses) möglich. Insbesondere bei mehreren, auf das gleiche Ereignisprotokoll bezogenen Suchanfragen kann zudem der Gesamtaufwand für die Suchen verringert werden.
  • Ausführungsbeispiele der Erfindung werden im Folgenden anhand einer Zeichnung näher erläutert.
  • Dabei zeigt:
    • 1 schematisch ein Ereignisprotokoll.
  • 1 zeigt schematisch ein Ereignisprotokoll 1, im Folgenden auch als Logdatei oder Log bezeichnet, zur Erfassung von Parametern eines nicht näher dargestellten Fahrzeugs. In dem Ereignisprotokoll 1 sind zeitlich sortiert Protokolldaten x11 xNM erfasst, die im Folgenden auch als Variablenwerte bezeichnet werden.
  • Jeder Variablenwert x11 bis xNM kodiert den numerischen oder logischen Wert einer Variablen X1 bis XM, der zu einem über einen zugeordneten Zeitstempel t1 bis tN identifizierten Zeitpunkt erfasst wurde und der einen der jeweiligen Variablen X1 bis XM fest zugeordneten Parameter, beispielsweise einen Betriebsparameter (beispielhaft eine Temperatur, eine Drehzahl oder eine Geschwindigkeit) oder einen Fehlerzustand des Fahrzeugs oder einer Komponente des Fahrzeugs quantifiziert. Jede dieser Variablen X1 bis XM ist, beispielsweise über einen Namen, identifizierbar und von anderen Variablen X1 bis XM unterscheidbar.
  • Ein Logeintrag 21 bis 2N umfasst einen Zeitstempel t1 bis tN sowie mindestens einen Variablenwert x11 bis xNM. Der Zeitstempel t1 bis tN kodiert in einem nicht näher bezeichneten Format den Zeitpunkt, zu dem der mindestens eine Variablenwert x11 bis xNM des Logeintrags 21 bis 2N erfasst wurde. In einem Logeintrag 21 bis 2N können ein einziger Variablenwert x11 bis xNM, mehrere Variablenwerte x11 bis xNM oder sogar Variablenwerte x11 bis xNM für jede in der Logdatei 1 protokollierte Variable X1 bis XM erfasst sein.
  • Die Logeinträge 21 bis 2N sind über den Zeitstempel t1 bis tN und/oder über einen anderen, dem Zeitstempel t1 bis tN eindeutig zugeordneten Logindex identifizierbar. Im einfachsten Fall kann ein Logindex n = 1, 2, ... N durch Durchnummerierung der Zeitstempel t1 bis tN in ihrer zeitlichen Reihenfolge gebildet sein.
  • Ein Ereignisprotokoll oder Log 1 mit mindestens einem derartigen Logeintrag 21 bis 2N kann auf einem Einzelrechner (PC) oder auf einem Server oder einer Mehrzahl von Servern (beispielsweise in einer Daten - und/oder Software as a Service (SaaS) - Cloud) abgelegt sein.
  • Beispielhaft können die Variablenwerte x11 bis xNM als vorzeichenbehaftete oder vorzeichenlose Ganzzahl mit einer Bitbreite von 8, 16, 32, 64 oder mehr Bits kodiert sein. Die Kodierung kann auch als Gleitkommazahl nach dem IEEE 754 Standard „Standard for Binary Floating-Point Arithmetic“ in einfacher oder in höherer Genauigkeit erfolgen. Auch eine Kodierung als Einzelzeichen (character) oder als Zeichenkette (string) ist möglich. Ein Variablenwert x11 bis xNM ist somit als Bitmuster abgelegt, dessen Länge (Bitbreite) und Kodierungsvorschrift der zugeordneten Variablen X1 bis XM zugewiesen ist.
  • Zur möglichst einfachen Illustration eines Ausführungsbeispiels sind die Variablen X1 bis XM als vorzeichenlose, 4 Bit breite Ganzzahl dargestellt, die jeweils als Folge von Bitwerten b 3 | b 2 | b 1 | b 0
    Figure DE102022001118A1_0001
    kodiert sind, wobei b3 das höchstwertige (most significand) Bit und b0 das niedrigstwertige (least significand) Bit darstellt. Beispielhaft entspricht somit ein Bitmuster, das heißt: eine binäre Darstellung 1 | 0 | 1 | 1 = { 1 0 1 1 } 2
    Figure DE102022001118A1_0002
    einem dezimalem Zahlenwert von 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = {11}10.
  • Selbstverständlich können den verschiedenen Variablen X1 bis XM aber auch verschiedene Kodierungsformate mit voneinander verschiedenen Bitbreiten zugeordnet sein.
  • Gemäß der schematischen Darstellung nach 1 sind in dem Logeintrag 21, der dem ersten Zeitstempel t1 zugeordnet ist, Variablenwerte x11 und x13 für die erste Variable X1 beziehungsweise für die dritte Variable X3 erfasst. Für die übrigen Variablen X2, XM sind keine Werte erfasst.
  • Jeder Logeintrag 21 bis 2N kann somit bis zu M Variablenwerte x11 bis xNM, das Ereignisprotokoll 1 insgesamt somit bis zu N x M Variablenwerte x11 bis xNM umfassen. In 1 sind die Variablenwerte x11 bis xNM der besseren Übersichtlichkeit halber matrixartig in einem zweidimensionalen Feld angeordnet, bei dem die vertikale Dimension die zeitliche Reihenfolge und die horizontale Dimension die Zuordnung der Variablen X1 bis XM angibt. Jedoch kann die Repräsentation der Variablenwerte x11 bis xNM auch in technisch anderer Weise, beispielsweise als verkettete Liste, erfolgen. So kann bei einer verketteten Liste einem Listeneintrag ein Zeitstempel t1 bis tN, ein Name zur Beschreibung der Variablen X1 bis XM sowie der dem Zeitstempel t1 bis tN und der Variablen X1 bis XM jeweils zugeordnete Variablenwert x11 bis xNM zugewiesen sein.
  • Bei der Auswertung eines Ereignisprotokolls 1 wird eine typische Suchanfrage als Kriterium bezüglich einer oder mehrerer Variablen X1 bis XM formuliert. Beispielsweise kann eine Suchanfrage so formuliert sein, dass die Indizes n aller Logeinträge 21 bis 2N gesucht sind, für die die Bedingung (das Suchkriterium)
  • „Der Wert der Variablen X1 liegt zwischen 0 und 100“ logisch wahr wird: ( X 1 > 0 ) ( X 1 < 100 )
    Figure DE102022001118A1_0003
  • Eine andere Suchanfrage kann so formuliert sein, dass die Indizes n aller Logeinträge 21 bis 2N gesucht sind, für die die Bedingung (das Suchkriterium)
  • „Der Wert der Variablen X2 ist genau 42“ logisch wahr wird: ( X 2 = = 42 )
    Figure DE102022001118A1_0004
  • Derartige, auf einzelne Variablen X1 bis XM bezogenen Suchanfragen können auch über logische Operationen in neue Suchanfragen kombiniert werden. Beispielsweise kann eine Suchanfrage so formuliert sein, dass die Indizes n aller Logeinträge 21 bis 2N gesucht sind, für die die Bedingung (das Suchkriterium)
  • „Der Wert der Variablen X1 liegt zwischen 0 und 100
    ODER
    der Wert der Variablen X2 ist genau 42“
    logisch wahr wird: ( ( X 1 > 0 ) ( X 1 < 100 ) ) ( X 2 = = 42 )
    Figure DE102022001118A1_0005
  • Jedes denkbare Suchkriterium kann als logischer Ausdruck formuliert werden, der von höchstens M Variablen X1 bis XM abhängt. Bei der Anwendung des Suchkriteriums werden für jeden Logeintrag 21 bis 2N an Stelle der Variablen X1 bis XM die in diesem Logeintrag 21 bis 2N der Variablen X1 bis XM jeweils zugeordneten Variablenwerte x11 bis xNM eingesetzt.
  • Wie jeder logische Ausdruck kann auch jedes denkbare Suchkriterium als Disjunktive Normalform (Disjunktion von Konjunktionstermen) formuliert werden, wobei in den Konjunktionstermen eine oder mehrere Elementarbedingungen logisch UND - verknüpft sind. Unter einer Elementarbedingung soll hier und im Folgenden eine Bedingung in Bezug auf nur eine einzige Variable X1 bis XM verstanden werden. Beispielhaft sind die Bedingungen (X1 > 0), (X1 > 0)Λ(X1 < 100) sowie (X2 == 42) Elementarbedingungen, nicht dagegen die Bedingung ((X1 > 0)Λ(X1 < 100)) V (X2 == 42) oder die Bedingung ((X1 > 0)Λ(X3 < 100)).
  • Alternativ zur Disjunktiven Normalform kann jedes Suchkriterium auch als Konjunktive Normalform (Konjunktion von Disjunktionstermen) formuliert werden, wobei in den Disjunktionstermen verschiedene Elementarbedingungen logisch ODER - verknüpft sind.
  • Es ist möglich, dass eine oder mehrere Variablen X1 bis XM zwar in dem logischen Ausdruck des Suchkriteriums auftreten, dass ihnen jedoch in einem gewissen Logeintrag 21 bis 2N kein Variablenwert x11 bis xNM zugeordnet wurde, weil zum Zeitstempel t1 bis tN dieses gewissen Logeintrags 21 bis 2N die betreffende Variable X1 bis XM nicht erfasst (gemessen oder beobachtet) wurde. Bei der Auswertung des Suchkriteriums für einen solchen Logeintrag 21 bis 2N werden alle Elementarbedingungen in Bezug auf jede solche Variable X1 bis XM, der kein Variablenwert x11 bis xNM zugeordnet ist, als logisch FALSCH bewertet.
  • Auf diese Weise kann jeder Logeintrag 21 bis 2N einer Auswertung durch das Suchkriterium unterzogen werden, die entweder das Resultat logisch WAHR (Suchkriterium ist erfüllt) oder logisch FALSCH (Suchkriterium ist nicht erfüllt) ergibt. Das Suchergebnis ist die Menge aller Logeinträge 21 bis 2N, für die das Suchkriterium (angewendet auf die zugeordneten Variablenwerte x11 bis xNM) das Resultat logisch WAHR ergibt.
  • Eine einfache Umsetzung einer solchen Suchanfrage erzeugt einen Aufwand, der abhängig von der Anzahl M der Variablen X1 bis XM und von der Anzahl N der Logeinträge 21 bis 2N ist. Bei einer solchen einfachen Umsetzung müssen für die M Variablen X1 bis XM jeweils O(N log(N)) Schritte zu deren Sortierung ausgeführt werden, insgesamt also O(M × N log(N)) Schritte. Zudem müssen bei einer solchen einfachen Umsetzung in den dann sortierten Listen von Werten einer jeden Variablen X1 bis XM die zu der Suchanfrage passenden Einträge mit einem Aufwand von jeweils O(log(N)) gesucht werden, für alle Variablen bedarf es somit O(M × log(N)) Schritte. Eine derartige einfache Umsetzung ist somit mit einem Suchaufwand für alle Variablen X1 bis XM von O(M × (N + 1) · log(N)) = O(M × N · log(N)) verbunden.
  • Bei Suchanfragen, die Kriterien bezüglich mehrerer Variablen X1 bis XM kombinieren (das heißt: die Elementarbedingungen in Bezug auf unterschiedliche Variablen X1 bis XM umfassen), kommt noch der Aufwand für das Zusammenführen der auf die einzelnen Variablen X1 bis XM bezogenen Suchergebnisse hinzu.
  • Da für die Auswertung derartiger Ereignisprotokolle 1 von typischen technischen Systemen, beispielsweise von Kraftfahrzeugen, nur hinsichtlich Rechenleistung und Speicherplatz beschränkte Ressourcen verfügbar sind, besteht ein Bedarf an einem effizienteren Verfahren zur Suche nach Logeinträgen 21 bis 2N, um die Wartezeit eines Nutzers bei der Beantwortung einer Suchanfrage zu verringern.
  • Der Erfindung liegt die Erkenntnis zugrunde, dass sich die Wartezeit für die Beantwortung einer Suchanfrage dadurch reduzieren lässt, dass bereits beim Einlesen eines Logs 1 - also noch vor der Formulierung einer Suchanfrage - ein Binärindex generiert wird.
  • Hier und im Folgenden wird unter einem Binärindex eine beispielsweise als geordnete Liste gegebene Menge von Logindizes verstanden, die jeweils einem Bitwert einer Variablen X1 bis XM zugeordnet ist. Ein Logindex ist die Nummer n = 1, 2,... N eines Logeintrags 21 bis 2N (oder, gleichbedeutend, eines diesem Logeintrag 21 bis 2N zugewiesenen Zeitstempels t1 bis tN).
  • Dabei soll der nicht-negierte Binärindex b i X k
    Figure DE102022001118A1_0006
    die Liste der Logindizes all derjenigen Logeinträge 21 bis 2N notieren, in denen das i-te Bit der Variablen Xk den Wert 1 hat. Analog dazu soll der negierte Binärindex b ¯ i X k
    Figure DE102022001118A1_0007
    die Liste der Logindizes all derjenigen Logeinträge 21 bis 2N notieren, in denen das i-te Bit der Variablen Xk den Wert 0 hat. Für eine Variable X1 bis XM mit einer Bitbreite von B Bit werden somit 2 x B Binärindizes (jeweils ein negierter und ein nicht-negierter Binärindex) gebildet.
  • Beispielhaft wird beim Einlesen des zweiten Logeintrags 22, in dem der ersten Variable X1 der Variablenwert x21 = (9)10 = (1001)2 zugewiesen ist (in dezimaler beziehungsweise binärer Kodierung), den folgenden Binärindizes der Wert „2“ (als Index oder Nummer des zweiten Logeintrags 22) neu zugeordnet: b 0 X 1 = { ,2, } b ¯ 1 X 1 = { ,2, } b ¯ 2 X 1 = { ,2, } b 3 X 1 = { ,2, }
    Figure DE102022001118A1_0008
  • Die übrigen, der ersten Variable X1 zugeordneten Binärindizes b ¯ 0 X 1 , b 1 X 1 , b 2 X 1 , b ¯ 3 X 1
    Figure DE102022001118A1_0009
    bleiben unverändert.
  • In gleicher Weise werden weitere Binärindizes für alle weiteren, im zweiten Logeintrag 22 erfassten Variablenwerte (im vorliegenden Beispiel gemäß 1 der Variablenwert x22) ergänzt.
  • In dieser Weise werden sämtliche Variablenwerte x11 bis xNM sämtlicher Logeinträge 21 bis 2N untersucht und die zugeordneten Binärindizes schrittweise (das heißt: Variablenwert um Variablenwert) beim Einlesen des Logs 1 aufgebaut.
  • Die Binärindizes können dabei beim Aufbauen sortiert werden, indem jeder hinzuzufügende Logindex für einen Logeintrag 21 bis 2N an der Position eingefügt wird, die seinem Wert in der Folge der bereits vorhandenen Logindizes entspricht. Alternativ können die Binärindizes auch sortiert werden, wenn das Log 1 vollständig eingelesen ist, das heißt: wenn alle Binärindizes zwar vollständig, aber im Allgemeinen noch unsortiert sind. Dabei ist es gleichgültig, ob die Binärindizes nach aufsteigender oder abfallender Folge der Indexwerte sortiert werden.
  • Jede Elementarbedingung eines Suchkriteriums kann nun auf eine Teilmenge der Vereinigungsmenge aller Binärindizes abgebildet werden. Beispielsweise wird der Elementarausdruck X1==5 (Bedingung: der der Variablen X1 zugeordnete Variablenwert eines Logeintrags 21 bis 2N ist genau (5)10 = (0101)2) auf die Menge { b 0 X 1 b ¯ 1 X 1 b 2 X 1 b ¯ 0 X 1 }
    Figure DE102022001118A1_0010
    abgebildet.
  • In analoger Weise wird die Konjunktion der Elementarausdrücke (X1 < 5) Λ (X1 > 0) auf die Menge { { b 0 X 1 b ¯ 0 X 1 } { b 1 X 1 b ¯ 1 X 1 } b ¯ 2 X 1 b ¯ 3 X 1 }
    Figure DE102022001118A1_0011
    abgebildet. Irrelevante Bits können hierbei unberücksichtigt bleiben, indem der dem Suchkriterium zugeordnete logische Ausdruck in eine Normalform überführt wird: { { b 0 X 1 b ¯ 0 X 1 } { b 1 X 1 b ¯ 1 X 1 } b ¯ 2 X 1 b ¯ 3 X 1 } = { b ¯ 2 X 1 b ¯ 3 X 1 }
    Figure DE102022001118A1_0012
  • Liegt der Suchausdruck beispielsweise als Disjunktive Normalform vor (das heißt: als Disjunktion von Konjunktionen von Elementarausdrücken), so wird die Ergebnismenge als Vereinigungsmenge derjenigen Teilmengen gebildet, die jeweils den einzelnen Konjunktionen der Elementarausdrücke zugeordnet sind. In dieser Weise lässt sich für jeden Suchausdruck eine Ergebnismenge bestimmen.
  • Diese Mengenoperationen (das heißt: das Bilden einer Vereinigungsmenge oder einer Schnittmenge von mehreren Binärindizes) sind besonders effizient durchführbar, wenn die Binärindizes als geordnete Mengen (das heißt: als aufsteigend oder abfallend sortierte Listen von Logindizes) geformt sind.
  • Die derart gebildete Ergebnismenge gibt die Logindizes aller Logeinträge 21 bis 2N an, die das Suchkriterium erfüllen (das heißt: bei denen durch Einsetzen der jeweils zugeordneten Variablenwerte x11 bis xNM das Resultat logisch WAHR entsteht).
  • In einer Ausführungsform können besonders komplexe Suchkriterien vereinfacht werden, beispielsweise, indem einzelne Elementarausdrücke in Konjunktionen einer Disjunktiven Normalform unterdrückt werden. In diesem Fall kann die so gebildete Ergebnismenge auch vereinzelt Logindizes von Logeinträgen 21 bis 2N umfassen, welche das ursprüngliche (nicht vereinfachte) komplexe Suchkriterium nicht erfüllen (nicht logisch WAHR machen). Jedoch reicht es in diesem Fall, das komplexe Suchkriterium auf die in der Ergebnismenge umfassten (das heißt: über die Logindizes des Suchergebnisses indizierten) Logeinträge 21 bis 2N anzuwenden, die gegenüber der Gesamtzahl der Logeinträge 21 bis 2N drastisch reduziert ist.
  • Die Laufzeit für die Auswertung eines Suchkriteriums kann durch die vorgeschlagene Bildung von Binärindizes beim Einlesen des Logs 1 im günstigsten Fall auf die Ordnung O(M) reduziert werden (das heißt: auf eine proportional zur Anzahl der Variablen X1 bis XM zunehmende Laufzeit). Im ungünstigsten Fall kann die Laufzeit dadurch auf die Ordnung O(W) reduziert werden (das heißt: auf eine proportional zur Anzahl der Logeinträge 21 bis 2N zunehmende Laufzeit). Die Wartezeit für die Auswertung eines Suchkriteriums kann somit gegenüber dem Stand der Technik wesentlich verringert werden, indem die Vorbereitung der Binärindizes bereits beim Einlesen des Logs 1, also vor einer Suchanfrage, vorgenommen wird.
  • Bezugszeichenliste
  • 1
    Ereignisprotokoll, Logdatei, Log
    21 bis 2N
    Logeintrag
    t1 bis tN
    erster bis N-ter Zeitstempel
    x11 bis xNM
    Protokolldaten, Variablenwert
    X1 bis XM
    erste bis M-te Variable
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 2016/161381 A1 [0006]

Claims (4)

  1. Computerimplementiertes Verfahren zur Analyse eines Ereignisprotokolls (1) mit mindestens einem durch einen Logindex identifizierbaren Logeintrag (21 bis 2N) jeweils umfassend mindestens einen Variablenwert (x11 bis xNM) einer Variablen (X1 bis XM), wobei jeder Variablenwert (x11 bis xNM) über ein Bitmuster von einer vorbestimmten, der korrespondierenden Variablen (X1 bis XM) zugeordneten Bitbreite darstellbar ist, dadurch gekennzeichnet, dass - beim Einlesen des Ereignisprotokolls (1) für jedes Bit einer jeden Variablen (X1 bis XM) jeweils ein nicht-negierter Bitindex und ein negierter Bitindex aufgebaut wird, ◯ wobei der nicht-negierte Bitindex die Menge aller Logindizes der Logeinträge (21 bis 2N) angibt, in denen ein Variablenwert (x11 bis xNM) der jeweiligen Variablen (X1 bis XM) umfasst ist und an der dem nicht-negierten Bitindex zugeordneten Bitstelle den Wert 1 aufweist und ◯ wobei der negierte Bitindex die Menge aller Logindizes der Logeinträge (21 bis 2N) angibt, in denen ein Variablenwert (x11 bis xNM) der jeweiligen Variablen (X1 bis XM) umfasst ist und an der dem negierten Bitindex zugeordneten Bitstelle den Wert 0 aufweist, - spätestens nach dem Einlesen die Logindizes eines jeden Bitindex sortiert werden, - mindestens ein Suchkriterium als von mindestens einer Variablen (X1 bis XM) abhängiger logischer Ausdruck präsentiert wird, - für jedes Suchkriterium ein Suchergebnis als Liste von Logindizes ermittelt wird, indem ◯ das Suchkriterium in eine Normalform von Elementarbedingungen überführt wird, die von jeweils nur einer Variablen (X1 bis XM) abhängen, ◯ zu jeder der Elementarbedingungen des Suchkriteriums die diese Elementarbedingung erfüllenden Bitindizes dieser Variablen (X1 bis XM) ausgewählt werden und ◯ die ausgewählten Bitindizes aller Variablen (X1 bis XM) aller Elementarbedingungen mengenarithmetisch gemäß der Normalform des Suchkriteriums verbunden werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Suchkriterium - in ein vereinfachtes Suchkriterium abgeschwächt wird und nachfolgend - auf das dem vereinfachten Suchkriterium als Menge von Logeinträgen (21 bis 2N) zugeordnete Suchergebnis angewendet wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Ereignisprotokoll (1) während des Betriebs eines Kraftfahrzeugs erstellt wird, wobei mindestens ein Logeintrag (21 bis 2N) mindestens einen Betriebszustand und/oder einen Betriebsparameter des Kraftfahrzeugs sowie einen Zeitstempel (t1 bis tN) umfasst.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das Ereignisprotokoll (1) zur Durchführung der Suche an mindestens einen Server übertragen wird.
DE102022001118.2A 2022-03-31 2022-03-31 Verfahren zur Analyse von Ereignisprotokollen Pending DE102022001118A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022001118.2A DE102022001118A1 (de) 2022-03-31 2022-03-31 Verfahren zur Analyse von Ereignisprotokollen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022001118.2A DE102022001118A1 (de) 2022-03-31 2022-03-31 Verfahren zur Analyse von Ereignisprotokollen

Publications (1)

Publication Number Publication Date
DE102022001118A1 true DE102022001118A1 (de) 2022-05-25

Family

ID=81452973

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022001118.2A Pending DE102022001118A1 (de) 2022-03-31 2022-03-31 Verfahren zur Analyse von Ereignisprotokollen

Country Status (1)

Country Link
DE (1) DE102022001118A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016161381A1 (en) 2015-04-03 2016-10-06 Oracle International Corporation Method and system for implementing a log parser in a log analytics system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016161381A1 (en) 2015-04-03 2016-10-06 Oracle International Corporation Method and system for implementing a log parser in a log analytics system

Similar Documents

Publication Publication Date Title
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE60118973T2 (de) Verfahren zum abfragen einer struktur komprimierter daten
EP0855062B1 (de) Informationssystem und verfahren zur speicherung von daten in einem informationssystem
DE69933187T2 (de) Dokumentensuchverfahren und Dienst
DE602004003361T2 (de) System und verfahren zur erzeugung von verfeinerungskategorien für eine gruppe von suchergebnissen
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE19627472A1 (de) Datenbanksystem
DE112010000947T5 (de) Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten
DE102013110571A1 (de) Automatische Datenharmonisierung
EP3563261B1 (de) Bitsequenzbasiertes datenklassifikationssystem
DE112010002620T5 (de) Ontologie-nutzung zum ordnen von datensätzen nachrelevanz
DE112018002626T5 (de) Verfahren und Systeme zur optimierten visuellen Zusammenfassung von Sequenzen mit zeitbezogenen Ereignisdaten
DE102022001118A1 (de) Verfahren zur Analyse von Ereignisprotokollen
DE10048478C2 (de) Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen
DE19651788A1 (de) Verfahren zur Datenermittlung und -aufbereitung in Informationsnetzwerken
DE112016007194T5 (de) Verfahren zum Erzeugen eines Zeichenkettenwörterbuchs, Verfahren zum Suchen eines Zeichenkettenwörterbuchs und ein System zum Verarbeiten eines Zeichenkettenwörterbuchs
DE112018001458T5 (de) Elektronische datenbank und verfahren zu deren erstellung
EP1336922B1 (de) Verfahren und Vorrichtung zum automatischen Erstellen eines Datawarehouse
EP1325412B1 (de) Verfahren zum zugriff auf eine speichereinheit, in der vermerkfolgen gespeichert sind, zugehörige speichereinheit und zugehöriges programm
DE102009016588A1 (de) Verfahren zur Ermittlung von Textinformationen
EP0563077B1 (de) Verfahren zum maschinellen ermitteln von in zwei datenfolgen enthaltenen gleichen datenelementen
DE102016206046A1 (de) Gerät und Verfahren zur Bearbeitung eines binärkodierten Strukturdokuments
DE102016217191A1 (de) Verfahren zum Auswählen und Bewerten von einer Vielzahl von Datensätzen aus zumindest einer Datenquelle
DE19903512B4 (de) Verfahren zur Erzeugung, Übertragung und Verwaltung von elektronischen Dokumenten
DE202022104673U1 (de) System zur Rückverfolgbarkeit von sozialen Netzwerken

Legal Events

Date Code Title Description
R230 Request for early publication