syntax = "proto3"; package dd_trace; // `TracePayload` can represent either an older payload or a new one message TracePayload { // hostName specifies hostname of where the agent is running. string hostName = 1; // env specifies `env` set in agent configuration. string env = 2; // Older payload fields repeated APITrace traces = 3; repeated Span transactions = 4; // Newer payload fields repeated TracerPayload tracerPayloads = 5; // tags specifies tags common in all `tracerPayloads`. map tags = 6; string agentVersion = 7; double targetTPS = 8; double errorTPS = 9; } message APITrace { uint64 traceID = 1; repeated Span spans = 2; int64 startTime = 6; int64 endTime = 7; } message TracerPayload { // containerID specifies the ID of the container where the tracer is running on. string containerID = 1; string languageName = 2; string languageVersion = 3; string tracerVersion = 4; // runtimeID specifies V4 UUID representation of a tracer session. string runtimeID = 5; repeated TraceChunk chunks = 6; string appVersion = 10; } message TraceChunk { // priority specifies sampling priority of the trace. int32 priority = 1; // origin specifies origin product ("lambda", "rum", etc.) of the trace. string origin = 2; repeated Span spans = 3; map tags = 4; bool droppedTrace = 5; } // The Span construct is the same in all circumstances message Span { // service is the name of the service with which this span is associated. string service = 1; // name is the operation name of this span. string name = 2; // resource is the resource name of this span, also sometimes called the endpoint (for web spans). string resource = 3; // traceID is the ID of the trace to which this span belongs. uint64 traceID = 4; // spanID is the ID of this span. uint64 spanID = 5; // parentID is the ID of this span's parent, or zero if this span has no parent. uint64 parentID = 6; // start is the number of nanoseconds between the Unix epoch and the beginning of this span. int64 start = 7; // duration is the time length of this span in nanoseconds. int64 duration = 8; // error is 1 if there is an error associated with this span, or 0 if there is not. int32 error = 9; // meta is a mapping from tag name to tag value for string-valued tags. map meta = 10; // metrics is a mapping from tag name to tag value for numeric-valued tags. map metrics = 11; // type is the type of the service with which this span is associated. Example values: web, db, lambda. string type = 12; // meta_struct is a registry of structured "other" data used by, e.g., AppSec. map meta_struct = 13; }