DE102022001441A1 - Diagnostic method for distributed software applications in a vehicle - Google Patents

Diagnostic method for distributed software applications in a vehicle Download PDF

Info

Publication number
DE102022001441A1
DE102022001441A1 DE102022001441.6A DE102022001441A DE102022001441A1 DE 102022001441 A1 DE102022001441 A1 DE 102022001441A1 DE 102022001441 A DE102022001441 A DE 102022001441A DE 102022001441 A1 DE102022001441 A1 DE 102022001441A1
Authority
DE
Germany
Prior art keywords
trace
runtime environment
cluster
software
vehicle
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
DE102022001441.6A
Other languages
German (de)
Inventor
Julius Heine
Florian Hoffmann
Bernhard Fink
Sebastian Widmaier
Andreas Unger
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 DE102022001441.6A priority Critical patent/DE102022001441A1/en
Publication of DE102022001441A1 publication Critical patent/DE102022001441A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung beschreibt ein Distributed Tracing Verfahren zur Erfassung von Protokolldaten mindestens eines Traces (40, 50) einer verteilten Softwareanwendung, die Softwaredienste (200 bis 233) mindestens einer ersten, unabhängig von einem Fahrzeug angeordneten Laufzeitumgebung (10) und mindestens einer weiteren, in einem Fahrzeug angeordneten Laufzeitumgebung (20) beansprucht. In mindestens einer Laufzeitumgebung (10, 20) werden die dort zeitlich aufeinanderfolgend abgearbeiteten Substrukturen (401 bis 503) des Traces (40, 50) identifiziert. Für jede Substruktur (401 bis 503) werden Merkmale (601, 602) ermittelt. Anhand der Merkmale (601, 602) wird mindestens ein Cluster (610 bis 640) gebildet, daraus eine zugeordnete Clusterbeschreibung ermittelt und an eine von der ersten, fahrzeugunabhängigen Laufzeitumgebung (10) angebotene Trace-Feinanalyse (17) übermittelt. Es wird die der zeitlichen Abfolge der Substrukturen (401 bis 503) in dem Trace (40, 50) entsprechende Sequenz der Cluster (610 bis 640) bestimmt und an die Trace-Feinanalyse (17) übermittelt.The invention describes a distributed tracing method for acquiring log data of at least one trace (40, 50) of a distributed software application, the software services (200 to 233) of at least one first runtime environment (10) arranged independently of a vehicle and at least one other runtime environment (10) in one Vehicle arranged runtime environment (20) claimed. In at least one runtime environment (10, 20), the substructures (401 to 503) of the trace (40, 50) processed there in chronological succession are identified. Features (601, 602) are determined for each substructure (401 to 503). At least one cluster (610 to 640) is formed based on the features (601, 602), from which an assigned cluster description is determined and transmitted to a detailed trace analysis (17) offered by the first, vehicle-independent runtime environment (10). The sequence of the clusters (610 to 640) corresponding to the chronological sequence of the substructures (401 to 503) in the trace (40, 50) is determined and transmitted to the detailed trace analysis (17).

Description

Die Erfindung betrifft ein Verfahren zur Erfassung von Protokolldaten einer verteilten Softwareanwendung (Distributed Tracing Verfahren) mit mindestens einer in einem Fahrzeug angeordneten Laufzeitumgebung gemäß dem Oberbegriff des Anspruchs 1.The invention relates to a method for acquiring log data of a distributed software application (distributed tracing method) with at least one runtime environment arranged in a vehicle according to the preamble of claim 1.

Komplexen Softwareanwendungen in einem Fahrzeug kann eine dezentrale verteilte Softwarearchitektur zugrunde liegen, die mit der Architektur verteilter Systeme in Rechenzentren vergleichbar ist. Dabei werden Funktionsumfänge in Microservices (Mikrodienste) aufgetrennt, die voneinander gekapselt sind und von verschiedenen Laufzeitumgebungen sowohl in einem Fahrzeug als auch außerhalb, beispielsweise von einem Server, angeboten werden. Derartige Microservices weisen eine bessere Skalierbarkeit auf als monolithische Softwareanwendungen und können unabhängig voneinander entwickelt werden.Complex software applications in a vehicle can be based on a decentralized, distributed software architecture that is comparable to the architecture of distributed systems in data centers. Functional scopes are separated into microservices (microservices), which are encapsulated from each other and are offered by different runtime environments both in a vehicle and outside, for example by a server. Such microservices are more scalable than monolithic software applications and can be developed independently.

Zur Fehlersuche in verteilten Systemen sind als Distributed Tracing bezeichnete verteilte Protokollierungsverfahren bekannt. Dabei wird eine als Span bezeichnete Laufzeitinstanz eines Funktionsablaufs, beispielsweise eines Softwareprozesses oder -threads, anhand eines Identifikators (ID) eindeutig gekennzeichnet. Ein derartiger Funktionsablauf kann nachgeordnet weitere Funktionsabläufe initiieren, die von verschiedenen, potenziell von unterschiedlichen Laufzeitumgebungen angebotenen Microservices angeboten werden und die mindestens teilweise parallel ablaufen können. Diesen als Child-Spans bezeichneten nachgeordneten Funktionsabläufe wird ebenfalls eine ID zugeordnet.Distributed logging methods known as distributed tracing are known for troubleshooting in distributed systems. A runtime instance of a function sequence, for example a software process or thread, which is referred to as a span, is clearly identified using an identifier (ID). Such a function flow can initiate further function flows downstream, which are offered by different microservices potentially offered by different runtime environments and which can run at least partially in parallel. An ID is also assigned to these subordinate functional flows, referred to as child spans.

Somit ist die Aufrufhierarchie der Gesamtheit aller an einem gewissen Funktionsablauf beteiligten Laufzeitinstanzen durch einen Baum von Spans charakterisiert. Die Wurzel dieses Baumes entspricht dem Einspringpunkt in den Funktionsablauf. Diese Wurzel, und damit auch der Baum, wird durch eine zugeordnete ID identifiziert. Ein derartiger Baum wird als Trace und die zugeordnete ID als Trace-ID bezeichnet.Thus the call hierarchy of all runtime instances involved in a certain functional sequence is characterized by a tree of spans. The root of this tree corresponds to the entry point into the functional sequence. This root, and thus also the tree, is identified by an assigned ID. Such a tree is called a trace and the associated ID is called a trace ID.

Mittels Distributed Tracing können zu jedem Span eines Traces Diagnose- und Laufzeitinformationen, beispielsweise Start- und Endzeitpunkt der Ausführung, Fehler- oder Statuscodes, Rückgabewerte, Assertions oder Debug-Ausgaben erfasst werden. Aus dem Stand der Technik sind Formate, Verfahren und Programmierschnittstellen für das Distributed Tracing bekannt, beispielsweise durch den offenen Standard Open Telemetry.Using distributed tracing, diagnostic and runtime information, such as the start and end time of execution, error or status codes, return values, assertions or debug outputs, can be recorded for each span of a trace. Formats, methods and programming interfaces for distributed tracing are known from the prior art, for example through the open standard Open Telemetry.

In Fahrzeugen werden in zunehmender Anzahl Steuergeräte eingesetzt, die untereinander und/oder mit geräteunabhängigen Softwareanwendungen des Fahrzeugs, aber auch mit zentralen Softwaresystemen außerhalb des Fahrzeugs Softwaredienste in der Art von Microservices anbieten oder beanspruchen. Zur Analyse von Schwachstellen oder Fehlfunktionen bedarf es daher, neben der Verwendung von Metriken und einfachen Protokolldateien (Logs), auch des Distributed Tracing.An increasing number of control units are being used in vehicles, which offer or claim software services in the form of microservices from one another and/or with device-independent software applications in the vehicle, but also with central software systems outside the vehicle. Therefore, in addition to the use of metrics and simple log files (logs), distributed tracing is also required to analyze weak points or malfunctions.

Jedoch unterliegen die in einem Fahrzeug verfügbaren Softwaresysteme hinsichtlich Rechenleistung, Speicherplatz und hinsichtlich der Verfügbarkeit sowie der Bandbreite von Kommunikationsverbindungen größeren Beschränkungen als verteilte Systeme eines Rechenzentrums. Es besteht daher ein Bedarf an einem Verfahren zum Distributed Tracing, das die Anzahl protokollierter Traces und/oder die mit einem Traceprotokoll zu übermittelnde Datenmenge gegenüber bekannten Verfahren reduziert und das zudem eine Protokollierung über nicht zuverlässig kommunikationsfähige Laufzeitumgebungen hinweg ermöglicht.However, the software systems available in a vehicle are subject to greater restrictions in terms of computing power, storage space and in terms of the availability and bandwidth of communication links than distributed systems in a data center. There is therefore a need for a method for distributed tracing that reduces the number of logged traces and/or the amount of data to be transmitted with a trace protocol compared to known methods and that also enables logging across runtime environments that are not reliably communication-capable.

Der Erfindung liegt die Aufgabe zu Grunde, ein verbessertes Verfahren (Distributed Tracing Verfahren) zur Erfassung von Protokolldaten einer verteilten Softwareanwendung, die Softwaredienste mindestens einer ersten, unabhängig von einem Fahrzeug angeordneten Laufzeitumgebung und mindestens einer weiteren, in einem Fahrzeug angeordneten Laufzeitumgebung beansprucht, anzugeben.The invention is based on the object of specifying an improved method (distributed tracing method) for acquiring log data of a distributed software application which claims software services of at least one first runtime environment arranged independently of a vehicle and at least one further runtime environment arranged in a vehicle.

Die Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1.The object is achieved according to the invention by a method having the features of claim 1.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.Advantageous configurations of the invention are the subject matter of the dependent claims.

Bei einem Distributed Tracing Verfahren werden Protokolldaten mindestens eines Traces erfasst, der von einer verteilten Softwareanwendung aus gestartet wird. Die verteilte Softwareanwendung beansprucht Softwaredienste mindestens einer ersten, unabhängig von einem Fahrzeug angeordneten Laufzeitumgebung und mindestens einer weiteren Laufzeitumgebung, die in einem Fahrzeug angeordnet ist.In a distributed tracing method, log data is recorded for at least one trace that is started by a distributed software application. The distributed software application claims software services of at least a first runtime environment arranged independently of a vehicle and at least one further runtime environment arranged in a vehicle.

Diese fahrzeugunabhängige Laufzeitumgebung bietet als einen Softwaredienst eine Trace-Feinanalyse an, mit der Protokolldaten von Traces der verteilten Softwareanwendung im Detail untersucht werden. Beispielsweise kann die Trace-Feinanalyse anhand einer Aufrufhäufigkeit von Traces oder Teilabläufen von Traces Anomalien oder Fehler erkennen und in einer statistischen Beziehung erfassen.This vehicle-independent runtime environment offers a detailed trace analysis as a software service, with which log data from traces of the distributed software application can be examined in detail. For example, the detailed trace analysis can identify anomalies or errors on the basis of a call frequency of traces or partial sequences of traces and record them in a statistical relationship.

