opentracing 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +16 -0
- data/.gitignore +50 -0
- data/.rubocop.yml +1156 -0
- data/.travis.yml +5 -0
- data/Gemfile +3 -13
- data/LICENSE +201 -20
- data/README.md +115 -5
- data/Rakefile +6 -45
- data/bin/console +6 -0
- data/bin/setup +6 -0
- data/lib/opentracing.rb +24 -0
- data/lib/opentracing/carrier.rb +25 -0
- data/lib/opentracing/span.rb +61 -0
- data/lib/opentracing/span_context.rb +15 -0
- data/lib/opentracing/tracer.rb +42 -0
- data/lib/opentracing/version.rb +3 -0
- data/opentracing.gemspec +23 -56
- metadata +41 -34
- data/.document +0 -5
- data/Gemfile.lock +0 -81
- data/VERSION +0 -1
- data/test/helper.rb +0 -34
- data/test/test_opentracing.rb +0 -7
@@ -0,0 +1,25 @@
|
|
1
|
+
module OpenTracing
|
2
|
+
# Carriers are used for inject and extract operations. A carrier should be a
|
3
|
+
# Hash or hash-like object. At a minimum, it should implement `[]`, `[]=`, and
|
4
|
+
# `each` shown here.
|
5
|
+
class Carrier
|
6
|
+
# [] retrieves a value by the given key
|
7
|
+
# @param key [String] key to retrieve the value
|
8
|
+
# @return [String] the desired value
|
9
|
+
def [](key)
|
10
|
+
end
|
11
|
+
|
12
|
+
# []= sets the value for the given key
|
13
|
+
# @param key [String] key to set
|
14
|
+
# @param value [String] value to set
|
15
|
+
def []=(key, value)
|
16
|
+
end
|
17
|
+
|
18
|
+
# each iterates over every key-value pair in the carrier
|
19
|
+
# @yield [key, value]
|
20
|
+
# @yieldparam key [String] the key of the tuple
|
21
|
+
# @yieldparam value [String] the value of the tuple
|
22
|
+
def each(&block)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module OpenTracing
|
2
|
+
# Span represents an OpenTracer Span
|
3
|
+
#
|
4
|
+
# See http://www.opentracing.io for more information.
|
5
|
+
class Span
|
6
|
+
NOOP_INSTANCE = Span.new.freeze
|
7
|
+
|
8
|
+
# Set the name of the operation
|
9
|
+
def operation_name=(name)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Span Context
|
13
|
+
def context
|
14
|
+
SpanContext::NOOP_INSTANCE
|
15
|
+
end
|
16
|
+
|
17
|
+
# Creates a new {Span}
|
18
|
+
#
|
19
|
+
# @param tracer [Tracer] the tracer that created this span
|
20
|
+
# @param context [SpanContext] the context of the span
|
21
|
+
# @return [Span] a new Span
|
22
|
+
def initialize(tracer:, context:)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Set a tag value on this span
|
26
|
+
# @param key [String] the key of the tag
|
27
|
+
# @param value [String, Numeric, Boolean] the value of the tag. If it's not
|
28
|
+
# a String, Numeric, or Boolean it will be encoded with to_s
|
29
|
+
def set_tag(key, value)
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
# Set a baggage item on the span
|
34
|
+
# @param key [String] the key of the baggage item
|
35
|
+
# @param value [String] the value of the baggage item
|
36
|
+
def set_baggage_item(key, value)
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get a baggage item
|
41
|
+
# @param key [String] the key of the baggage item
|
42
|
+
# @return Value of the baggage item
|
43
|
+
def get_baggage_item(key)
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
47
|
+
# Add a log entry to this span
|
48
|
+
# @param event [String] event name for the log
|
49
|
+
# @param timestamp [Time] time of the log
|
50
|
+
# @param fields [Hash] Additional information to log
|
51
|
+
def log(event: nil, timestamp: Time.now, **fields)
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
|
55
|
+
# Finish the {Span}
|
56
|
+
# @param end_time [Time] custom end time, if not now
|
57
|
+
def finish(end_time: Time.now)
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module OpenTracing
|
2
|
+
# SpanContext holds the data for a span that gets inherited to child spans
|
3
|
+
class SpanContext
|
4
|
+
NOOP_INSTANCE = SpanContext.new.freeze
|
5
|
+
|
6
|
+
attr_reader :baggage
|
7
|
+
|
8
|
+
# Create a new SpanContext
|
9
|
+
# @param id the ID of the Context
|
10
|
+
# @param trace_id the ID of the current trace
|
11
|
+
# @param baggage baggage
|
12
|
+
def initialize(baggage: {})
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module OpenTracing
|
2
|
+
class Tracer
|
3
|
+
# Start a new span
|
4
|
+
# @param operation_name [String] The name of the operation represented by the span
|
5
|
+
# @param child_of [Span] A span to be used as the ChildOf reference
|
6
|
+
# @param start_time [Time] the start time of the span
|
7
|
+
# @param tags [Hash] Starting tags for the span
|
8
|
+
def start_span(operation_name, child_of: nil, start_time: nil, tags: nil)
|
9
|
+
Span::NOOP_INSTANCE
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
# Inject a span into the given carrier
|
14
|
+
# @param span_context [SpanContext]
|
15
|
+
# @param format [OpenTracing::FORMAT_TEXT_MAP, OpenTracing::FORMAT_BINARY, OpenTracing::FORMAT_RACK]
|
16
|
+
# @param carrier [Carrier]
|
17
|
+
def inject(span_context, format, carrier)
|
18
|
+
case format
|
19
|
+
when OpenTracing::FORMAT_TEXT_MAP, OpenTracing::FORMAT_BINARY, OpenTracing::FORMAT_RACK
|
20
|
+
return nil
|
21
|
+
else
|
22
|
+
warn 'Unknown inject format'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Extract a span from a carrier
|
27
|
+
# @param operation_name [String]
|
28
|
+
# @param format [OpenTracing::FORMAT_TEXT_MAP, OpenTracing::FORMAT_BINARY, OpenTracing::FORMAT_RACK]
|
29
|
+
# @param carrier [Carrier]
|
30
|
+
# @param tracer [Tracer] the tracer the span will be attached to (for finish)
|
31
|
+
# @return [Span]
|
32
|
+
def extract(operation_name, format, carrier)
|
33
|
+
case format
|
34
|
+
when OpenTracing::FORMAT_TEXT_MAP, OpenTracing::FORMAT_BINARY, OpenTracing::FORMAT_RACK
|
35
|
+
return Span::NOOP_INSTANCE
|
36
|
+
else
|
37
|
+
warn 'Unknown extract format'
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/opentracing.gemspec
CHANGED
@@ -1,61 +1,28 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
# stub: opentracing ruby lib
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'opentracing/version'
|
6
5
|
|
7
|
-
Gem::Specification.new do |
|
8
|
-
|
9
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "opentracing"
|
8
|
+
spec.version = OpenTracing::VERSION
|
9
|
+
spec.authors = ["ngauthier", "bcronin", "bensigelman"]
|
10
|
+
spec.email = ["info@opentracing.io"]
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.date = "2016-12-12"
|
15
|
-
s.description = "OpenTracing support for Ruby frameworks"
|
16
|
-
s.email = "mitko.kostov@gmail.com"
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"LICENSE",
|
19
|
-
"README.md"
|
20
|
-
]
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
"Gemfile",
|
24
|
-
"Gemfile.lock",
|
25
|
-
"LICENSE",
|
26
|
-
"README.md",
|
27
|
-
"Rakefile",
|
28
|
-
"lib/opentracing.rb",
|
29
|
-
"test/helper.rb",
|
30
|
-
"test/test_opentracing.rb"
|
31
|
-
]
|
32
|
-
s.homepage = "http://github.com/mytrile/opentracing"
|
33
|
-
s.licenses = ["MIT"]
|
34
|
-
s.rubygems_version = "2.4.8"
|
35
|
-
s.summary = "OpenTracing support for Ruby frameworks"
|
12
|
+
spec.summary = %q{OpenTracing Ruby Platform API}
|
13
|
+
spec.homepage = "https://github.com/opentracing/opentracing-ruby"
|
14
|
+
spec.license = "MIT"
|
36
15
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
41
|
-
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
42
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
43
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
44
|
-
s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
|
45
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
46
|
-
else
|
47
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
48
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
49
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
50
|
-
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
51
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
52
|
-
end
|
53
|
-
else
|
54
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
55
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
56
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
57
|
-
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
58
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
59
18
|
end
|
60
|
-
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
61
22
|
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
26
|
+
spec.add_development_dependency "simplecov"
|
27
|
+
spec.add_development_dependency "simplecov-console"
|
28
|
+
end
|
metadata
CHANGED
@@ -1,73 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentracing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- ngauthier
|
8
|
+
- bcronin
|
9
|
+
- bensigelman
|
8
10
|
autorequire:
|
9
|
-
bindir:
|
11
|
+
bindir: exe
|
10
12
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
13
|
+
date: 2016-12-20 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
16
|
+
name: bundler
|
15
17
|
requirement: !ruby/object:Gem::Requirement
|
16
18
|
requirements:
|
17
|
-
- - "
|
19
|
+
- - "~>"
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
21
|
+
version: '1.13'
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
|
-
- - "
|
26
|
+
- - "~>"
|
25
27
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
28
|
+
version: '1.13'
|
27
29
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
30
|
+
name: rake
|
29
31
|
requirement: !ruby/object:Gem::Requirement
|
30
32
|
requirements:
|
31
33
|
- - "~>"
|
32
34
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
35
|
+
version: '10.0'
|
34
36
|
type: :development
|
35
37
|
prerelease: false
|
36
38
|
version_requirements: !ruby/object:Gem::Requirement
|
37
39
|
requirements:
|
38
40
|
- - "~>"
|
39
41
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
42
|
+
version: '10.0'
|
41
43
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
44
|
+
name: minitest
|
43
45
|
requirement: !ruby/object:Gem::Requirement
|
44
46
|
requirements:
|
45
47
|
- - "~>"
|
46
48
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
49
|
+
version: '5.0'
|
48
50
|
type: :development
|
49
51
|
prerelease: false
|
50
52
|
version_requirements: !ruby/object:Gem::Requirement
|
51
53
|
requirements:
|
52
54
|
- - "~>"
|
53
55
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
56
|
+
version: '5.0'
|
55
57
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
58
|
+
name: simplecov
|
57
59
|
requirement: !ruby/object:Gem::Requirement
|
58
60
|
requirements:
|
59
|
-
- - "
|
61
|
+
- - ">="
|
60
62
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
63
|
+
version: '0'
|
62
64
|
type: :development
|
63
65
|
prerelease: false
|
64
66
|
version_requirements: !ruby/object:Gem::Requirement
|
65
67
|
requirements:
|
66
|
-
- - "
|
68
|
+
- - ">="
|
67
69
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
70
|
+
version: '0'
|
69
71
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: simplecov
|
72
|
+
name: simplecov-console
|
71
73
|
requirement: !ruby/object:Gem::Requirement
|
72
74
|
requirements:
|
73
75
|
- - ">="
|
@@ -80,26 +82,31 @@ dependencies:
|
|
80
82
|
- - ">="
|
81
83
|
- !ruby/object:Gem::Version
|
82
84
|
version: '0'
|
83
|
-
description:
|
84
|
-
email:
|
85
|
+
description:
|
86
|
+
email:
|
87
|
+
- info@opentracing.io
|
85
88
|
executables: []
|
86
89
|
extensions: []
|
87
|
-
extra_rdoc_files:
|
88
|
-
- LICENSE
|
89
|
-
- README.md
|
90
|
+
extra_rdoc_files: []
|
90
91
|
files:
|
91
|
-
- ".
|
92
|
+
- ".codeclimate.yml"
|
93
|
+
- ".gitignore"
|
94
|
+
- ".rubocop.yml"
|
95
|
+
- ".travis.yml"
|
92
96
|
- Gemfile
|
93
|
-
- Gemfile.lock
|
94
97
|
- LICENSE
|
95
98
|
- README.md
|
96
99
|
- Rakefile
|
97
|
-
-
|
100
|
+
- bin/console
|
101
|
+
- bin/setup
|
98
102
|
- lib/opentracing.rb
|
103
|
+
- lib/opentracing/carrier.rb
|
104
|
+
- lib/opentracing/span.rb
|
105
|
+
- lib/opentracing/span_context.rb
|
106
|
+
- lib/opentracing/tracer.rb
|
107
|
+
- lib/opentracing/version.rb
|
99
108
|
- opentracing.gemspec
|
100
|
-
|
101
|
-
- test/test_opentracing.rb
|
102
|
-
homepage: http://github.com/mytrile/opentracing
|
109
|
+
homepage: https://github.com/opentracing/opentracing-ruby
|
103
110
|
licenses:
|
104
111
|
- MIT
|
105
112
|
metadata: {}
|
@@ -119,8 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
126
|
version: '0'
|
120
127
|
requirements: []
|
121
128
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
129
|
+
rubygems_version: 2.5.1
|
123
130
|
signing_key:
|
124
131
|
specification_version: 4
|
125
|
-
summary: OpenTracing
|
132
|
+
summary: OpenTracing Ruby Platform API
|
126
133
|
test_files: []
|
data/.document
DELETED
data/Gemfile.lock
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: https://rubygems.org/
|
3
|
-
specs:
|
4
|
-
activesupport (5.0.0.1)
|
5
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
6
|
-
i18n (~> 0.7)
|
7
|
-
minitest (~> 5.1)
|
8
|
-
tzinfo (~> 1.1)
|
9
|
-
addressable (2.4.0)
|
10
|
-
builder (3.2.2)
|
11
|
-
concurrent-ruby (1.0.2)
|
12
|
-
descendants_tracker (0.0.4)
|
13
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
14
|
-
docile (1.1.5)
|
15
|
-
faraday (0.9.2)
|
16
|
-
multipart-post (>= 1.2, < 3)
|
17
|
-
git (1.3.0)
|
18
|
-
github_api (0.14.5)
|
19
|
-
addressable (~> 2.4.0)
|
20
|
-
descendants_tracker (~> 0.0.4)
|
21
|
-
faraday (~> 0.8, < 0.10)
|
22
|
-
hashie (>= 3.4)
|
23
|
-
oauth2 (~> 1.0)
|
24
|
-
hashie (3.4.6)
|
25
|
-
highline (1.7.8)
|
26
|
-
i18n (0.7.0)
|
27
|
-
jeweler (2.0.1)
|
28
|
-
builder
|
29
|
-
bundler (>= 1.0)
|
30
|
-
git (>= 1.2.5)
|
31
|
-
github_api
|
32
|
-
highline (>= 1.6.15)
|
33
|
-
nokogiri (>= 1.5.10)
|
34
|
-
rake
|
35
|
-
rdoc
|
36
|
-
json (1.8.3)
|
37
|
-
jwt (1.5.6)
|
38
|
-
mini_portile2 (2.1.0)
|
39
|
-
minitest (5.10.1)
|
40
|
-
multi_json (1.12.1)
|
41
|
-
multi_xml (0.6.0)
|
42
|
-
multipart-post (2.0.0)
|
43
|
-
nokogiri (1.6.8.1)
|
44
|
-
mini_portile2 (~> 2.1.0)
|
45
|
-
oauth2 (1.2.0)
|
46
|
-
faraday (>= 0.8, < 0.10)
|
47
|
-
jwt (~> 1.0)
|
48
|
-
multi_json (~> 1.3)
|
49
|
-
multi_xml (~> 0.5)
|
50
|
-
rack (>= 1.2, < 3)
|
51
|
-
rack (2.0.1)
|
52
|
-
rake (12.0.0)
|
53
|
-
rdoc (3.12.2)
|
54
|
-
json (~> 1.4)
|
55
|
-
shoulda (3.5.0)
|
56
|
-
shoulda-context (~> 1.0, >= 1.0.1)
|
57
|
-
shoulda-matchers (>= 1.4.1, < 3.0)
|
58
|
-
shoulda-context (1.2.2)
|
59
|
-
shoulda-matchers (2.8.0)
|
60
|
-
activesupport (>= 3.0.0)
|
61
|
-
simplecov (0.12.0)
|
62
|
-
docile (~> 1.1.0)
|
63
|
-
json (>= 1.8, < 3)
|
64
|
-
simplecov-html (~> 0.10.0)
|
65
|
-
simplecov-html (0.10.0)
|
66
|
-
thread_safe (0.3.5)
|
67
|
-
tzinfo (1.2.2)
|
68
|
-
thread_safe (~> 0.1)
|
69
|
-
|
70
|
-
PLATFORMS
|
71
|
-
ruby
|
72
|
-
|
73
|
-
DEPENDENCIES
|
74
|
-
bundler (~> 1.0)
|
75
|
-
jeweler (~> 2.0.1)
|
76
|
-
rdoc (~> 3.12)
|
77
|
-
shoulda
|
78
|
-
simplecov
|
79
|
-
|
80
|
-
BUNDLED WITH
|
81
|
-
1.12.5
|