1 Introduction
1.1 Motivating scenario
2 Distributed tracing background
2.1 Zipkin
-
traceId: same random id for all spans that belong to the same trace.
-
name: the activity or operation this span represents, e.g., an OPC UA skill or the OPC UA method name if available.
-
parentId: empty if this is the root span, otherwise parent span’s id.
-
id: uniquely identifies this span
-
kind: additional, optional information to allow interpretation of timestamp, duration, and remoteEndpoint. We discuss the implications of the possible values (CLIENT, SERVER, PRODUCER, and CONSUMER) below.
-
timestamp: an as accurate as possible measure representing the start of this span.
-
duration: how long this span lasted. The interpretation depends on the span’s kind.
-
localEndpoint: describes the networked component that created this span in terms of a serviceName, ipv4 or ipv6 address, and port number.
-
remoteEndpoint: describes the networked component to which a causal relation exists in the scope of this trace. The span’s kind determines how to interpret the remoteEndpoint.
-
annotations: capture additional events that occur between the start and end of this span. Each annotation consists of a timestamp and a string describing the event, e.g., for capturing when an error occurred, perhaps an internal state transition happened, etc.
-
tags: provide additional endpoint or vendor-specific information such as version information, query string, request parameters, etc. as a set of key-value pairs.