opencensus-jaeger 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +77 -0
  3. data/.gitignore +15 -0
  4. data/.gitmodules +3 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +36 -0
  7. data/.travis.yml +7 -0
  8. data/CHANGELOG.md +6 -0
  9. data/CODEOWNERS +13 -0
  10. data/CODE_OF_CONDUCT.md +43 -0
  11. data/Gemfile +3 -0
  12. data/LICENSE +201 -0
  13. data/README.md +72 -0
  14. data/Rakefile +6 -0
  15. data/bin/console +14 -0
  16. data/bin/setup +8 -0
  17. data/examples/.byebug_history +97 -0
  18. data/examples/Gemfile +9 -0
  19. data/examples/Gemfile.lock +46 -0
  20. data/examples/config.ru +15 -0
  21. data/examples/example.rb +25 -0
  22. data/lib/opencensus-jaeger.rb +4 -0
  23. data/lib/opencensus/jaeger.rb +12 -0
  24. data/lib/opencensus/jaeger/version.rb +5 -0
  25. data/lib/opencensus/logging.rb +24 -0
  26. data/lib/opencensus/trace/exporters/jaeger_driver.rb +125 -0
  27. data/lib/opencensus/trace/exporters/jaeger_driver/intermediate_transport.rb +25 -0
  28. data/lib/opencensus/trace/exporters/jaeger_driver/udp_sender.rb +28 -0
  29. data/lib/opencensus/trace/exporters/jaeger_driver/udp_transport.rb +43 -0
  30. data/lib/opencensus/trace/exporters/jaeger_exporter.rb +108 -0
  31. data/opencensus-jaeger.gemspec +45 -0
  32. data/scripts/publish.rb +7 -0
  33. data/scripts/rename_collectors.rb +88 -0
  34. data/thrift/agent.thrift +27 -0
  35. data/thrift/gen-rb/jaeger/thrift/agent.rb +117 -0
  36. data/thrift/gen-rb/jaeger/thrift/agent_constants.rb +13 -0
  37. data/thrift/gen-rb/jaeger/thrift/agent_types.rb +14 -0
  38. data/thrift/gen-rb/jaeger/thrift/collector.rb +82 -0
  39. data/thrift/gen-rb/jaeger/thrift/jaeger_constants.rb +13 -0
  40. data/thrift/gen-rb/jaeger/thrift/jaeger_types.rb +213 -0
  41. data/thrift/gen-rb/zipkin/zipkin_collector.rb +80 -0
  42. data/thrift/gen-rb/zipkin/zipkincore_constants.rb +43 -0
  43. data/thrift/gen-rb/zipkin/zipkincore_types.rb +223 -0
  44. data/thrift/jaeger.thrift +86 -0
  45. data/thrift/zipkincore.thrift +345 -0
  46. metadata +161 -0
@@ -0,0 +1,14 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'jaeger/thrift/jaeger_types'
9
+ require 'zipkin/zipkincore_types'
10
+
11
+ module Jaeger
12
+ module Thrift
13
+ end
14
+ end
@@ -0,0 +1,82 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'jaeger/thrift/jaeger_types'
9
+
10
+ module Jaeger
11
+ module Thrift
12
+ module Collector
13
+ class Client
14
+ include ::Thrift::Client
15
+
16
+ def submitBatches(batches)
17
+ send_submitBatches(batches)
18
+ return recv_submitBatches()
19
+ end
20
+
21
+ def send_submitBatches(batches)
22
+ send_message('submitBatches', SubmitBatches_args, :batches => batches)
23
+ end
24
+
25
+ def recv_submitBatches()
26
+ result = receive_message(SubmitBatches_result)
27
+ return result.success unless result.success.nil?
28
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'submitBatches failed: unknown result')
29
+ end
30
+
31
+ end
32
+
33
+ class Processor
34
+ include ::Thrift::Processor
35
+
36
+ def process_submitBatches(seqid, iprot, oprot)
37
+ args = read_args(iprot, SubmitBatches_args)
38
+ result = SubmitBatches_result.new()
39
+ result.success = @handler.submitBatches(args.batches)
40
+ write_result(result, oprot, 'submitBatches', seqid)
41
+ end
42
+
43
+ end
44
+
45
+ # HELPER FUNCTIONS AND STRUCTURES
46
+
47
+ class SubmitBatches_args
48
+ include ::Thrift::Struct, ::Thrift::Struct_Union
49
+ BATCHES = 1
50
+
51
+ FIELDS = {
52
+ BATCHES => {:type => ::Thrift::Types::LIST, :name => 'batches', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Batch}}
53
+ }
54
+
55
+ def struct_fields; FIELDS; end
56
+
57
+ def validate
58
+ end
59
+
60
+ ::Thrift::Struct.generate_accessors self
61
+ end
62
+
63
+ class SubmitBatches_result
64
+ include ::Thrift::Struct, ::Thrift::Struct_Union
65
+ SUCCESS = 0
66
+
67
+ FIELDS = {
68
+ SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::BatchSubmitResponse}}
69
+ }
70
+
71
+ def struct_fields; FIELDS; end
72
+
73
+ def validate
74
+ end
75
+
76
+ ::Thrift::Struct.generate_accessors self
77
+ end
78
+
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,13 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'jaeger/thrift/jaeger_types'
9
+
10
+ module Jaeger
11
+ module Thrift
12
+ end
13
+ end
@@ -0,0 +1,213 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+
9
+ module Jaeger
10
+ module Thrift
11
+ module TagType
12
+ STRING = 0
13
+ DOUBLE = 1
14
+ BOOL = 2
15
+ LONG = 3
16
+ BINARY = 4
17
+ VALUE_MAP = {0 => "STRING", 1 => "DOUBLE", 2 => "BOOL", 3 => "LONG", 4 => "BINARY"}
18
+ VALID_VALUES = Set.new([STRING, DOUBLE, BOOL, LONG, BINARY]).freeze
19
+ end
20
+
21
+ module SpanRefType
22
+ CHILD_OF = 0
23
+ FOLLOWS_FROM = 1
24
+ VALUE_MAP = {0 => "CHILD_OF", 1 => "FOLLOWS_FROM"}
25
+ VALID_VALUES = Set.new([CHILD_OF, FOLLOWS_FROM]).freeze
26
+ end
27
+
28
+ class Tag
29
+ include ::Thrift::Struct, ::Thrift::Struct_Union
30
+ KEY = 1
31
+ VTYPE = 2
32
+ VSTR = 3
33
+ VDOUBLE = 4
34
+ VBOOL = 5
35
+ VLONG = 6
36
+ VBINARY = 7
37
+
38
+ FIELDS = {
39
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'},
40
+ VTYPE => {:type => ::Thrift::Types::I32, :name => 'vType', :enum_class => ::Jaeger::Thrift::TagType},
41
+ VSTR => {:type => ::Thrift::Types::STRING, :name => 'vStr', :optional => true},
42
+ VDOUBLE => {:type => ::Thrift::Types::DOUBLE, :name => 'vDouble', :optional => true},
43
+ VBOOL => {:type => ::Thrift::Types::BOOL, :name => 'vBool', :optional => true},
44
+ VLONG => {:type => ::Thrift::Types::I64, :name => 'vLong', :optional => true},
45
+ VBINARY => {:type => ::Thrift::Types::STRING, :name => 'vBinary', :binary => true, :optional => true}
46
+ }
47
+
48
+ def struct_fields; FIELDS; end
49
+
50
+ def validate
51
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field key is unset!') unless @key
52
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field vType is unset!') unless @vType
53
+ unless @vType.nil? || ::Jaeger::Thrift::TagType::VALID_VALUES.include?(@vType)
54
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field vType!')
55
+ end
56
+ end
57
+
58
+ ::Thrift::Struct.generate_accessors self
59
+ end
60
+
61
+ class Log
62
+ include ::Thrift::Struct, ::Thrift::Struct_Union
63
+ TIMESTAMP = 1
64
+ LOG_FIELDS = 2
65
+
66
+ FIELDS = {
67
+ TIMESTAMP => {:type => ::Thrift::Types::I64, :name => 'timestamp'},
68
+ LOG_FIELDS => {:type => ::Thrift::Types::LIST, :name => 'fields', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Tag}}
69
+ }
70
+
71
+ def struct_fields; FIELDS; end
72
+
73
+ def validate
74
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field timestamp is unset!') unless @timestamp
75
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field fields is unset!') unless @fields
76
+ end
77
+
78
+ ::Thrift::Struct.generate_accessors self
79
+ end
80
+
81
+ class SpanRef
82
+ include ::Thrift::Struct, ::Thrift::Struct_Union
83
+ REFTYPE = 1
84
+ TRACEIDLOW = 2
85
+ TRACEIDHIGH = 3
86
+ SPANID = 4
87
+
88
+ FIELDS = {
89
+ REFTYPE => {:type => ::Thrift::Types::I32, :name => 'refType', :enum_class => ::Jaeger::Thrift::SpanRefType},
90
+ TRACEIDLOW => {:type => ::Thrift::Types::I64, :name => 'traceIdLow'},
91
+ TRACEIDHIGH => {:type => ::Thrift::Types::I64, :name => 'traceIdHigh'},
92
+ SPANID => {:type => ::Thrift::Types::I64, :name => 'spanId'}
93
+ }
94
+
95
+ def struct_fields; FIELDS; end
96
+
97
+ def validate
98
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field refType is unset!') unless @refType
99
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field traceIdLow is unset!') unless @traceIdLow
100
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field traceIdHigh is unset!') unless @traceIdHigh
101
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field spanId is unset!') unless @spanId
102
+ unless @refType.nil? || ::Jaeger::Thrift::SpanRefType::VALID_VALUES.include?(@refType)
103
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field refType!')
104
+ end
105
+ end
106
+
107
+ ::Thrift::Struct.generate_accessors self
108
+ end
109
+
110
+ class Span
111
+ include ::Thrift::Struct, ::Thrift::Struct_Union
112
+ TRACEIDLOW = 1
113
+ TRACEIDHIGH = 2
114
+ SPANID = 3
115
+ PARENTSPANID = 4
116
+ OPERATIONNAME = 5
117
+ REFERENCES = 6
118
+ FLAGS = 7
119
+ STARTTIME = 8
120
+ DURATION = 9
121
+ TAGS = 10
122
+ LOGS = 11
123
+ INCOMPLETE = 12
124
+
125
+ FIELDS = {
126
+ TRACEIDLOW => {:type => ::Thrift::Types::I64, :name => 'traceIdLow'},
127
+ TRACEIDHIGH => {:type => ::Thrift::Types::I64, :name => 'traceIdHigh'},
128
+ SPANID => {:type => ::Thrift::Types::I64, :name => 'spanId'},
129
+ PARENTSPANID => {:type => ::Thrift::Types::I64, :name => 'parentSpanId'},
130
+ OPERATIONNAME => {:type => ::Thrift::Types::STRING, :name => 'operationName'},
131
+ REFERENCES => {:type => ::Thrift::Types::LIST, :name => 'references', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::SpanRef}, :optional => true},
132
+ FLAGS => {:type => ::Thrift::Types::I32, :name => 'flags'},
133
+ STARTTIME => {:type => ::Thrift::Types::I64, :name => 'startTime'},
134
+ DURATION => {:type => ::Thrift::Types::I64, :name => 'duration'},
135
+ TAGS => {:type => ::Thrift::Types::LIST, :name => 'tags', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Tag}, :optional => true},
136
+ LOGS => {:type => ::Thrift::Types::LIST, :name => 'logs', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Log}, :optional => true},
137
+ INCOMPLETE => {:type => ::Thrift::Types::BOOL, :name => 'incomplete', :optional => true}
138
+ }
139
+
140
+ def struct_fields; FIELDS; end
141
+
142
+ def validate
143
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field traceIdLow is unset!') unless @traceIdLow
144
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field traceIdHigh is unset!') unless @traceIdHigh
145
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field spanId is unset!') unless @spanId
146
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field parentSpanId is unset!') unless @parentSpanId
147
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field operationName is unset!') unless @operationName
148
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field flags is unset!') unless @flags
149
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field startTime is unset!') unless @startTime
150
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field duration is unset!') unless @duration
151
+ end
152
+
153
+ ::Thrift::Struct.generate_accessors self
154
+ end
155
+
156
+ class Process
157
+ include ::Thrift::Struct, ::Thrift::Struct_Union
158
+ SERVICENAME = 1
159
+ TAGS = 2
160
+
161
+ FIELDS = {
162
+ SERVICENAME => {:type => ::Thrift::Types::STRING, :name => 'serviceName'},
163
+ TAGS => {:type => ::Thrift::Types::LIST, :name => 'tags', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Tag}, :optional => true}
164
+ }
165
+
166
+ def struct_fields; FIELDS; end
167
+
168
+ def validate
169
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field serviceName is unset!') unless @serviceName
170
+ end
171
+
172
+ ::Thrift::Struct.generate_accessors self
173
+ end
174
+
175
+ class Batch
176
+ include ::Thrift::Struct, ::Thrift::Struct_Union
177
+ PROCESS = 1
178
+ SPANS = 2
179
+
180
+ FIELDS = {
181
+ PROCESS => {:type => ::Thrift::Types::STRUCT, :name => 'process', :class => ::Jaeger::Thrift::Process},
182
+ SPANS => {:type => ::Thrift::Types::LIST, :name => 'spans', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Jaeger::Thrift::Span}}
183
+ }
184
+
185
+ def struct_fields; FIELDS; end
186
+
187
+ def validate
188
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field process is unset!') unless @process
189
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field spans is unset!') unless @spans
190
+ end
191
+
192
+ ::Thrift::Struct.generate_accessors self
193
+ end
194
+
195
+ class BatchSubmitResponse
196
+ include ::Thrift::Struct, ::Thrift::Struct_Union
197
+ OK = 1
198
+
199
+ FIELDS = {
200
+ OK => {:type => ::Thrift::Types::BOOL, :name => 'ok'}
201
+ }
202
+
203
+ def struct_fields; FIELDS; end
204
+
205
+ def validate
206
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field ok is unset!') if @ok.nil?
207
+ end
208
+
209
+ ::Thrift::Struct.generate_accessors self
210
+ end
211
+
212
+ end
213
+ end
@@ -0,0 +1,80 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'zipkin/zipkincore_types'
9
+
10
+ module Zipkin
11
+ module ZipkinCollector
12
+ class Client
13
+ include ::Thrift::Client
14
+
15
+ def submitZipkinBatch(spans)
16
+ send_submitZipkinBatch(spans)
17
+ return recv_submitZipkinBatch()
18
+ end
19
+
20
+ def send_submitZipkinBatch(spans)
21
+ send_message('submitZipkinBatch', SubmitZipkinBatch_args, :spans => spans)
22
+ end
23
+
24
+ def recv_submitZipkinBatch()
25
+ result = receive_message(SubmitZipkinBatch_result)
26
+ return result.success unless result.success.nil?
27
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'submitZipkinBatch failed: unknown result')
28
+ end
29
+
30
+ end
31
+
32
+ class Processor
33
+ include ::Thrift::Processor
34
+
35
+ def process_submitZipkinBatch(seqid, iprot, oprot)
36
+ args = read_args(iprot, SubmitZipkinBatch_args)
37
+ result = SubmitZipkinBatch_result.new()
38
+ result.success = @handler.submitZipkinBatch(args.spans)
39
+ write_result(result, oprot, 'submitZipkinBatch', seqid)
40
+ end
41
+
42
+ end
43
+
44
+ # HELPER FUNCTIONS AND STRUCTURES
45
+
46
+ class SubmitZipkinBatch_args
47
+ include ::Thrift::Struct, ::Thrift::Struct_Union
48
+ SPANS = 1
49
+
50
+ FIELDS = {
51
+ SPANS => {:type => ::Thrift::Types::LIST, :name => 'spans', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Zipkin::Span}}
52
+ }
53
+
54
+ def struct_fields; FIELDS; end
55
+
56
+ def validate
57
+ end
58
+
59
+ ::Thrift::Struct.generate_accessors self
60
+ end
61
+
62
+ class SubmitZipkinBatch_result
63
+ include ::Thrift::Struct, ::Thrift::Struct_Union
64
+ SUCCESS = 0
65
+
66
+ FIELDS = {
67
+ SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Zipkin::Response}}
68
+ }
69
+
70
+ def struct_fields; FIELDS; end
71
+
72
+ def validate
73
+ end
74
+
75
+ ::Thrift::Struct.generate_accessors self
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -0,0 +1,43 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.11.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'zipkin/zipkincore_types'
9
+
10
+ module Zipkin
11
+ CLIENT_SEND = %q"cs"
12
+
13
+ CLIENT_RECV = %q"cr"
14
+
15
+ SERVER_SEND = %q"ss"
16
+
17
+ SERVER_RECV = %q"sr"
18
+
19
+ MESSAGE_SEND = %q"ms"
20
+
21
+ MESSAGE_RECV = %q"mr"
22
+
23
+ WIRE_SEND = %q"ws"
24
+
25
+ WIRE_RECV = %q"wr"
26
+
27
+ CLIENT_SEND_FRAGMENT = %q"csf"
28
+
29
+ CLIENT_RECV_FRAGMENT = %q"crf"
30
+
31
+ SERVER_SEND_FRAGMENT = %q"ssf"
32
+
33
+ SERVER_RECV_FRAGMENT = %q"srf"
34
+
35
+ LOCAL_COMPONENT = %q"lc"
36
+
37
+ CLIENT_ADDR = %q"ca"
38
+
39
+ SERVER_ADDR = %q"sa"
40
+
41
+ MESSAGE_ADDR = %q"ma"
42
+
43
+ end