uptrace 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d6d40f316001702fe53c2a9f6f7f8def7328bae1e847150d603f34ef6b5de98
4
- data.tar.gz: 7aecc0fb30cf0b2813c0546b0293cfa00f51c7a67dd2fea59d3f8756c1681f8e
3
+ metadata.gz: 7fd9cbd69a42da344856df5d7fd7a7a1ae391e8a831ce045bd8008be07050de6
4
+ data.tar.gz: 45bfcec0d69d51ff61ec5c00a7d3a9b3b7764614eac0981ccdad34ffc9b6e7ef
5
5
  SHA512:
6
- metadata.gz: 64399814b0c55b1d69d57d6ad74692b217c43121ccf3f3d927211b2f69db1d71c7816c27290ba0ad5ccb24aed0d2db3971413da139bb83a2d6273b4bc54d9aa3
7
- data.tar.gz: d7bf1abbc8999bf9aae68f2fdd043e5eea3a5c5110e352bf8b7194774da4f88a46fc45c4a3058c477a85fe61f11e4885d8101f5cfdac68b0d036c270dc362540
6
+ metadata.gz: c5884bb52fb260f9ef122115d5e399d64db3a5a0c0c37fffe7ec12cd3c521e0de8276cb8e04bc0c8ae1f5d868df5f90e8bd4849d2c733d30d558b0b4c3ddc82c
7
+ data.tar.gz: '0852731f85c1ac9d7fec78f9ab7dbbd8bf0365080532a54afbc6860d6facaff9dfd717ba202f456bdba56180ae732466ca267e2a6e25b0e9482b61165621081b'
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Uptrace
4
+ # Uptrace client that configures OpenTelemetry SDK to use Uptrace exporter.
5
+ module IdGenerator
6
+ extend self
7
+
8
+ # Random number generator for generating IDs. This is an object that can
9
+ # respond to `#bytes` and uses the system PRNG. The current logic is
10
+ # compatible with Ruby 2.5 (which does not implement the `Random.bytes`
11
+ # class method) and with Ruby 3.0+ (which deprecates `Random::DEFAULT`).
12
+ # When we drop support for Ruby 2.5, this can simply be replaced with
13
+ # the class `Random`.
14
+ #
15
+ # @return [#bytes]
16
+ RANDOM = Random.respond_to?(:bytes) ? Random : Random::DEFAULT
17
+
18
+ # An invalid trace identifier, a 16-byte string with all zero bytes.
19
+ INVALID_TRACE_ID = ("\0" * 16).b
20
+
21
+ # An invalid span identifier, an 8-byte string with all zero bytes.
22
+ INVALID_SPAN_ID = ("\0" * 8).b
23
+
24
+ # Generates a valid trace identifier, a 16-byte string with at least one
25
+ # non-zero byte.
26
+ #
27
+ # @return [String] a valid trace ID.
28
+ def generate_trace_id
29
+ time = (Time.now.to_f * 1_000_000).to_i
30
+ high = RANDOM.bytes(8)
31
+ low = [time & 0xFFFFFFFF, time >> 32].pack('VV')
32
+ high << low
33
+ end
34
+
35
+ # Generates a valid span identifier, an 8-byte string with at least one
36
+ # non-zero byte.
37
+ #
38
+ # @return [String] a valid span ID.
39
+ def generate_span_id
40
+ time = (Time.now.to_f * 1000).to_i
41
+ high = RANDOM.bytes(4)
42
+ low = [time].pack('V')
43
+ high << low
44
+ end
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uptrace
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.1'
5
5
  end
data/lib/uptrace.rb CHANGED
@@ -34,6 +34,7 @@ module Uptrace
34
34
  OpenTelemetry::SDK.configure do |c|
35
35
  @client = Client.new(dsn: dsn) unless dsn.empty?
36
36
  c.add_span_processor(span_processor(@client.dsn)) unless client.disabled?
37
+ c.id_generator = Uptrace::IdGenerator
37
38
 
38
39
  yield c if block_given?
39
40
  end
@@ -60,3 +61,4 @@ end
60
61
  require 'uptrace/version'
61
62
  require 'uptrace/dsn'
62
63
  require 'uptrace/client'
64
+ require 'uptrace/id_generator'
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.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uptrace Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-15 00:00:00.000000000 Z
11
+ date: 2022-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-exporter-otlp
@@ -166,6 +166,7 @@ files:
166
166
  - lib/uptrace.rb
167
167
  - lib/uptrace/client.rb
168
168
  - lib/uptrace/dsn.rb
169
+ - lib/uptrace/id_generator.rb
169
170
  - lib/uptrace/version.rb
170
171
  homepage: https://github.com/uptrace/uptrace-ruby
171
172
  licenses: