DE102022001441A1 - Diagnostic method for distributed software applications in a vehicle - Google Patents
Diagnostic method for distributed software applications in a vehicle Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software 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 und5B schematisch die Anordnung von Clustern in einem Merkmalsraum.
-
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 and5B 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.
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
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
Bevorzugt ist ein Edge Device 20 in einem in
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,
Traces 40, 50 erfassen die Protokolldaten aller Spans eines solchen Baumes unter Berücksichtigung ihrer Vorgänger - Nachfolger - Beziehungen. Traces 40, 50 sind in
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Die in
Der Hardware-Diagnose-Softwaredienst 210 ruft Operationen eines Steuergeräte-Kommunikations-Softwaredienstes 211 auf.The hardware
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
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
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
Diese Traces 40, 50 werden nachfolgend anhand von
Bei dem ersten Trace 40 wird der Diagnose-Softwaredienst 200 von dem (in
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
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
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
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
In analoger Weise wird bei dem zweiten Trace 50 der Diagnose-Softwaredienst 200 von dem (in
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
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
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
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
Wie in
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
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
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
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
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
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
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
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 401bis 503 kann die Lage eines oder mehrererCluster 610bis 630im Merkmalsraum 600 angepasst werden.
- based on the features of the
substructure 401 to 503, the location of one ormore clusters 610 to 630 in thefeature space 600 can be adjusted.
Dies wird schematisch durch die veränderte Lage des zweiten Clusters 620 in
Es ist auch möglich, dass durch Traces 40, 50, die zwischen den Zeitpunkten t1 (entsprechend
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
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
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
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.
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
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
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
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
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
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
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
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)
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) |
-
2022
- 2022-04-26 DE DE102022001441.6A patent/DE102022001441A1/en active Pending
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 |