Beispielhaft kann die erste, fahrzeugunabhängige Laufzeitumgebung als eine Datencloud ausgebildet sein, die Softwareanwendungsdienste auf einer zentralen, fahrzeugunabhängigen Serverarchitektur anbietet. Die mindestens eine weitere, fahrzeuggebundene Laufzeitumgebung kann beispielsweise als High Performance Computing (HPC) Softwareanwendung ausgebildet sein, mit der Steuergeräte in einem Fahrzeug abgefragt und/oder angesteuert werden und die eine Verbindung mit einer zentralen, fahrzeugunabhängigen Serverarchitektur bereitstellt. Im Folgenden soll eine derartige fahrzeuggebundene, somit mobile Softwareanwendung, die eine Verbindung mit einer fahrzeugunabhängigen (zentralen) Laufzeitumgebung ermöglicht, als Edge Device Laufzeitumgebung bezeichnet werden.For example, the first, vehicle-independent runtime environment can be designed as a data cloud that offers software application services on a central, vehicle-independent server architecture. The at least one additional, vehicle-bound runtime environment can be designed, for example, as a high-performance computing (HPC) software application, with which control units in a vehicle are queried and/or controlled and which provides a connection to a central, vehicle-independent server architecture. In the following, such a vehicle-bound, and thus mobile, software application that enables a connection to a vehicle-independent (central) runtime environment will be referred to as an edge device runtime environment.

Die zu protokollierende verteilte Softwareanwendung, und somit auch der zu protokollierende Trace kann Softwaredienste beanspruchen, die von verschiedenen Laufzeitumgebungen bereitgestellt werden.The distributed software application to be logged, and thus also the trace to be logged, can use software services that are provided by different runtime environments.

Erfindungsgemäß werden zeitlich aufeinanderfolgend abgearbeitete Substrukturen des zu protokollierenden Traces in mindestens einer Laufzeitumgebung erfasst. Solche Substrukturen umfassen einen Span oder eine Abfolge von Spans und optional weitere daraus gestartete Child-Spans, die auf derselben, aber auch auf einer anderen Laufzeitumgebung ablaufen können.According to the invention, substructures of the trace to be logged that are processed in chronological succession are recorded in at least one runtime environment. Such substructures include a span or a sequence of spans and optionally further child spans started from it, which can run on the same or on a different runtime environment.

Für jede Substruktur werden Merkmale ermittelt, beispielsweise die Struktur der Aufrufhierarchie von Spans, die Signatur einer oder mehrerer aus Spans heraus aufgerufener Operationen oder Microservices, die Laufzeitdauer (Latenz) und/oder ein Fehler- oder Rückgabecode. Diese Merkmale können als kategoriale Daten ausgebildet und einzelnen Komponenten eines mehrdimensionalen Merkmalsvektors zugeordnet sein, wobei die Komponenten des Merkmalsvektors einen Merkmalsraum aufspannen.Characteristics are determined for each substructure, for example the structure of the call hierarchy of spans, the signature of one or more operations or microservices called from spans, the runtime (latency) and/or an error or return code. These features can be in the form of categorical data and assigned to individual components of a multidimensional feature vector, with the components of the feature vector spanning a feature space.

Anhand der zu jeder Substruktur ermittelten Merkmale wird mindestens ein Cluster derart gebildet, dass ein und demselben Cluster zugeordnete Merkmalsvektoren eine möglichst große Ähnlichkeit und dass verschiedenen Clustern zugeordnete Merkmalsvektoren eine möglichst geringe Ähnlichkeit aufweisen.Based on the features determined for each substructure, at least one cluster is formed in such a way that feature vectors assigned to one and the same cluster have the greatest possible similarity and that feature vectors assigned to different clusters have the lowest possible similarity.

Zu jedem Cluster wird eine Clusterbeschreibung ermittelt, die insbesondere die Lage des Clusters im Merkmalsraum angibt. Eine solche Clusterbeschreibung kann beispielsweise eine oder mehrere repräsentative Substrukturen umfassen, die dem jeweiligen Cluster zugeordnet wurden. Alternativ oder zusätzlich kann eine solche Clusterbeschreibung ein Clusterzentrum umfassen, das einen zentral (mittig) im Cluster gelegenen Punkt im Merkmalsraum erfasst.A cluster description is determined for each cluster, which in particular indicates the position of the cluster in the feature space. Such a cluster description can include, for example, one or more representative substructures that have been assigned to the respective cluster. As an alternative or in addition, such a cluster description can include a cluster center that captures a point in the feature space that is located centrally (in the middle) of the cluster.

Ferner wird eine Sequenz von Clustern bestimmt, die dem zeitlichen Ablauf der Substrukturen in dem zu protokollierenden Trace zugeordnet wurden. Diese Sequenz wird ebenfalls an die Trace-Feinanalyse übermittelt.Furthermore, a sequence of clusters is determined, which have been assigned to the chronological sequence of the substructures in the trace to be logged. This sequence is also sent to the detailed trace analysis.

Ein Vorteil des erfindungsgemäßen Verfahrens besteht darin, dass anstelle der Rohdaten einer großen Anzahl von Traces nur die vergleichsweise viel weniger umfangreichen Sequenzen von zugeordneten Clustern von einem Fahrzeug aus übermittelt werden müssen. Dadurch können Bandbreite und Datenvolumen einer mobilen Datenverbindung des Edge Devices eingespart werden. Ferner können bei einer Unterbrechung dieser mobilen Datenverbindung diese vergleichsweise weniger umfangreichen Daten auf dem Edge Device bis zum Wiederherstellen der Verbindung zur Trace-Feinanalyse zwischengespeichert werden.One advantage of the method according to the invention is that instead of the raw data from a large number of traces, only the comparatively much less extensive sequences of associated clusters have to be transmitted from a vehicle. As a result, bandwidth and data volume of a mobile data connection of the edge device can be saved. Furthermore, if this mobile data connection is interrupted, this comparatively less extensive data can be buffered on the edge device until the connection for detailed trace analysis is restored.

Bei einer Ausführungsform des Verfahrens wird von mindestens einer Laufzeitumgebung mindestens ein Trace als repräsentativ ausgewählt. Bevorzugt erfolgt die Auswahl anhand lokal, das heißt: innerhalb der Laufzeitumgebung, verfügbarer Merkmale des Traces. Beispielsweise werden solche Traces ausgewählt, die einen typischen Verlauf in gewissen Fehlersituationen darstellen oder erwarten lassen. Der ausgewählte Trace wird gegenüber jeder anderen Laufzeitumgebung identifiziert. Bevorzugt wird die Trace-ID des ausgewählten Traces, optional werden weitere Parameter (beispielsweise Trace-ID eines aufrufenden Parent-Traces, Startzeitpunkt und/oder Aufrufparameter) an die jeweils anderen Laufzeitumgebungen übermittelt.In one embodiment of the method, at least one trace is selected as representative by at least one runtime environment. The selection is preferably made using locally, ie within the runtime environment, available features of the trace. For example, those traces are selected that represent or are expected to represent a typical course in certain error situations. The selected trace is identified against any other runtime environment. The trace ID of the selected trace is preferred; further parameters (for example trace ID of a calling parent trace, start time and/or call parameters) are optionally transmitted to the respective other runtime environments.

Jede Laufzeitumgebung erfasst lokale Protokolldaten eines von dieser oder einer anderen Laufzeitumgebung als repräsentativ ausgewählten Traces und übermittelt diese Protokolldaten an die Trace-Feinanalyse. Dabei werden, beispielsweise im Falle einer Unterbrechung einer Mobildatenverbindung bei der Übermittlung von einer als Edge Device ausgebildeten Laufzeitumgebung, diese Protokolldaten in einem lokalen Trace Cache der jeweiligen Laufzeitumgebung zwischengespeichert, bis die Übermittlung an die Trace-Feinanalyse erfolgreich abgeschlossen wurde.Each runtime environment collects local log data from a trace selected as representative by this or another runtime environment and transmits this log data to the detailed trace analysis. In the event of an interruption in a mobile data connection during transmission from a runtime environment designed as an edge device, for example, this log data is temporarily stored in a local trace cache of the respective runtime environment until transmission to the detailed trace analysis has been successfully completed.

Diese Ausführungsform des Verfahrens bietet den Vorteil, dass eine Ende-zu-Ende Erfassung eines als repräsentativ ausgewählten Traces über verschiedene Laufzeitumgebungen hinweg mit geringem Kommunikationsaufwand möglich ist. Dadurch wird eine detailliertere Auswertung durch die Trace-Feinanalyse und somit eine genauere Bestimmung von kausalen Zusammenhängen zwischen einer oder mehreren Softwareanomalien in einem Trace und deren Auswirkungen in verschiedenen Laufzeitumgebungen ermöglicht.This embodiment of the method offers the advantage that an end-to-end acquisition of a trace selected as representative is possible across different runtime environments with little communication effort. This enables a more detailed evaluation by the trace detailed analysis and thus a more precise one Determination of causal relationships between one or more software anomalies in a trace and their effects in different runtime environments.

Bei einer Ausführungsform des Verfahrens werden Merkmale für eine Substruktur oder für eine Mehrzahl von zeitlich aufeinanderfolgenden Substrukturen mittels eines Autoencoders bestimmt. Autoencoder sind Verfahren des überwachten Lernens, bei denen ein Modell (beispielsweise ein künstliches Neuronales Netz) dahingehend trainiert wird, aus Rohdaten encodierten Daten zu bilden sowie aus den encodierten Daten wieder die ursprünglichen Rohdaten zu rekonstruieren. Dadurch können besonders redundanzarme und zugleich aussagefähige Merkmale für Substrukturen bestimmt werden.In one embodiment of the method, features for a substructure or for a plurality of temporally consecutive substructures are determined by means of an autoencoder. Autoencoders are methods of supervised learning in which a model (for example an artificial neural network) is trained to form encoded data from raw data and to reconstruct the original raw data from the encoded data. As a result, particularly low-redundancy and at the same time meaningful characteristics for substructures can be determined.

Ausführungsbeispiele der Erfindung werden im Folgenden anhand von Zeichnungen näher erläutert.Exemplary embodiments of the invention are explained in more detail below with reference to drawings.

Dabei zeigen:

  • 1 schematisch ein Ablaufdiagramm für parallele Analysepipelines von verteilten Protokolldaten,
  • 2 schematisch ein Ablaufdiagramm für die Analyse von Protokolldaten,
  • 3 schematisch eine Aufrufhierarchie von Softwarediensten,
  • 4 schematisch die zeitliche Abfolge von in Substrukturen zusammengefassten Softwarediensten sowie
  • 5A und 5B schematisch die Anordnung von Clustern in einem Merkmalsraum.
show:
  • 1 schematically a flowchart for parallel analysis pipelines of distributed protocol data,
  • 2 schematically a flowchart for the analysis of log data,
  • 3 schematically a call hierarchy of software services,
  • 4 schematically the chronological sequence of software services combined in substructures as well as
  • 5A and 5B schematically shows the arrangement of clusters in a feature space.

Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.Corresponding parts are provided with the same reference symbols in all figures.

