uptrace 1.0.1 → 1.0.2
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/lib/uptrace/client.rb +8 -0
- data/lib/uptrace/dsn.rb +25 -7
- data/lib/uptrace/version.rb +1 -1
- data/lib/uptrace.rb +4 -6
- metadata +18 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6666340ea7b7556a09c06a41878efdd58bb10b4d05cdc711654189e01eec4011
|
4
|
+
data.tar.gz: 78c26e6a6f6e59e2ac01fd14a872a5c9c164e72431238d5c8d79322201fd1a20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3780a0f3fa9841f4883618f0a7b28f1ec86e046e0f99c90ab6a5ffc0bd7a6c3e2ab3a004c2c3f7f848a62afbea5c9d699ecb07105f4f398c4594c6ce52099bf
|
7
|
+
data.tar.gz: '08270a500502c272d6eda9f96eab25909ea26a834e070ba8d6c4cb7ab7ccfee428d2094c63a353402c1a720b03d11fe7a3f95dad8e09171ad879df96eb2e3466'
|
data/lib/uptrace/client.rb
CHANGED
@@ -24,5 +24,13 @@ module Uptrace
|
|
24
24
|
def disabled?
|
25
25
|
@disabled
|
26
26
|
end
|
27
|
+
|
28
|
+
# @param [optional OpenTelemetry::Trace::Span] span
|
29
|
+
# @return [String]
|
30
|
+
def trace_url(span = nil)
|
31
|
+
span = OpenTelemetry::Trace.current_span if span.nil?
|
32
|
+
trace_id = span.context.hex_trace_id
|
33
|
+
"#{@dsn.app_addr}/traces/#{trace_id}"
|
34
|
+
end
|
27
35
|
end
|
28
36
|
end
|
data/lib/uptrace/dsn.rb
CHANGED
@@ -3,9 +3,7 @@
|
|
3
3
|
module Uptrace
|
4
4
|
# Uptrace DSN
|
5
5
|
class DSN
|
6
|
-
|
7
|
-
|
8
|
-
attr_reader :dsn, :port, *KEYS
|
6
|
+
attr_reader :dsn, :scheme, :host, :port, :project_id, :token
|
9
7
|
|
10
8
|
def initialize(dsn)
|
11
9
|
raise ArgumentError, "DSN can't be empty" if dsn.empty?
|
@@ -17,13 +15,21 @@ module Uptrace
|
|
17
15
|
end
|
18
16
|
|
19
17
|
@dsn = dsn
|
20
|
-
@
|
21
|
-
@token = uri.user
|
18
|
+
@scheme = uri.scheme
|
22
19
|
@host = uri.host
|
23
20
|
@port = uri.port
|
24
|
-
@
|
21
|
+
@project_id = uri.path.delete_prefix('/')
|
22
|
+
@token = uri.user
|
23
|
+
|
24
|
+
%w[scheme host].each do |k|
|
25
|
+
v = public_send(k)
|
26
|
+
raise ArgumentError, %(DSN=#{dsn.inspect} does not have a #{k}) if v.nil? || v.empty?
|
27
|
+
end
|
28
|
+
|
29
|
+
@host = 'uptrace.dev' if @host == 'api.uptrace.dev'
|
30
|
+
return if @host != 'uptrace.dev'
|
25
31
|
|
26
|
-
|
32
|
+
%w[project_id token].each do |k|
|
27
33
|
v = public_send(k)
|
28
34
|
raise ArgumentError, %(DSN=#{dsn.inspect} does not have a #{k}) if v.nil? || v.empty?
|
29
35
|
end
|
@@ -32,5 +38,17 @@ module Uptrace
|
|
32
38
|
def to_s
|
33
39
|
@dsn
|
34
40
|
end
|
41
|
+
|
42
|
+
def app_addr
|
43
|
+
return 'https://app.uptrace.dev' if @host == 'uptrace.dev'
|
44
|
+
|
45
|
+
"#{@scheme}://#{@host}:#{@port}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def otlp_addr
|
49
|
+
return 'https://otlp.uptrace.dev' if @host == 'uptrace.dev'
|
50
|
+
|
51
|
+
"#{@scheme}://#{@host}:#{@port}"
|
52
|
+
end
|
35
53
|
end
|
36
54
|
end
|
data/lib/uptrace/version.rb
CHANGED
data/lib/uptrace.rb
CHANGED
@@ -21,9 +21,7 @@ module Uptrace
|
|
21
21
|
# @param [optional OpenTelemetry::Trace::Span] span
|
22
22
|
# @return [String]
|
23
23
|
def trace_url(span = nil)
|
24
|
-
|
25
|
-
trace_id = span.context.hex_trace_id
|
26
|
-
"https://app.uptrace.dev/traces/#{trace_id}"
|
24
|
+
@client.trace_url(span)
|
27
25
|
end
|
28
26
|
|
29
27
|
# ConfigureOpentelemetry configures OpenTelemetry to export data to Uptrace.
|
@@ -35,7 +33,7 @@ module Uptrace
|
|
35
33
|
def configure_opentelemetry(dsn: '')
|
36
34
|
OpenTelemetry::SDK.configure do |c|
|
37
35
|
@client = Client.new(dsn: dsn) unless dsn.empty?
|
38
|
-
c.add_span_processor(span_processor(@client.dsn
|
36
|
+
c.add_span_processor(span_processor(@client.dsn)) unless client.disabled?
|
39
37
|
|
40
38
|
yield c if block_given?
|
41
39
|
end
|
@@ -45,9 +43,9 @@ module Uptrace
|
|
45
43
|
|
46
44
|
def span_processor(dsn)
|
47
45
|
exporter = OpenTelemetry::Exporter::OTLP::Exporter.new(
|
48
|
-
endpoint:
|
46
|
+
endpoint: "#{dsn.otlp_addr}/v1/traces",
|
49
47
|
# Set the Uptrace DSN here or use UPTRACE_DSN env var.
|
50
|
-
headers: { 'uptrace-dsn': dsn },
|
48
|
+
headers: { 'uptrace-dsn': dsn.to_s },
|
51
49
|
compression: 'gzip'
|
52
50
|
)
|
53
51
|
OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uptrace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uptrace Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-exporter-otlp
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.20.5
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.22.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.20.5
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.22.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: opentelemetry-sdk
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.
|
39
|
+
version: 1.0.2
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0.
|
46
|
+
version: 1.0.2
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: bundler
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,28 +92,28 @@ dependencies:
|
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.
|
95
|
+
version: 1.23.0
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
102
|
+
version: 1.23.0
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: rubocop-minitest
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
107
|
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
109
|
+
version: 0.17.0
|
104
110
|
type: :development
|
105
111
|
prerelease: false
|
106
112
|
version_requirements: !ruby/object:Gem::Requirement
|
107
113
|
requirements:
|
108
114
|
- - "~>"
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
116
|
+
version: 0.17.0
|
111
117
|
- !ruby/object:Gem::Dependency
|
112
118
|
name: rubocop-rake
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -169,7 +175,8 @@ files:
|
|
169
175
|
homepage: https://github.com/uptrace/uptrace-ruby
|
170
176
|
licenses:
|
171
177
|
- BSD-2-Clause
|
172
|
-
metadata:
|
178
|
+
metadata:
|
179
|
+
rubygems_mfa_required: 'true'
|
173
180
|
post_install_message:
|
174
181
|
rdoc_options: []
|
175
182
|
require_paths:
|