package wire;

// CollectPacket is the message sent to a remote collector server by one of
// it's clients.
message CollectPacket {
	// SpanID is the group of information which can uniquely identify the exact
	// span being collected.
	required group SpanID = 1 {
		// trace is the root ID of the tree that contains all of the spans
		// related to this one.
		required fixed64 trace = 2;

		// span is an ID that probabilistically uniquely identifies this span.
		required fixed64 span = 3;

		// parent is the ID of the parent span, if any.
		optional fixed64 parent = 4;
	}

	// Annotation is any number of annotations for the span to be collected.
	repeated group Annotation = 5 {
		// key is the annotation's key.
		required string key = 6;

		// value is the annotation's value, which may be either human or
		// machine readable, depending on the schema of the event that
		// generated it.
		optional bytes value = 7;
	}
}