1 zeigt schematisch ein Ablaufdiagramm, das die Analyse von Protokolldaten in einem verteilten System beschreibt. Das verteilte System umfasst als ein erstes, zentrales Teilsystem eine Datencloud 10. Die Datencloud 10 bietet Dienste an, die beispielsweise als Apps, Microservices und/oder Prozesse auf einem Server oder, üblicherweise, auf einer Mehrzahl von miteinander vernetzten Servern umgesetzt sind und die im Folgenden als Cloud-Dienste 11 bezeichnet werden. Derartige Cloud-Dienste 11 können untereinander Daten über Datenverbindungen mit großer Geschwindigkeit und Bandbreite austauschen. 1 shows schematically a flowchart describing the analysis of log data in a distributed system. The distributed system includes a data cloud 10 as a first, central subsystem. The data cloud 10 offers services that are implemented, for example, as apps, microservices and/or processes on a server or, usually, on a plurality of interconnected servers and that are hereinafter referred to as cloud services 11. Such cloud services 11 can exchange data with each other via data connections with high speed and bandwidth.

Weiterhin umfasst das verteilte System mindestens ein, üblicherweise mehrere, über das Internet mit der Datencloud 10 und potenziell auch miteinander verbundene Industrial Internet of Things (IIoT) Geräte, im Folgenden als Edge Device 20 bezeichnet. Ein Edge Device 20 ist für die Umsetzung eines in einem Wide Area Network (WAN) übertragenen Internetprotokolls in ein Internetprotokoll eingerichtet, das in einem Local Area Network (LAN) übertragen wird.Furthermore, the distributed system includes at least one, usually several Industrial Internet of Things (IIoT) devices, hereinafter referred to as Edge Device 20, which are connected to the data cloud 10 and potentially also to one another via the Internet. An edge device 20 is set up to convert an internet protocol transmitted in a wide area network (WAN) into an internet protocol which is transmitted in a local area network (LAN).

Ein Edge Device 20 bietet Dienste einer mobilen, von der Datencloud 10 unabhängigen Umgebung als Apps, Microservices und/oder Prozesse an, die im Folgenden als Edge Device-Dienste 21 bezeichnet werden.An edge device 20 offers services to a mobile environment independent of the data cloud 10 in the form of apps, microservices and/or processes, which are referred to as edge device services 21 below.

Bevorzugt ist ein Edge Device 20 in einem in 1 nicht näher dargestellten Kraftfahrzeug angeordnet und verbindet dieses über eine Mobildatenverbindung, beispielsweise nach dem Long Term Evolution (LTE) Mobilfunk-Standard und/oder in einem Netz der fünften Mobilfunkgeneration (5G), mit der Datencloud 10. Der Austausch von Daten über eine solche Mobildatenverbindung ist, verglichen mit dem Austausch von Daten zwischen Cloud-Diensten 11, mit nur eingeschränkter Geschwindigkeit, Bandbreite und Verfügbarkeit möglich.An edge device 20 is preferably in an in 1 Arranged motor vehicle not shown in detail and connects this via a mobile data connection, for example according to the Long Term Evolution (LTE) mobile radio standard and / or in a network of the fifth mobile generation (5G), with the data cloud 10. The exchange of data via such a mobile data connection is possible with only limited speed, bandwidth and availability compared to the exchange of data between cloud services 11 .

Komplexe Softwareanwendungen nutzen beispielsweise als Microservices ausgebildete Softwaredienste 11, 21 sowohl der Datencloud 10 als auch des Edge Devices 20, welche bidirektional über eine Dienstekommunikation 31 kommunizieren. Der Kontrollfluss einer solchen komplexen Softwareanwendung, der zwischen mindestens einem Edge Device 20 und der Datencloud 10 wechseln kann, wird somit durch eine Abfolge von Aufrufen einzelner Microservices repräsentiert. Jeder dieser Aufrufe erzeugt einen Span, das heißt: eine Abfolge von zusammenhängenden Operationen, die jeweils in einer gemeinsamen Laufzeitumgebung 10, 20 ausgeführt werden, mit einer eindeutigen Span Identifizierung (Span ID). Spans können ihrerseits weitere Spans (das heißt: weitere Microservices) initiieren.Complex software applications use, for example, software services 11 , 21 embodied as microservices, both of data cloud 10 and of edge device 20 , which communicate bidirectionally via service communication 31 . The control flow of such a complex software application, which can switch between at least one edge device 20 and the data cloud 10, is thus represented by a sequence of calls to individual microservices. Each of these calls creates a span, ie a sequence of related operations that are each executed in a common runtime environment 10, 20, with a unique span identification (span ID). Spans can in turn initiate further spans (i.e. further microservices).

Traces 40, 50 erfassen die Protokolldaten aller Spans eines solchen Baumes unter Berücksichtigung ihrer Vorgänger - Nachfolger - Beziehungen. Traces 40, 50 sind in 1 nicht näher dargestellt, werden aber nachfolgend anhand von 3 und 4 noch genauer erläutert. Innerhalb eines Traces 40, 50 kann es eine oder mehrere, baumartig über Kanten (Aufrufe) miteinander verbundene Substrukturen geben, die als Subtraces bezeichnet werden.Traces 40, 50 record the log data of all spans of such a tree, taking into account their predecessor-successor relationships. Traces 40, 50 are in 1 not shown in detail, but are explained below with reference to 3 and 4 explained in more detail. Within a trace 40, 50 there can be one or more substructures which are connected to one another in a tree-like manner via edges (calls), which are referred to as subtraces.

Die Erfindung schlägt eine verteilte Protokollierung vor, mit der das Verhalten der Softwaredienste 11, 21 und deren Abhängigkeiten anhand von Traces 40, 50 beobachtbar und verständlich gemacht werden, wobei auch die Traces 40, 50 beziehungsweise deren Spans verteilt in der Laufzeitumgebung 10, 20 des jeweiligen Softwaredienstes 11, 21 (das heißt: auf dem Edge Device 20 für die Edge Device-Dienste 21 und auf der Datencloud 10 für die Cloud-Dienste 11) erfasst und, mindestens temporär, gespeichert werden.The invention proposes distributed logging with which the behavior of the software services 11, 21 and their dependencies can be observed and understood using traces 40, 50, with the traces 40, 50 or their spans also being distributed over the runtime The environment 10, 20 of the respective software service 11, 21 (i.e. on the edge device 20 for the edge device services 21 and on the data cloud 10 for the cloud services 11) is recorded and, at least temporarily, stored.

Hierzu wird sowohl auf dem Edge Device 20 als auch auf der Datencloud 10 jeweils eine zugeordnete Edge Device Analysepipeline 2 beziehungsweise Datencloud Analysepipeline 1 aufgebaut, die gleich strukturiert, jedoch voneinander unabhängig sind und in denen Traces 40, 50 mit (für das Edge Device 20 und die Datencloud 10) potenziell unterschiedlichen Repräsentierungen erfasst und als Stream (das heißt: als Abfolge von Spans eines Traces 40, 50 entsprechend deren Vorgänger - Nachfolger - Beziehung) analysiert.For this purpose, an assigned edge device analysis pipeline 2 or data cloud analysis pipeline 1 is set up both on edge device 20 and on data cloud 10, which have the same structure but are independent of one another and in which traces 40, 50 (for edge device 20 and the data cloud 10) potentially different representations recorded and analyzed as a stream (ie as a sequence of spans of a trace 40, 50 according to their predecessor - successor - relationship).

Hierzu wird von dem jeweiligen Cloud-Dienst 11 eine als Cloud Trace Collector 12 bezeichnete Protokollierungsaktivität gestartet. Analog wird von dem jeweiligen Edge Device-Dienst 21 eine als Edge Device Trace Collector 22 bezeichnete Protokollierungsaktivität gestartet. In einer jeweils nachfolgenden, als Cloud Trace Cache 13 beziehungsweise Edge Device Trace Cache 23 bezeichneten Speicheraktivität werden die von den Protokollierungsaktivitäten 22, 12 an jeweiligen Ausführungsorten (Edge Device 20 oder Datencloud 10) erfassten Protokolldaten der Spans eines Traces 40, 50 temporär gespeichert.For this purpose, a logging activity referred to as a cloud trace collector 12 is started by the respective cloud service 11 . Analogously, a logging activity referred to as Edge Device Trace Collector 22 is started by the respective edge device service 21 . The log data of the spans of a trace 40, 50 recorded by the logging activities 22, 12 at the respective execution locations (edge device 20 or data cloud 10) are temporarily stored in a respective subsequent storage activity referred to as cloud trace cache 13 or edge device trace cache 23.

Mittels der Trace Caches 13, 23 werden die Protokolldaten aller Spans eines Traces 40, 50 so lange temporär gespeichert, dass die komplette Auswertung des Traces 40, 50 möglich ist.The log data of all spans of a trace 40, 50 are temporarily stored by means of the trace caches 13, 23 for so long that the complete evaluation of the trace 40, 50 is possible.

Die in den Trace Caches 13, 23 temporär gespeicherten Protokolldaten werden in einer Cloud Trace Analyse 14 beziehungsweise in einer Edge Device Trace Analyse 24 analysiert. Dabei werden in einem Cloud Trace / Subtrace Clustering 15 beziehungsweise Edge Device Trace / Subtrace Clustering 25 Cluster von Traces 40, 50 und/oder Subtraces gebildet. Das Verfahren der Trace Analyse 14, 24 wird nachfolgend anhand der 2 und 4 noch genauer erläutert.The protocol data temporarily stored in the trace caches 13, 23 are analyzed in a cloud trace analysis 14 or in an edge device trace analysis 24. Clusters of traces 40, 50 and/or subtraces are formed in a cloud trace/subtrace clustering 15 or edge device trace/subtrace clustering 25. The method of trace analysis 14, 24 is based on the 2 and 4 explained in more detail.

Mittels eines Cloud Trace Samplers 16 beziehungsweise eines Edge Device Trace Samplers 26 werden Rohdaten der jeweiligen Caches 13, 23, von der jeweiligen Trace Analyse 14, 24 ermittelte Analyseergebnisse sowie die im jeweiligen Trace / Subtrace Clustering 15, 25 ermittelten Daten danach ausgewählt, ob eine detaillierte Trace-Feinanalyse 17 darauf angewendet werden soll. Insbesondere werden hierfür repräsentative Traces 40, 50 und/oder repräsentative Subtraces ausgewählt, wie nachfolgend noch genauer erläutert wird.Using a cloud trace sampler 16 or an edge device trace sampler 26, raw data from the respective caches 13, 23, analysis results determined by the respective trace analysis 14, 24 and the data determined in the respective trace/subtrace clustering 15, 25 are selected according to whether a Detailed Trace Analysis 17 should be applied to it. In particular, representative traces 40, 50 and/or representative subtraces are selected for this, as will be explained in more detail below.

