]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/jaeger-client-cpp/idl/thrift/jaeger.thrift
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / jaeger-client-cpp / idl / thrift / jaeger.thrift
1 # Copyright (c) 2016 Uber Technologies, Inc.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 namespace cpp jaegertracing.thrift
16 namespace java io.jaegertracing.thriftjava
17 namespace php Jaeger.Thrift
18 namespace netcore Jaeger.Thrift
19
20 # TagType denotes the type of a Tag's value.
21 enum TagType { STRING, DOUBLE, BOOL, LONG, BINARY }
22
23 # Tag is a basic strongly typed key/value pair. It has been flattened to reduce the use of pointers in golang
24 struct Tag {
25 1: required string key
26 2: required TagType vType
27 3: optional string vStr
28 4: optional double vDouble
29 5: optional bool vBool
30 6: optional i64 vLong
31 7: optional binary vBinary
32 }
33
34 # Log is a timed even with an arbitrary set of tags.
35 struct Log {
36 1: required i64 timestamp
37 2: required list<Tag> fields
38 }
39
40 enum SpanRefType { CHILD_OF, FOLLOWS_FROM }
41
42 # SpanRef describes causal relationship of the current span to another span (e.g. 'child-of')
43 struct SpanRef {
44 1: required SpanRefType refType
45 2: required i64 traceIdLow
46 3: required i64 traceIdHigh
47 4: required i64 spanId
48 }
49
50 # Span represents a named unit of work performed by a service.
51 struct Span {
52 1: required i64 traceIdLow # the least significant 64 bits of a traceID
53 2: required i64 traceIdHigh # the most significant 64 bits of a traceID; 0 when only 64bit IDs are used
54 3: required i64 spanId # unique span id (only unique within a given trace)
55 4: required i64 parentSpanId # since nearly all spans will have parents spans, CHILD_OF refs do not have to be explicit
56 5: required string operationName
57 6: optional list<SpanRef> references # causal references to other spans
58 7: required i32 flags # a bit field used to propagate sampling decisions. 1 signifies a SAMPLED span, 2 signifies a DEBUG span.
59 8: required i64 startTime
60 9: required i64 duration
61 10: optional list<Tag> tags
62 11: optional list<Log> logs
63 }
64
65 # Process describes the traced process/service that emits spans.
66 struct Process {
67 1: required string serviceName
68 2: optional list<Tag> tags
69 }
70
71 # Batch is a collection of spans reported out of process.
72 struct Batch {
73 1: required Process process
74 2: required list<Span> spans
75 }
76
77 # BatchSubmitResponse is the response on submitting a batch.
78 struct BatchSubmitResponse {
79 1: required bool ok # The Collector's client is expected to only log (or emit a counter) when not ok equals false
80 }
81
82 service Collector {
83 list<BatchSubmitResponse> submitBatches(1: list<Batch> batches)
84 }