uptrace 1.2.2 → 1.3.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/README.md +19 -10
- data/lib/uptrace/dsn.rb +0 -5
- data/lib/uptrace/id_generator.rb +9 -6
- data/lib/uptrace/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f18ccfecc949d79b9c0e06850f440ce7f137dcb4111e2646bd730e9c51107cb
|
4
|
+
data.tar.gz: e1456ae29aa3fc8581e142ef858562033a6fc27e154718af9aeb49c2045385df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90942bebaa75ea64f57609c70f4be2c50a4dd8e0809f9b059e7c9d8d25ba0aeb6c31c29ad731e878fbe9df208dcce2998d2fe2e6ad6abfb1731dedcbca2cfb69
|
7
|
+
data.tar.gz: fd117c9046126740d7181b378752e2f1cfc169599a4df073c5c0c6f0e9ff842fb32b70ed89fa1c1a7dc726ed7cd6a7d863e6894d2075d108bfaa66aae4af16fc
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# Uptrace Ruby exporter for OpenTelemetry
|
2
2
|
|
3
3
|

|
4
|
-
[](https://uptrace.dev/get/
|
4
|
+
[](https://uptrace.dev/get/opentelemetry-ruby.html)
|
5
5
|
[](https://t.me/uptrace)
|
6
6
|
|
7
|
-
<a href="https://uptrace.dev/get/
|
7
|
+
<a href="https://uptrace.dev/get/opentelemetry-ruby.html">
|
8
8
|
<img src="https://uptrace.dev/get/devicon/ruby-original.svg" height="200px" />
|
9
9
|
</a>
|
10
10
|
|
@@ -37,21 +37,28 @@ Uptrace.configure_opentelemetry(dsn: '') do |c|
|
|
37
37
|
# c is OpenTelemetry::SDK::Configurator
|
38
38
|
c.service_name = 'myservice'
|
39
39
|
c.service_version = '1.0.0'
|
40
|
+
|
41
|
+
c.resource = OpenTelemetry::SDK::Resources::Resource.create(
|
42
|
+
'deployment.environment' => 'production'
|
43
|
+
)
|
40
44
|
end
|
41
45
|
|
42
46
|
# Create a tracer. Usually, tracer is a global variable.
|
43
47
|
tracer = OpenTelemetry.tracer_provider.tracer('my_app_or_gem', '0.1.0')
|
44
48
|
|
45
49
|
# Create a root span (a trace) to measure some operation.
|
46
|
-
tracer.in_span('main-operation') do |main|
|
47
|
-
tracer.in_span('
|
48
|
-
child1.set_attribute('
|
50
|
+
tracer.in_span('main-operation', kind: :client) do |main|
|
51
|
+
tracer.in_span('GET /posts/:id') do |child1|
|
52
|
+
child1.set_attribute('http.method', 'GET')
|
53
|
+
child1.set_attribute('http.route', '/posts/:id')
|
54
|
+
child1.set_attribute('http.url', 'http://localhost:8080/posts/123')
|
55
|
+
child1.set_attribute('http.status_code', 200)
|
49
56
|
child1.record_exception(ArgumentError.new('error1'))
|
50
57
|
end
|
51
58
|
|
52
|
-
tracer.in_span('
|
53
|
-
child2.set_attribute('
|
54
|
-
child2.set_attribute('
|
59
|
+
tracer.in_span('SELECT') do |child2|
|
60
|
+
child2.set_attribute('db.system', 'mysql')
|
61
|
+
child2.set_attribute('db.statement', 'SELECT * FROM posts LIMIT 100')
|
55
62
|
end
|
56
63
|
|
57
64
|
puts("trace URL: #{Uptrace.trace_url(main)}")
|
@@ -64,5 +71,7 @@ OpenTelemetry.tracer_provider.shutdown
|
|
64
71
|
## Links
|
65
72
|
|
66
73
|
- [Examples](example)
|
67
|
-
- [Documentation](https://uptrace.dev/get/
|
68
|
-
- [Instrumentations](https://uptrace.dev/opentelemetry/instrumentations/?lang=ruby)
|
74
|
+
- [Documentation](https://uptrace.dev/get/opentelemetry-ruby.html)
|
75
|
+
- [OpenTelemetry Instrumentations](https://uptrace.dev/opentelemetry/instrumentations/?lang=ruby)
|
76
|
+
- [OpenTelemetry Rails](https://uptrace.dev/opentelemetry/instrumentations/ruby-rails.html)
|
77
|
+
- [OpenTelemetry Sinatra](https://uptrace.dev/opentelemetry/instrumentations/ruby-sinatra.html)
|
data/lib/uptrace/dsn.rb
CHANGED
@@ -28,11 +28,6 @@ module Uptrace
|
|
28
28
|
|
29
29
|
@host = 'uptrace.dev' if @host == 'api.uptrace.dev'
|
30
30
|
return if @host != 'uptrace.dev'
|
31
|
-
|
32
|
-
%w[project_id token].each do |k|
|
33
|
-
v = public_send(k)
|
34
|
-
raise ArgumentError, %(DSN=#{dsn.inspect} does not have a #{k}) if v.nil? || v.empty?
|
35
|
-
end
|
36
31
|
end
|
37
32
|
|
38
33
|
def to_s
|
data/lib/uptrace/id_generator.rb
CHANGED
@@ -5,6 +5,9 @@ module Uptrace
|
|
5
5
|
module IdGenerator
|
6
6
|
extend self
|
7
7
|
|
8
|
+
# An invalid span identifier, an 8-byte string with all zero bytes.
|
9
|
+
INVALID_SPAN_ID = ("\0" * 8).b
|
10
|
+
|
8
11
|
# Random number generator for generating IDs. This is an object that can
|
9
12
|
# respond to `#bytes` and uses the system PRNG. The current logic is
|
10
13
|
# compatible with Ruby 2.5 (which does not implement the `Random.bytes`
|
@@ -20,8 +23,8 @@ module Uptrace
|
|
20
23
|
#
|
21
24
|
# @return [String] a valid trace ID.
|
22
25
|
def generate_trace_id
|
23
|
-
time = (Time.now.to_f *
|
24
|
-
high = [time
|
26
|
+
time = (Time.now.to_f * 1_000_000_000).to_i
|
27
|
+
high = [time >> 32, time & 0xFFFFFFFF].pack('NN')
|
25
28
|
low = RANDOM.bytes(8)
|
26
29
|
high << low
|
27
30
|
end
|
@@ -31,10 +34,10 @@ module Uptrace
|
|
31
34
|
#
|
32
35
|
# @return [String] a valid span ID.
|
33
36
|
def generate_span_id
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
37
|
+
loop do
|
38
|
+
id = Random.bytes(8)
|
39
|
+
return id unless id == INVALID_SPAN_ID
|
40
|
+
end
|
38
41
|
end
|
39
42
|
end
|
40
43
|
end
|
data/lib/uptrace/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uptrace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uptrace Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-exporter-otlp
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.26.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.26.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: opentelemetry-sdk
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,14 +181,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
181
181
|
requirements:
|
182
182
|
- - ">="
|
183
183
|
- !ruby/object:Gem::Version
|
184
|
-
version:
|
184
|
+
version: '3.0'
|
185
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
187
|
- - ">="
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0'
|
190
190
|
requirements: []
|
191
|
-
rubygems_version: 3.
|
191
|
+
rubygems_version: 3.4.10
|
192
192
|
signing_key:
|
193
193
|
specification_version: 4
|
194
194
|
summary: Uptrace Ruby exporter for OpenTelemetry
|