Mittels einer Sampler Kommunikation 32 teilt ein erster Trace Sampler 16, 26 (beispielsweise der Edge Device Trace Sampler 26) dem jeweils anderen Trace Sampler 26, 16 (beispielsweise dem Cloud Trace Sampler 16) mit, welche Traces 40, 50 und/oder Subtraces als repräsentativ ausgewählt wurden. Dadurch wird der jeweils andere Trace Sampler 26, 16 in die Lage versetzt, auch Protokolldaten zu denjenigen Spans auszuwählen und der Trace-Feinanalyse 17 bereitzustellen, die von dem ersten Trace Sampler 16, 26 (nicht jedoch von dem anderen Trace Sampler 26, 16) als repräsentativ ermittelt wurden.Using a sampler communication 32, a first trace sampler 16, 26 (e.g. the edge device trace sampler 26) informs the other trace sampler 26, 16 (e.g. the cloud trace sampler 16) which traces 40, 50 and/or subtraces as were chosen to be representative. As a result, the respective other trace sampler 26, 16 is able to select and provide the detailed trace analysis 17 with log data for those spans that the first trace sampler 16, 26 (but not the other trace sampler 26, 16) were determined to be representative.

Dadurch kann zum einen die Erfassung und die Analyse der Protokolldaten, soweit dies für die Bestimmung von repräsentativen Traces 40, 50 oder Subtraces erforderlich ist, lokal (das heißt: in der zugeordneten Ausführungsumgebung - entweder auf dem Edge Device 20 oder in der Datencloud 10) erfolgen. Zum anderen können dadurch repräsentative Traces 40, 50 oder Subtraces einer Trace-Feinanalyse 17 auch dann unterzogen werden, wenn sie Spans umfassen, die in unterschiedlichen Ausführungsumgebungen ausgeführt wurden, ohne dass dafür gesamthaft Protokolldaten aller ausgeführter Spans an die Trace-Feinanalyse 17 übertragen werden müssten.As a result, on the one hand, the logging data can be recorded and analyzed locally (i.e. in the assigned execution environment - either on the edge device 20 or in the data cloud 10), insofar as this is necessary for the determination of representative traces 40, 50 or subtraces. take place. On the other hand, representative traces 40, 50 or subtraces can be subjected to a detailed trace analysis 17 even if they include spans that were executed in different execution environments, without log data of all executed spans having to be transmitted to the detailed trace analysis 17 as a whole .

In der erweiterten Trace-Feinanalyse 17 kann anhand der von den Trace Samplern 16, 26 übermittelten repräsentativen Traces 40, 50 sowie anhand der mittels des Trace / Subtrace Clustering 15, 25 übermittelten Clusterdaten ein gesamthafter Systemüberblick umfassend sowohl Informationen zu den Cloud-Diensten 11 als auch zu den Edge Device-Diensten 21 erstellt werden. Optional kann in der Trace-Feinanalyse 17 das Debuggen spezifischer (beispielsweise über eine grafische Benutzeroberfläche ausgewählter) repräsentativer Traces 40, 50 ermöglicht werden.In the extended detailed trace analysis 17, based on the representative traces 40, 50 transmitted by the trace samplers 16, 26 and based on the cluster data transmitted by means of the trace/subtrace clustering 15, 25, a complete system overview can be obtained comprising both information about the cloud services 11 and also be created to the edge device services 21 . Optionally, in the detailed trace analysis 17, the debugging of specific representative traces 40, 50 (selected via a graphical user interface, for example) can be made possible.

Die Abstimmung darüber, ob beziehungsweise welche Traces 40, 50 erfasst (gesampelt) werden sollen, erfolgt zwischen den Laufzeitumgebungen 10, 20 über die Dienstekommunikation 31. Ein Trace 40, 50 wird dabei anhand seiner Trace-ID identifiziert, welche an die jeweils andere Laufzeitumgebung 10, 20 übertragen wird. Entsprechend der Trace-ID wird der lokale Trace Collector 12, 22 zur temporären Speicherung der jeweils lokal aufgerufenen Spans angewiesen.The agreement on whether or which traces 40, 50 should be recorded (sampled) takes place between the runtime environments 10, 20 via the service communication 31. A trace 40, 50 is identified by its trace ID, which is sent to the other runtime environment 10, 20 is transmitted. According to the trace ID, the local trace collector 12, 22 is instructed to temporarily store the locally called spans.

2 zeigt schematische einen Ablaufplan, der die Analyse von in einem Trace Cache 13, 23 temporär gespeicherten Protokolldaten entlang jeweils einer Analysepipeline 1, 2 erläutert. 2 FIG. 12 shows a schematic flowchart that explains the analysis of log data temporarily stored in a trace cache 13, 23 along an analysis pipeline 1, 2 in each case.

In einem Substruktur-Detektionsschritt 41 werden auf verschiedene Laufzeitumgebungen 10, 20 verteilte Traces 40, 50 in Subtraces unterteilt, die wiederholt aufgerufene Subroutinen umfassen. Derartige Subtraces werden als Eingangsdaten für Verfahren des nicht-überwachten repräsentativen Lernens und für Clusterverfahren verwendet.In a substructure detection step 41, different runtime environments 10, 20 distributed traces 40, 50 divided into subtraces, which include repeatedly called subroutines. Such subtraces are used as input data for unsupervised representative learning methods and for cluster methods.

In einem Struktur-Lernschritt 42 werden strukturelle Informationen erfasst, die in den Graphen der (gemäß ihrer Vorgänger - Nachfolger - Beziehung in der Aufrufhierarchie angeordneten) Spans eines Traces 40, 50 enthalten sind. In einem parallelen Merkmals-Lernschritt 43 werden einem oder mehreren Spans eines analysierten Traces 40, 50 zugeordnete Merkmale erfasst, beispielsweise eine Signatur (ein Name, eine Parameterliste, ein Rückgabetyp) zur Identifizierung eines Dienstes, eines Microservices oder einer Operation und/oder ein beim Aufruf ermittelter Latenzwert und/oder ein Status (beispielsweise ein Rückgabewert oder ein Fehlerstatus). Die Gesamtheit der Merkmale eines Spans oder eines mehrere Spans umfassenden Subtraces werden in einem Merkmalsvektor enkodiert. Verfahren zur Enkodierung von Merkmalsvektoren sind aus dem Stand der Technik bekannt.In a structure learning step 42, structural information is recorded which is contained in the graphs of the spans of a trace 40, 50 (arranged according to their predecessor-successor relationship in the call hierarchy). In a parallel feature learning step 43, one or more spans of an analyzed trace 40, 50 are assigned features, for example a signature (a name, a parameter list, a return type) to identify a service, a microservice or an operation and/or a Call determined latency value and/or a status (e.g. a return value or an error status). All of the features of a span or of a subtraces comprising several spans are encoded in a feature vector. Methods for encoding feature vectors are known from the prior art.

In einem gemeinsam an den Struktur-Lernschritt 42 sowie an den Merkmals-Lernschritt 43 anschließenden Cluster-Lernschritt 44 wird eine latente Repräsentation ermittelt, anhand der sich ein gemeinsames oder ein ähnliches Verhalten von Traces 40, 50 bestimmen lässt. Die Bildung von Clustern 610 bis 640 anhand von Merkmalsvektoren, die Traces 40, 50 zugeordnet wurden, wird nachfolgend anhand der 5A und 5B noch genauer erläutert.In a cluster learning step 44 that follows both the structure learning step 42 and the feature learning step 43, a latent representation is determined, on the basis of which a common or a similar behavior of traces 40, 50 can be determined. The formation of clusters 610 to 640 based on feature vectors that have been assigned to traces 40, 50 is based on the 5A and 5B explained in more detail.

Der Cluster-Lernschritt 44 wirkt über je ein Regularisierungs-Feedback 45 sowohl auf den Struktur-Lernschritt 42 als auch auf den Merkmals-Lernschritt 43 ein. Mit anderen Worten: welche strukturellen Informationen in dem Struktur-Lernschritt 42 erfasst werden und/oder welche Merkmale in dem Merkmals-Lernschritt 43 ermittelt werden, wird anhand der Ergebnisse des Cluster-Lernschritts 44 gesteuert. Eine solche Steuerung kann beispielsweise numerisch mittels eines Strafterms, der einem Optimierungskriterium des jeweiligen Lernschritts 42, 43 überlagert wird, umgesetzt sein. Alternativ oder zusätzlich kann eine solche Steuerung oder Regularisierung auch algorithmisch, beispielsweise durch regelbasierte Auswahl, umgesetzt sein.The cluster learning step 44 acts on both the structure learning step 42 and the feature learning step 43 via a regularization feedback 45 each. In other words: which structural information is recorded in the structure learning step 42 and/or which features are determined in the feature learning step 43 is controlled on the basis of the results of the cluster learning step 44 . Such a control can, for example, be implemented numerically by means of a penalty term, which is superimposed on an optimization criterion of the respective learning step 42, 43. Alternatively or additionally, such a control or regularization can also be implemented algorithmically, for example through rule-based selection.

In einem nachfolgenden Cluster-Zuweisungsschritt 46 wird ein Trace 40, 50 in seine durch den vorangehenden Substruktur-Detektionsschritt 41 und die vorangehenden Lernschritte 42 bis 44 bestimmte Subtraces zerlegt. Jedem dieser Subtraces wird genau ein Cluster 610 bis 640 zugeordnet, wie nachfolgend anhand der 5A und 5B noch genauer erklärt wird. Die Zuordnung erfolgt so, dass ein und demselben Cluster 610 bis 640 zugeordnete Subtraces eine möglichst hohe Ähnlichkeit aufweisen und dass verschiedenen Clustern 610 bis 640 zugeordnete Subtraces eine möglichst geringe Ähnlichkeit aufweisen. Auf diese Weise wird einem Trace 40, 50 entsprechend der zeitlichen Abfolge seiner Subtraces eine Clustersequenz 47 von Clustern 610 bis 640 zugewiesen. Somit kann der Trace 40, 50 statt durch die Reihenfolge der Parameter seiner Subtraces einfacher und kürzer durch die Reihenfolge der zugeordneten Cluster 610 bis 640 beschrieben werden.In a subsequent cluster assignment step 46, a trace 40, 50 is broken down into its subtraces determined by the preceding substructure detection step 41 and the preceding learning steps 42 to 44. Exactly one cluster 610 to 640 is assigned to each of these subtraces, as explained below with reference to FIG 5A and 5B will be explained in more detail. The assignment takes place in such a way that subtraces assigned to one and the same cluster 610 to 640 have the greatest possible similarity and that subtraces assigned to different clusters 610 to 640 have the lowest possible similarity. In this way, a cluster sequence 47 of clusters 610 to 640 is assigned to a trace 40, 50 in accordance with the chronological sequence of its subtraces. Thus, the trace 40, 50 can be described more simply and briefly by the order of the assigned clusters 610 to 640 instead of by the order of the parameters of its subtraces.

Mit der Zuordnung seiner Subtraces zu Clustern 610 bis 640 kann ein Trace 40, 50 nicht nur zur Anpassung (das heißt: zum Trainieren oder Anlernen eines für künftige Auswertungen verwendbaren Modells) eingesetzt werden. Darüber hinaus kann ein derart geclusterter Trace 40, 50 auch einer Verarbeitung, beispielsweise einer Klassifikation, anhand eines aktuellen Modellzustands unterzogen werden. Dadurch kann die aktuelle Leistung (beispielsweise ein Durchsatz oder das Auftreten von Fehlern bei der aktuellen Ausführung von Softwarediensten 11, 21) bestimmt werden.With the assignment of its subtraces to clusters 610 to 640, a trace 40, 50 can be used not only for adaptation (ie: for training or learning a model that can be used for future evaluations). In addition, a trace 40, 50 clustered in this way can also be subjected to processing, for example a classification, based on a current model state. As a result, the current performance (for example a throughput or the occurrence of errors in the current execution of software services 11, 21) can be determined.

3 zeigt schematisch den Zusammenhang zwischen Softwarediensten 200 bis 233, die von verschiedenen Laufzeitumgebungen 10, 20 bereitgestellt werden. Dabei sind in rechteckigen Boxen Client-Anwendungen 101, 102 dargestellt. Die in 3 eingezeichneten Pfeile weisen von einer Client-Anwendung 101, 102 oder einem Softwaredienst 200 bis 233 auf einen davon aufgerufenen Softwaredienst 200 bis 233. 3 shows schematically the relationship between software services 200 to 233 that are provided by different runtime environments 10, 20. In this case, client applications 101, 102 are shown in rectangular boxes. In the 3 The arrows shown point from a client application 101, 102 or a software service 200 to 233 to a software service 200 to 233 called by it.

Eine erste Client-Anwendung 101 ist ein über die Datencloud 10 angebotener Remote-Tester 101. Eine zweite Client-Anwendung 102 ist als Workshop-Tester 102 ausgebildet, die von einem nicht näher dargestellten Werkstatt-Diagnosegerät angeboten wird.A first client application 101 is a remote tester 101 offered via the data cloud 10. A second client application 102 is embodied as a workshop tester 102, which is offered by a workshop diagnostic device, not shown in detail.

Die in 3 nur beispielhaft dargestellten Client-Anwendungen 101, 102 rufen unabhängig voneinander einen Diagnose-Softwaredienst 200 auf, der Operationen eines Hardware-Diagnose-Softwaredienstes 210, eines Software-Diagnose-Softwaredienstes 220 sowie eines Zugriffsrechte-Verwaltungs-Softwaredienstes 230 aufruft.In the 3 Client applications 101, 102, shown only as examples, independently call a diagnostic software service 200, which calls operations of a hardware diagnostic software service 210, a software diagnostic software service 220 and an access rights management software service 230.

Der Hardware-Diagnose-Softwaredienst 210 ruft Operationen eines Steuergeräte-Kommunikations-Softwaredienstes 211 auf.The hardware diagnostics software service 210 calls operations of a control unit communication software service 211 .

Der Software-Diagnose-Softwaredienst 220 ruft Operationen eines Protokollierungs-Cache-Softwaredienstes 221, eines Metrik-Cache-Softwaredienstes 222 sowie eines Trace-Cache-Softwaredienstes 223 auf.The software diagnostics software service 220 invokes operations of a logging cache software service 221, a metrics cache software service 222, and a trace cache software service 223.

Der Zugriffsrechte-Verwaltungs-Softwaredienst 230 ruft Operationen eines Certificate-Handler-Softwaredienstes 231 und eines Token-Handler-Softwaredienstes 232 auf. Der Certificate-Handler-Softwaredienst 231 ruft optional Operationen eines Certificate-Authority-Softwaredienstes 233 auf.The access rights management software service 230 invokes operations of a certificate handler software service 231 and a token handler software service 232 . The certificate handler software service 231 optionally invokes operations of a certificate authority software service 233 .

Somit bilden der Workshop-Tester 102 mit den nachgeordneten Softwarediensten 200 bis 233 einen ersten Trace 40 und der Remote-Tester 101 mit denselben, jedoch unabhängig vom ersten Trace 40 und potenziell auch mit anderen Parametern aufgerufenen Softwarediensten 200 bis 233 einen zweiten Trace 50.Thus, the workshop tester 102 with the subordinate software services 200 to 233 forms a first trace 40 and the remote tester 101 forms a second trace 50 with the same software services 200 to 233 that are called up independently of the first trace 40 and potentially also with other parameters.

Diese Traces 40, 50 werden nachfolgend anhand von 4 genauer erläutert in ihrer zeitlichen Abfolge entlang eines Zeitstrahls t.These traces 40, 50 are subsequently based on 4 explained in more detail in their chronological sequence along a timeline t.

Bei dem ersten Trace 40 wird der Diagnose-Softwaredienst 200 von dem (in 4 nicht näher dargestellten) Workshop-Tester 102 aus aufgerufen. Beispielsweise kann der Diagnose-Softwaredienst 200 eine Operation „completeDiagnosis“ anbieten, die von dem Workshop-Tester 102 aus aufgerufen wird.In the first trace 40, the diagnostic software service 200 is used by the (in 4 not shown in detail) workshop tester 102 is called from. For example, the diagnostic software service 200 can offer a "completeDiagnosis" operation, which is invoked by the workshop tester 102 .

Innerhalb des ersten Traces 40 werden zeitlich nacheinander zunächst eine Operation „getToken“ des Zugriffsrechte-Verwaltungs-Softwaredienstes 230, anschließend eine Operation „shortTest“ des Hardware-Diagnose-Softwaredienstes 210 und danach eine Operation „getObservabilityData“ des Software-Diagnose-Softwaredienstes 220 aufgerufen.Within the first trace 40, a “getToken” operation of the access rights management software service 230, then a “shortTest” operation of the hardware diagnostics software service 210 and then an operation “getObservabilityData” of the software diagnostics software service 220 are called in succession .

Vom Zugriffsrechte-Verwaltungs-Softwaredienst 230 wird zunächst eine Operation „checkCertificate“ des Certificate-Handler-Softwaredienstes 231 und danach eine Operation „generateToken“ des Token-Handler-Softwaredienstes 232 aufgerufen. Diese Aufrufe bilden zusammen mit dem Zugriffsrechte-Verwaltungs-Softwaredienst 230 eine erste Substruktur 401 des ersten Traces 40.The access rights management software service 230 first calls up a “checkCertificate” operation of the certificate handler software service 231 and then an operation “generateToken” of the token handler software service 232 . Together with the access rights management software service 230, these calls form a first substructure 401 of the first trace 40.

Vom Hardware-Diagnose-Softwaredienst 210 werden nacheinander die Operationen „dtc/ecu1“, „dtc/ecu2“ und „dtc/ecu3“ aufgerufen, die alle vom Steuergeräte-Kommunikations-Softwaredienst 211 bereitgestellt werden und mit denen Fehlercodes von einem oder mehreren Steuergeräten erfasst werden. Diese Aufrufe bilden zusammen mit dem Hardware-Diagnose-Softwaredienst 210 eine zweite Substruktur 402 des ersten Traces 40.The hardware diagnostic software service 210 calls the operations "dtc/ecu1", "dtc/ecu2" and "dtc/ecu3" in sequence, all of which are provided by the control unit communication software service 211 and are used to retrieve error codes from one or more control units are recorded. Together with the hardware diagnosis software service 210, these calls form a second substructure 402 of the first trace 40.

Vom Software-Diagnose-Softwaredienst 220 werden zeitlich nacheinander zunächst eine Operation „recentLogs“ des Protokollierungs-Cache-Softwaredienstes 221, anschließend eine Operation „recentMetrics“ des Metrics-Cache-Softwaredienstes 222 und danach eine Operation „recentTraces“ des Trace-Cache-Softwaredienstes 223 aufgerufen. Diese Aufrufe bilden zusammen mit dem Software-Diagnose-Softwaredienst 220 eine dritte Substruktur 403 des ersten Traces 40.The software diagnostics software service 220 sequentially performs a “recentLogs” operation of the logging cache software service 221, then a “recentMetrics” operation of the metrics cache software service 222 and then a “recentTraces” operation of the trace cache software service 223 called. Together with the software diagnosis software service 220, these calls form a third substructure 403 of the first trace 40.

In analoger Weise wird bei dem zweiten Trace 50 der Diagnose-Softwaredienst 200 von dem (in 4 nicht näher dargestellten) Remote-Tester 101 aus aufgerufen. Beispielsweise kann der Diagnose-Softwaredienst 200 eine Operation „completeDiagnosis“ anbieten, die von dem Remote-Tester 101 aus aufgerufen wird.In an analogous manner, in the second trace 50, the diagnostic software service 200 is used by the (in 4 not shown) remote tester 101 called from. For example, the diagnostic software service 200 can offer a “completeDiagnosis” operation that is called from the remote tester 101 .

Innerhalb des ersten Traces 40 werden zeitlich nacheinander zunächst eine Operation „getToken“ des Zugriffsrechte-Verwaltungs-Softwaredienstes 230, anschließend eine Operation „shortTest“ des Hardware-Diagnose-Softwaredienstes 210 und danach eine Operation „getObservabilityData“ des Software-Diagnose-Softwaredienstes 220 aufgerufen.Within the first trace 40, a “getToken” operation of the access rights management software service 230, then a “shortTest” operation of the hardware diagnostics software service 210 and then an operation “getObservabilityData” of the software diagnostics software service 220 are called in succession .

Vom Zugriffsrechte-Verwaltungs-Softwaredienst 230 wird zunächst eine Operation „checkCertificate“ des Certificate-Handler-Softwaredienstes 231 und danach eine Operation „generateToken“ des Token-Handler-Softwaredienstes 232 aufgerufen. Zusätzlich zu diesen bereits in der ersten Substruktur 401 des ersten Traces 40 umfassten Aufrufen wird vom Certificate-Handler-Softwaredienstes 231 aus eine Operation „revocationList“ aufgerufen, die von dem Certificate-Authority-Softwaredienst 233 angeboten wird. Diese Aufrufe bilden zusammen mit dem Zugriffsrechte-Verwaltungs-Softwaredienst 230 eine erste Substruktur 501 des zweiten Traces 50.The access rights management software service 230 first calls up a “checkCertificate” operation of the certificate handler software service 231 and then an operation “generateToken” of the token handler software service 232 . In addition to these calls already included in the first substructure 401 of the first trace 40 , the certificate handler software service 231 calls an operation “revocationList”, which is offered by the certificate authority software service 233 . Together with the access rights management software service 230, these calls form a first substructure 501 of the second trace 50.

Vom Hardware-Diagnose-Softwaredienst 210 werden nacheinander die Operationen „dtc/ecu1“, „dtc/ecu2“, „dtc/ecu3“ und „dtc/ecu4“ aufgerufen, die alle vom Steuergeräte-Kommunikations-Softwaredienst 211 bereitgestellt werden. Diese Aufrufe bilden zusammen mit dem Hardware-Diagnose-Softwaredienst 210 eine zweite Substruktur 502 des zweiten Traces 50.The hardware diagnostic software service 210 calls the operations “dtc/ecu1”, “dtc/ecu2”, “dtc/ecu3” and “dtc/ecu4” in sequence, all of which are provided by the control unit communication software service 211 . Together with the hardware diagnosis software service 210, these calls form a second substructure 502 of the second trace 50.

Vom Software-Diagnose-Softwaredienst 220 werden zeitlich nacheinander zunächst eine Operation „recentLogs“ des Protokollierungs-Cache-Softwaredienstes 221 und danach eine Operation „recentTraces“ des Trace-Cache-Softwaredienstes 223 aufgerufen. Diese Aufrufe bilden zusammen mit dem Software-Diagnose-Softwaredienst 220 eine dritte Substruktur 503 des zweiten Traces 50.The software diagnosis software service 220 first calls up a “recentLogs” operation of the logging cache software service 221 and then an operation “recentTraces” of the trace cache software service 223 in chronological succession. Together with the software diagnosis software service 220, these calls form a third substructure 503 of the second trace 50.

Wie in 4 verdeutlicht, weisen beide Traces 40, 50 je drei aufeinanderfolgende Substrukturen 401 bis 403, 501 bis 503 auf, die zueinander ähnlich, jedoch nicht gleich sind: Die erste Substruktur 401, 501 des ersten wie auch des zweiten Traces 40, 50 umfasst den Aufruf der Operation „getToken“ des Zugriffsrechte-Verwaltungs-Softwaredienstes 230 sowie die Aufrufe der Operationen „checkCertificate“ und „generateToken“ des Certificate-Handler-Softwaredienstes 231 beziehungsweise des Token-Handler-Softwaredienstes 232. Zusätzlich umfasst die erste Substruktur 501 des zweiten Traces 50 den Aufruf der Operation „revocationList“ des Certificate-Authority-Softwaredienstes 233.As in 4 clarifies, both traces 40, 50 each have three consecutive substructures 401 to 403, 501 to 503, which are similar to one another but not the same: the first substructure 401, 501 of the first as well as the second trace 40, 50 includes calling the "getToken" operation of the access rights management software service 230 and calling the "checkCertificate" and "generateToken" operations of the certificate handler software service 231 or the token handler software service 232. In addition, the first substructure 501 of the second traces 50 the call of the “revocationList” operation of the certificate authority software service 233.

Entsprechend weisen auch die zweite und die dritte Substruktur 402, 502, 403, 503 des ersten sowie des zweiten Traces 40, 50 gleiche, aber auch unterschiedliche Aufrufe von Operationen auf: in der zweiten Substruktur 502 des zweiten Traces 50 wird von dem Hardware-Diagnose-Softwaredienst 210 zusätzlich zu den Aufrufen der zweiten Substruktur 402 des ersten Traces 40 die Operation „dtc/ecu4“ aufgerufen, die von dem Steuergeräte-Kommunikations-Softwaredienst 211 bereitgestellt wird. In der dritten Substruktur 403 des ersten Traces 40 wird von dem Software-Diagnose-Softwaredienst 220 zusätzlich zu den Aufrufen der dritten Substruktur 503 des zweiten Traces 50 die Operation „recentMetrics“ aufgerufen, die von dem Metrics-Cache-Softwaredienst 222 bereitgestellt wird.Correspondingly, the second and third substructures 402, 502, 403, 503 of the first and second traces 40, 50 have the same but also different calls for operations: in the second substructure 502 of the second trace 50, the hardware diagnosis - Software service 210 calls the operation "dtc / ecu4" in addition to the calls to the second substructure 402 of the first trace 40, which is provided by the control unit communication software service 211. In the third substructure 403 of the first trace 40, the software diagnosis software service 220 calls the operation “recentMetrics” in addition to the calls to the third substructure 503 of the second trace 50, which is provided by the metrics cache software service 222.

Die einander entsprechenden Substrukturen 401 und 501, 402 und 502 sowie 403 und 503 beider Traces 40, 50 weisen somit einen logischen Zusammenhang auf, können jedoch - abhängig von dem Trace 40, 50, aus dem heraus sie jeweils gestartet werden - ein unterschiedliches Laufzeitverhalten aufweisen. Beispielhaft können einander entsprechende Substrukturen 401 bis 503 unterschiedliche Latenzzeiten und/oder unterschiedliche Status- oder Rückgabewerte aufweisen und/oder unterschiedliche Ereignisse (events) auslösen oder verarbeiten und/oder mit unterschiedlichen Attributen oder Parametern gestartet werden.The mutually corresponding substructures 401 and 501, 402 and 502 and 403 and 503 of both traces 40, 50 therefore have a logical connection, but can have different runtime behavior depending on the trace 40, 50 from which they are started . By way of example, mutually corresponding substructures 401 to 503 can have different latency times and/or different status or return values and/or trigger or process different events and/or be started with different attributes or parameters.

Die Struktur (beispielsweise Anzahl oder Reihenfolge aufgerufener Operationen) und weitere Merkmale der Substrukturen 401 bis 503 werden mittels eines nicht näher dargestellten Autoencoders in einem eingebetteten Merkmalsvektor kodiert. Dabei wird jeder Komponente des eingebetteten Merkmalsvektors ein beispielsweise numerischer oder kategorialer Wert zugewiesen.The structure (for example number or sequence of operations called) and other features of the substructures 401 to 503 are encoded in an embedded feature vector by means of an autoencoder, not shown in detail. In this case, a numerical or categorical value, for example, is assigned to each component of the embedded feature vector.

Ein solcher, die charakteristischen Eigenschaften eines Traces 40, 50 beschreibender eingebetteter Merkmalsvektor kann mit aus dem Stand der Technik, beispielsweise aus der Veröffentlichung P. Las-Casas, G. Papakerashvili, V. Anand, und J. Mace: „Sifter: Scalable Sampling for Distributed Traces, without Feature Engineering“, in Proceedings of the ACM Symposium on Cloud Computing, Santa Cruz CA USA, Nov. 2019, S. 312-324. doi: 10.1145/3357223.3362736 sowie aus der Veröffentlichung N. Mrabah, M. Bouguessa, und R. Ksantini: „Adversarial Deep Embedded Clustering: on a better tradeoff between Feature Randomness and Feature Drift“, IEEE Trans. Knowl. Data Eng., S. 1-1, 2020, doi: 10.1 109/TKDE.2020.2997772 bekannter Verfahren ermittelt werden.Such an embedded feature vector describing the characteristic properties of a trace 40, 50 can be obtained from the prior art, for example from the publication P. Las-Casas, G. Papakerashvili, V. Anand, and J. Mace: “Sifter: Scalable Sampling for Distributed Traces, without Feature Engineering,” in Proceedings of the ACM Symposium on Cloud Computing, Santa Cruz CA USA, Nov. 2019, pp. 312-324. doi: 10.1145/3357223.3362736 and from the publication N Mrabah, M Bouguessa, and R Ksantini: "Adversarial Deep Embedded Clustering: on a better tradeoff between Feature Randomness and Feature Drift", IEEE Trans. Knowl. Data Eng., p. 1-1, 2020, doi: 10.1 109/TKDE.2020.2997772 known methods.

Mittels eines Clusterverfahrens werden die eingebetteten Merkmalsvektoren derart geclustert oder gruppiert, dass ähnliche Substrukturen 401 bis 503 gleichen Gruppen oder Clustern 610 bis 640 zugeordnet werden und zugleich verschiedene Substrukturen 401 bis 503 verschiedenen Clustern 610 bis 640 zugeordnet werden, die nachfolgend näher erläutert werden.Using a cluster method, the embedded feature vectors are clustered or grouped in such a way that similar substructures 401 to 503 are assigned to the same groups or clusters 610 to 640 and at the same time different substructures 401 to 503 are assigned to different clusters 610 to 640, which are explained in more detail below.

5A zeigt schematisch die Lage eines ersten bis dritten Clusters 610 bis 630 zu einem ersten Zeitpunkt t1 in einem Merkmalsraum 600, der zur vereinfachten Darstellung als Ebene von nur zwei Merkmalen 601, 602 aufgespannt wird. Jedes Cluster 610 bis 630 wird durch ein Clusterzentrum 611 bis 631 repräsentiert. Das Clusterzentrum 611 bis 631 ist durch den Merkmalsvektor (das heißt: denjenigen Ort im Merkmalsraum 600) bestimmt, der einem bestmöglich zu diesem Cluster 610 bis 630 passenden Trace 40, 50 zugeordnet wurde. Eine bestmögliche Zuordnung wird durch eine vorbestimmte Abstandsmetrik, beispielsweise den euklidischen Abstand im Merkmalsraum 600, ermittelt. Ein als Clusterzentrum 611 bis 631 zugeordneter Trace 40, 50 wird in einem Langzeit-Zwischenspeicher (long-term cache) abgelegt. 5A shows schematically the position of a first to third cluster 610 to 630 at a first point in time t1 in a feature space 600, which is spanned as a level of only two features 601, 602 for simplified representation. Each cluster 610-630 is represented by a cluster center 611-631. The cluster center 611 to 631 is determined by the feature vector (ie: that location in the feature space 600) which has been assigned to a trace 40, 50 that best matches this cluster 610 to 630. A best possible assignment is determined by a predetermined distance metric, for example the Euclidean distance in feature space 600 . A trace 40, 50 assigned as a cluster center 611 to 631 is stored in a long-term cache.

Das Clusterzentrum 611 bis 631 ist jeweils von einem, im vorliegenden Ausführungsbeispiel ellipsenförmigen Clusterbereich umgeben. Traces 40, 50 werden einem Cluster 610 bis 630 zugeordnet, wenn sie durch einen eingebetteten Merkmalsvektor beschrieben sind, der in dem jeweiligen Clusterbereich liegt. Optional werden zusätzlich zu dem Clusterzentrum 611 bis 631 zugeordneten Trace 40, 50 weitere, für das jeweilige Cluster 610 bis 630 repräsentative Traces 40, 50 in dem Langzeit-Zwischenspeicher abgelegt, insbesondere solche, die die Lage und Ausdehnung des jeweiligen Clusters 610 bis 630 erfassen. Beispielsweise können neben dem Clusterzentrum 611 auch Traces 40, 50 am Rand des Clusters 610 bis 630 abgelegt werden.The cluster center 611 to 631 is in each case surrounded by a cluster area which is elliptical in the present exemplary embodiment. Traces 40, 50 are assigned to a cluster 610 to 630 if they are described by an embedded feature vector that lies in the respective cluster area. In addition to the trace 40, 50 assigned to the cluster center 611 to 631, further traces 40, 50 representative of the respective cluster 610 to 630 are optionally stored in the long-term buffer, in particular those that record the position and extent of the respective cluster 610 to 630 . For example, in addition to the cluster center 611, traces 40, 50 can also be stored at the edge of the cluster 610 to 630.

Clustermerkmale derart lokal (das heißt: in der jeweiligen Laufzeitumgebung 10, 20) gebildeter Cluster 610 bis 630 werden an ein Backend der Trace-Feinanalyse 17 übermittelt. Dabei können, aufgrund der höheren Bandbreite und Verfügbarkeit, derartige Clustermerkmale von der Datencloud 10 in kürzeren Zeitabständen übermittelt werden als von dem Edge Device 20.Cluster characteristics of clusters 610 to 630 formed locally (that is to say: in the respective runtime environment 10, 20) are transmitted to a backend of the detailed trace analysis 17. Due to the higher bandwidth and availability, such cluster features can be transmitted from the data cloud 10 at shorter time intervals than from the edge device 20.

Wenn in der jeweiligen Laufzeitumgebung 10, 20 ein neu zu untersuchender Trace 40, 50 erfasst wird, so wird dieser zunächst in seine Substrukturen 401 bis 503 zerlegt. Jede der Substrukturen 401 bis 503 kann einerseits zum Clustertraining genutzt werden, das heißt:

  • basierend auf den Merkmalen der Substruktur 401 bis 503 kann die Lage eines oder mehrerer Cluster 610 bis 630 im Merkmalsraum 600 angepasst werden.
When a new trace 40, 50 to be examined is detected in the respective runtime environment 10, 20, it is first broken down into its substructures 401 to 503. Each of the substructures 401 to 503 can be used for cluster training, i.e.:
  • based on the features of the substructure 401 to 503, the location of one or more clusters 610 to 630 in the feature space 600 can be adjusted.

Dies wird schematisch durch die veränderte Lage des zweiten Clusters 620 in 5B zu einem gegenüber der Situation von 5A späteren Zeitpunkt t2 verdeutlicht.This is illustrated schematically by the changed position of the second cluster 620 in 5B to a opposite of the situation of 5A later point in time t2.

Es ist auch möglich, dass durch Traces 40, 50, die zwischen den Zeitpunkten t1 (entsprechend 5A) und t2 (entsprechend 5B) neu analysiert wurden, Cluster 610 bis 640 verschwinden (vorliegend das dritte Cluster 630) und/oder neu gebildet werden (vorliegend das vierte Cluster 640).It is also possible that traces 40, 50 between the times t1 (corresponding to 5A) and t2 (corresponding to 5B) were newly analyzed, clusters 610 to 640 disappear (here the third cluster 630) and/or are newly formed (here the fourth cluster 640).

Ferner ist es möglich, dass ein Clusterzentrum 611 bis 641 (vorliegend das dem ersten Cluster 610 zugeordnete Clusterzentrum 611) angepasst wird, weil ein zwischen den Zeitpunkten t1 und t2 neu analysierter Trace 40, 50 repräsentativer als der zum Zeitpunkt t1 als Clusterzentrum 611 zugeordnete Trace 40, 50 ist. In einem solchen Fall wird der bisher zugeordnete Trace 40, 50 durch den neu zugeordneten Trace 40, 50 in dem Langzeit-Zwischenspeicher ersetzt.It is also possible that a cluster center 611 to 641 (in this case the cluster center 611 assigned to the first cluster 610) is adjusted because a trace 40, 50 newly analyzed between the times t1 and t2 is more representative than the trace assigned as the cluster center 611 at the time t1 40, 50 is. In such a case, the previously assigned trace 40, 50 is replaced by the newly assigned trace 40, 50 in the long-term buffer.

Ein derartiger Langzeit-Zwischenspeicher zur Aufbewahrung von Traces 40, 50 kann abhängig von den in der jeweiligen Laufzeitumgebung 10, 20 verfügbaren Ressourcen konfiguriert werden, insbesondere abhängig von der verfügbaren Rechenleistung und dem verfügbaren Speicher. Vorteilhaft werden in einer als Datencloud 10 ausgebildeten Laufzeitumgebung, die geringer beschränkte Ressourcen bereitstellt, vergleichsweise mehr repräsentative Traces 40, 50 gespeichert als in einer als Edge Device 20 ausgebildeten Laufzeitumgebung, die engeren Beschränkungen unterliegt. Insbesondere kann für eine als Edge Device 20 ausgebildete Laufzeitumgebung die Anzahl der pro Cluster 610 bis 640 gespeicherten repräsentativen Traces 40, 50 durch eine vorbestimmte Obergrenze limitiert werden.Such a long-term buffer for storing traces 40, 50 can be configured depending on the resources available in the respective runtime environment 10, 20, in particular depending on the available computing power and the available memory. Comparatively more representative traces 40, 50 are advantageously stored in a runtime environment embodied as a data cloud 10, which provides fewer restricted resources, than in a runtime environment embodied as an edge device 20, which is subject to narrower restrictions. In particular, for a runtime environment configured as an edge device 20, the number of representative traces 40, 50 stored per cluster 610 to 640 can be limited by a predetermined upper limit.

Clustermerkmale, insbesondere die zugeordneten repräsentativen Traces 40, 50 werden von der jeweiligen Laufzeitumgebung 10, 20 an die Trace-Feinanalyse 17 übermittelt. In vorteilhafter Weise werden von einer Datencloud 10 erfasste Clustermerkmale in engeren Zeitabständen übermittelt als Clustermerkmale, die von einem Edge Device 20 erfasst wurden, welches stärkeren Beschränkungen in der Verfügbarkeit und in der Bandbreite einer Netzverbindung zu der Trace-Feinanalyse 17 unterliegt als die Datencloud 10. Cluster features, in particular the associated representative traces 40, 50 are transmitted from the respective runtime environment 10, 20 to the detailed trace analysis 17. Cluster features recorded by a data cloud 10 are advantageously transmitted at shorter time intervals than cluster features recorded by an edge device 20, which is subject to greater restrictions in terms of availability and bandwidth of a network connection to the detailed trace analysis 17 than the data cloud 10.

Traces 40, 50 können Softwaredienste 200 bis 233 nur einer einzigen Laufzeitumgebung 10, 20 beanspruchen. In diesem Fall entscheidet die jeweilige Laufzeitumgebung 10, 20 darüber, ob ein solcher Trace 40, 50 erfasst und anschließend in der zugeordneten Analysepipeline 1, 2 analysiert wird.Traces 40, 50 can use software services 200 to 233 in only a single runtime environment 10, 20. In this case, the respective runtime environment 10, 20 decides whether such a trace 40, 50 is recorded and then analyzed in the assigned analysis pipeline 1, 2.

Wenn Traces 40, 50 Softwaredienste 200 bis 233 von einer ersten Laufzeitumgebung 10 und mindestens einer weiteren Laufzeitumgebung 20 beanspruchen, dann wird deren Erfassung über die Dienstekommunikation 31 zwischen den beteiligten Laufzeitumgebungen 10, 20 koordiniert.If traces 40, 50 claim software services 200 to 233 from a first runtime environment 10 and at least one further runtime environment 20, then their collection is coordinated via the service communication 31 between the runtime environments 10, 20 involved.

Die Auswahl repräsentativer Traces 40, 50 erfolgt dabei autark, das heißt: innerhalb einer Laufzeitumgebung 10, 20 anhand der dort beanspruchten Softwaredienste 200 bis 233 und/oder der zu Substrukturen 401 bis 503 zusammengefassten Operationen, die von den Softwarediensten 200 bis 233 der jeweiligen Laufzeitumgebung 10, 20 beansprucht wurden.The selection of representative traces 40, 50 takes place autonomously, i.e.: within a runtime environment 10, 20 based on the software services 200 to 233 used there and/or the operations combined into substructures 401 to 503 by the software services 200 to 233 of the respective runtime environment 10, 20 were claimed.

Wählt eine Laufzeitumgebung 10 einen Trace 40, 50 als repräsentativ aus, so wird die mindestens eine weitere Laufzeitumgebung 20 über diese Auswahl informiert und angewiesen, die dort von dem ausgewählten Trace 40, 50 beanspruchten Softwaredienste 200 bis 233 zu protokollieren. Hierzu wird von der ersten Laufzeitumgebung 10 die Trace-ID des ausgewählten Traces 40, 50 übermittelt.If a runtime environment 10 selects a trace 40, 50 as representative, the at least one other runtime environment 20 is informed of this selection and instructed to log the software services 200 to 233 used there by the selected trace 40, 50. For this purpose, the first runtime environment 10 transmits the trace ID of the selected trace 40, 50.

Die Benachrichtigung der mindestens einen weiteren Laufzeitumgebung 20 erfolgt unmittelbar nach der Auswahl des Traces 40, 50, so dass dessen Protokolldaten (bezogen auf die in der weiteren Laufzeitumgebung 20 beanspruchten Softwaredienste 200 bis 233) im lokalen Trace Cache 13, 23 noch verfügbar sind.The at least one other runtime environment 20 is notified immediately after the trace 40, 50 is selected, so that its log data (related to the software services 200 to 233 used in the other runtime environment 20) is still available in the local trace cache 13, 23.

Wenn Protokolldaten eines repräsentativen Traces 40, 50 von der Laufzeitumgebung 10, 20, insbesondere von einem Edge Device 10 aus aufgrund von Beschränkungen der Verfügbarkeit oder Bandbreite (beispielsweise aufgrund einer Unterbrechung in einer Mobilfunkverbindung) nicht instantan an die Trace-Feinanalyse 17 übertragen werden können, so werden diese Protokolldaten im Langzeit-Zwischenspeicher neben den dort abgelegten repräsentativen Traces 40, 50 gespeichert, bis eine Übermittlung an die Trace-Feinanalyse 17 wieder möglich ist.If log data of a representative trace 40, 50 cannot be transmitted instantaneously to the detailed trace analysis 17 from the runtime environment 10, 20, in particular from an edge device 10, due to availability or bandwidth restrictions (e.g. due to an interruption in a mobile radio connection), this log data is stored in the long-term buffer next to the representative traces 40, 50 stored there until transmission to the detailed trace analysis 17 is possible again.

Ein Vorteil des vorgeschlagenen Verfahrens besteht darin, dass die über mobile Datenverbindungen von einem Edge Device 20 aus zu übertragende Datenmenge reduziert werden kann, indem lediglich repräsentative Traces 40, 50 sowie Clustermerkmale für Cluster 610 bis 640 an die Trace-Feinanalyse 17 übertragen werden. Insbesondere entfällt dadurch die wiederholte Übertragung von Rohdaten typischer, somit relativ häufiger Traces 40, 50, welche gleich oder sehr ähnlich sind und somit zur Detektion eines Fehlerbildes wenig beitragen können.One advantage of the proposed method is that the amount of data to be transmitted from an edge device 20 via mobile data connections can be reduced by only representative traces 40, 50 and cluster characteristics for clusters 610 to 640 are transmitted to the detailed trace analysis 17. In particular, this eliminates the repeated transmission of raw data of typical, thus relatively frequent, traces 40, 50, which are identical or very similar and can therefore make little contribution to the detection of an error pattern.

Ein weiterer Vorteil besteht darin, dass Traces 40, 50 von Ende-zu-Ende über verschiedene Laufzeitumgebungen 10, 20 hinweg erfasst werden. Ein für die Detektion eines Fehlerbildes relevanter Trace 40, 50 kann somit auch in denjenigen Substrukturen 401 bis 503 einer anderen Laufzeitumgebung 10, 20 erfasst und ausgewertet werden, in denen sich eine Auffälligkeit nicht manifestiert. Another advantage is that traces 40, 50 are captured end-to-end across different runtime environments 10, 20. A trace 40, 50 relevant to the detection of an error pattern can thus also be recorded and evaluated in those substructures 401 to 503 of another runtime environment 10, 20 in which an abnormality is not manifested.

BezugszeichenlisteReference List

11
Cloud AnalysepipelineCloud analytics pipeline
22
Edge Device AnalysepipelineEdge device analytics pipeline
1010
Datencloud, LaufzeitumgebungData cloud, runtime environment
1111
Cloud-Dienst, Softwaredienstcloud service, software service
1212
Cloud Trace Collector, ProtokollierungsaktivitätCloud Trace Collector, logging activity
1313
Cloud Trace Cache, Trace CacheCloud Trace Cache, Trace Cache
1414
Cloud Trace Analyse, Trace AnalyseCloud trace analysis, trace analysis
1515
Cloud Trace / Subtrace ClusteringCloud Trace / Subtrace Clustering
1616
Cloud Trace Sampler, Trace SamplerCloud Trace Sampler, Trace Sampler
1717
Trace-FeinanalyseTrace detailed analysis
2020
Edge Device, LaufzeitumgebungEdge device, runtime environment
2121
Edge Device-Dienst, SoftwaredienstEdge Device Service, Software Service
2222
Edge Device Trace Collector, ProtokollierungsaktivitätEdge Device Trace Collector, logging activity
2323
Edge Device Trace Cache, Trace CacheEdge Device Trace Cache, Trace Cache
2424
Edge Device Trace Analyse, Trace AnalyseEdge device trace analysis, trace analysis
2525
Edge Device Trace / Subtrace ClusteringEdge device trace / subtrace clustering
2626
Edge Device Trace Sampler, Trace Sampler Edge Device Trace Sampler, Trace Sampler
3131
Dienstekommunikationservice communication
3232
Sampler Kommunikationsampler communication
4040
erster Tracefirst trace
4141
Substruktur-Detektionsschrittsubstructure detection step
4242
Struktur-Lernschrittstructure lesson
4343
Merkmals-LernschrittTrait Tutorial
4444
Cluster-Lernschrittcluster lesson
4545
Regularisierungs-FeedbackRegularization Feedback
4646
Cluster-Zuweisungsschrittcluster assignment step
4747
Clustersequenzcluster sequence
5050
zweiter Trace second trace
101101
Remote-Tester Anwendung, Client-AnwendungRemote tester application, client application
102102
Workshop-Tester Anwendung, Client-AnwendungWorkshop tester application, client application
200200
Diagnose-Softwaredienstdiagnostic software service
210210
Hardware-Diagnose-SoftwaredienstHardware diagnostic software service
211211
Steuergeräte-Kommunikations-SoftwaredienstECU communication software service
220220
Software-Diagnose-SoftwaredienstSoftware diagnostic software service
221221
Protokollierungs-Cache-SoftwaredienstLogging Cache Software Service
222222
Metrics-Cache-SoftwaredienstMetrics Cache Software Service
223223
Trace-Cache-SoftwaredienstTrace Cache Software Service
230230
Zugriffsrechte-Verwaltungs-SoftwaredienstAccess Rights Management Software Service
231231
Certificate-Handler-SoftwaredienstCertificate Handler Software Service
232232
Token-Handler-SoftwaredienstToken Handler Software Service
233233
Certificate-Authority-Softwaredienst Certificate Authority Software Service
401 bis 403401 to 403
erste bis dritte Substrukturfirst to third substructure
501 bis 503501 to 503
erste bis dritte Substruktur first to third substructure
600600
Merkmalsraumfeature space
601, 602601, 602
Merkmalfeature
610 bis 640610 to 640
Clusterclusters
611 bis 641611 to 641
Clusterzentrum cluster center
tt
Zeitstrahltime beam

Claims (4)

Distributed Tracing Verfahren zur Erfassung von Protokolldaten mindestens eines Traces (40, 50) einer verteilten Softwareanwendung, die Softwaredienste (200 bis 233) mindestens einer ersten, unabhängig von einem Fahrzeug angeordneten Laufzeitumgebung (10) und mindestens einer weiteren, in einem Fahrzeug angeordneten Laufzeitumgebung (20) beansprucht, dadurch gekennzeichnet, dass in mindestens einer Laufzeitumgebung (10, 20) - die dort zeitlich aufeinanderfolgend abgearbeiteten Substrukturen (401 bis 503) des Traces (40, 50) identifiziert werden, - für jede Substruktur (401 bis 503) Merkmale (601, 602) ermittelt werden, - anhand der Merkmale (601, 602) mindestens ein Cluster (610 bis 640) gebildet, daraus eine zugeordnete Clusterbeschreibung ermittelt und an eine von der ersten, fahrzeugunabhängigen Laufzeitumgebung (10) angebotene Trace-Feinanalyse (17) übermittelt wird, - die der zeitlichen Abfolge der Substrukturen (401 bis 503) in dem Trace (40, 50) entsprechende Sequenz der Cluster (610 bis 640) bestimmt und - an die Trace-Feinanalyse (17) übermittelt wird.Distributed tracing Method for acquiring log data of at least one trace (40, 50) of a distributed software application, the software services (200 to 233) of at least one first runtime environment (10) arranged independently of a vehicle and at least one further runtime environment (20) arranged in a vehicle, characterized in that in at least one runtime environment (10, 20) - the chronologically consecutively processed substructures (401 to 503) of the trace (40, 50) are identified, - features (601, 602) are determined for each substructure (401 to 503), - at least one cluster ( 610 to 640) is formed, from which an assigned cluster description is determined and transmitted to a detailed trace analysis (17) offered by the first, vehicle-independent runtime environment (10), - which follows the chronological sequence of the substructures (401 to 503) in the trace (40 , 50) corresponding sequence of the clusters (610 to 640) is determined and transmitted to the detailed trace analysis (17). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass - von mindestens einer Laufzeitumgebung (10, 20) mindestens ein Trace (40, 50) als repräsentativer Trace (40, 50) ausgewählt und gegenüber jeder anderen Laufzeitumgebung (10, 20) identifiziert wird, - von jeder Laufzeitumgebung (10, 20) lokale Protokolldaten eines als repräsentativ identifizierten Traces (40, 50) erfasst und an die Trace-Feinanalyse (17) übermittelt werden, wobei - die lokalen Protokolldaten bis zur erfolgreichen Übermittlung an die Trace-Feinanalyse (17) in einem Trace Cache (13, 23) zwischengespeichert werden.procedure after claim 1 , characterized in that - from at least one runtime environment (10, 20) at least one trace (40, 50) is selected as a representative trace (40, 50) and is identified in relation to every other runtime environment (10, 20), - from every runtime environment ( 10, 20) local log data of a trace (40, 50) identified as representative is recorded and transmitted to the detailed trace analysis (17), with - the local log data being stored in a trace cache until successfully transmitted to the detailed trace analysis (17). (13, 23) are cached. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass - mittels eines Vorhersagemodells aus einer ersten Teilsequenz von Clustern (610 bis 640) eine darauffolgende zweite Teilsequenz von Clustern (610 bis 640) eines Traces (40, 50) prädiziert wird und - Cluster (610 bis 640) derart angepasst werden, dass der Vorhersagefehler verringert wird.Method according to one of the preceding claims, characterized in that - a subsequent second partial sequence of clusters (610 to 640) of a trace (40, 50) is predicted by means of a prediction model from a first partial sequence of clusters (610 to 640) and - cluster ( 610 to 640) can be adjusted in such a way that the prediction error is reduced. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Merkmale (601, 602) für eine Substruktur (401 bis 503) oder für eine Mehrzahl von zeitlich aufeinanderfolgenden Substrukturen (401 bis 503) mittels eines Autoencoders bestimmt werden.Method according to one of the preceding claims, characterized in that features (601, 602) for a substructure (401 to 503) or for a plurality of substructures (401 to 503) following one another in time are determined by means of an autoencoder.
DE102022001441.6A 2022-04-26 2022-04-26 Diagnostic method for distributed software applications in a vehicle Pending DE102022001441A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022001441.6A DE102022001441A1 (en) 2022-04-26 2022-04-26 Diagnostic method for distributed software applications in a vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022001441.6A DE102022001441A1 (en) 2022-04-26 2022-04-26 Diagnostic method for distributed software applications in a vehicle

Publications (1)

Publication Number Publication Date
DE102022001441A1 true DE102022001441A1 (en) 2022-07-07

Family

ID=82020663

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022001441.6A Pending DE102022001441A1 (en) 2022-04-26 2022-04-26 Diagnostic method for distributed software applications in a vehicle

Country Status (1)

Country Link
DE (1) DE102022001441A1 (en)

Similar Documents

Publication Publication Date Title
EP1223709B1 (en) Method and apparatus for computer aided monitoring of a telecommunications network
DE102017222616A1 (en) A method for automatically creating rules for rule-based anomaly detection in a data stream
WO2021121695A1 (en) Method, apparatus and system for detecting abnormal operating states of a device
DE102019217613A1 (en) METHOD OF DIAGNOSING AN ENGINE CONDITION AND DIAGNOSTIC MODELING METHOD FOR THEREOF
EP3684015A1 (en) Device and method for classifying data in particular for a controller area network or an automotive ethernet network
EP3149710B1 (en) Vehicle diagnosis device and data communication device
DE102012216321A1 (en) Method for designing protocol i.e. HTTP protocol, for executing network data exchange, involves determining protocol format of positions of notifications with respect to field pairs and semantic features of semantic association
EP2102723B1 (en) Method and device for the diagnosis of functions and vehicle systems
EP3620923B1 (en) Watchdog for monitoring a processor
DE102007054648A1 (en) Error identification in a computer-based network
DE102022001441A1 (en) Diagnostic method for distributed software applications in a vehicle
DE102020207449A1 (en) Method, computer program and device for processing signals
WO2020126168A1 (en) Method for the cooperation of a plurality of devices of a local network
EP1717651B1 (en) Method and system for analysing events related to operating a vehicle
DE102016015756B4 (en) Method for operating a watchdog comprising pattern recognition for recurring load situations with double evaluation
DE102016015755B4 (en) Method for operating a watchdog comprising pattern recognition for recurring load situations with a two-stage result memory
DE102018009451A1 (en) Method for checking at least one vehicle and electronic computing device
DE102018212801A1 (en) Diagnosing complex systems
EP2007070B1 (en) Method for displaying process information for a data processing facility and data processing system
EP4002172B1 (en) Method for classifying abnormal operating states of a computer network
DE102022113104A1 (en) Unique identity identifier for log message sources in vehicles
DE102004050293B3 (en) Simulating operation of network involves describing subscriber time behavior using configurable time parameters derived from time parameters of subscriber functional model run time points
DE102022200928A1 (en) A test arrangement and a method for testing a test object, and a computer program for carrying out the method
DE102022125946A1 (en) Self-configuring recording device for image data from an imaging sensor device
DE102022113110A1 (en) Conversion of log messages and filter configuration messages

Legal Events

Date Code Title Description
R230 Request for early publication