traces 0.1.0 → 0.2.0

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: af4a77480dd1e8a5f9805b47410c4cfc10736776eb3d0e240256eecdb9aef998
4
- data.tar.gz: 945a6a8c0fec8382d3c3770e011ec102c4be998df3af84d77b7cc99596a75c86
3
+ metadata.gz: e8d74b7b8712105a772f7d9cde7108dc2218137570ba71f11632cd539808a740
4
+ data.tar.gz: 4a63fcc5efe56b48a074a6e66587bab35395daf9a0b20864e59b4987db9530e3
5
5
  SHA512:
6
- metadata.gz: 3410ef5b66b6d647a37c44374453759dc191c3366b614093604981a57304dc5b3ff43a026207b7364886cbad43400aeb65652ee3aef6ab68694e52379018956e
7
- data.tar.gz: 73dc84b89273d731f0baa1839c8ef54d9ab292558b2ee5d99acc9c6dbf937510db3381b48a179d952faa1728c203142cff08ddd211a9960aafda05f320e5af43
6
+ metadata.gz: f2291cae8c41890078266aaedbd14f760e94b18d76e55b2b32c792e6188770cee4565e96972711bf0cc83f6ddaacd1700d767eca56584423e7c55ee322ce295c
7
+ data.tar.gz: 33b0e8f87d219f8c4122d356b2ee1188d6df6f89aea9f8583757bf1cf288c4ed393cd2bda96804c84fb7812014d545d872923cb7bfff22a8e7152f87aeb2b8aa
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ ^�d>-�E�7��|h#�ʸUn��Iھ�*@�tǵ@���X#ͣ�AX�!d�O��=���9�U1�� �'jĹ��/
2
+ Lk6+��%��YX@�����ݙ�M�:����&��0��S�[���3"������R�Sj�����%���.#��NQ�]P<&��Uv���_�rc}h���O��;5���j�4�m>t���zr�_���>�)x���̇�
3
+ ((��_)��2�d�� ��F~q#ZS��_\˪��<(��+�H��0s�� ���)o܅�I:�8��6�H���@JgA����=�Y۬ފ΃(
4
+ �cx�l�T��t��I�(R"27��H�Aˡ�V��ah���~wC�F (v
@@ -27,9 +27,9 @@ module Traces
27
27
  private
28
28
 
29
29
  def trace(name, parent = nil, attributes: nil, &block)
30
- Console.logger.measure(self, name, **attributes) do
31
- yield
32
- end
30
+ Console.logger.info(self, name, attributes)
31
+
32
+ yield
33
33
  end
34
34
  end
35
35
  end
@@ -27,6 +27,10 @@ module Traces
27
27
  private
28
28
 
29
29
  def trace(name, parent = nil, attributes: nil, &block)
30
+ unless name.is_a?(String)
31
+ raise ArgumentError, "Invalid name!"
32
+ end
33
+
30
34
  yield
31
35
  end
32
36
  end
@@ -23,8 +23,7 @@
23
23
  module Traces
24
24
  def self.require_backend(env = ENV)
25
25
  if backend = env['TRACES_BACKEND']
26
- path = File.join('backend', backend)
27
- require_relative(path)
26
+ require(backend)
28
27
  end
29
28
  end
30
29
  end
@@ -27,7 +27,7 @@ module Traces
27
27
  def self.parse(parent, state = nil)
28
28
  version, trace_id, parent_id, flags = parent.split('-')
29
29
 
30
- if version = '00'
30
+ if version == '00'
31
31
  flags = Integer(trace_flags, 16)
32
32
 
33
33
  if state.is_a?(String)
@@ -24,8 +24,8 @@ require_relative 'backend'
24
24
 
25
25
  module Traces
26
26
  module Provider
27
- def trace_provider
28
- @trace_provider ||= Module.new
27
+ def traces_provider
28
+ @traces_provider ||= Module.new
29
29
  end
30
30
  end
31
31
 
@@ -33,9 +33,8 @@ module Traces
33
33
  if Traces.const_defined?(:Backend)
34
34
  def self.Provider(klass, &block)
35
35
  klass.extend(Provider)
36
- klass.prepend(Backend)
37
36
 
38
- provider = klass.trace_provider
37
+ provider = klass.traces_provider
39
38
  provider.prepend(Backend)
40
39
 
41
40
  klass.prepend(provider)
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Traces
24
- VERSION = "0.1.0"
24
+ VERSION = "0.2.0"
25
25
  end
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traces
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2021-10-09 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEhDCCAuygAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MTUwMwYDVQQDDCxzYW11
14
+ ZWwud2lsbGlhbXMvREM9b3Jpb250cmFuc2Zlci9EQz1jby9EQz1uejAeFw0yMTA4
15
+ MTYwNjMzNDRaFw0yMjA4MTYwNjMzNDRaMDcxNTAzBgNVBAMMLHNhbXVlbC53aWxs
16
+ aWFtcy9EQz1vcmlvbnRyYW5zZmVyL0RDPWNvL0RDPW56MIIBojANBgkqhkiG9w0B
17
+ AQEFAAOCAY8AMIIBigKCAYEAyXLSS/cw+fXJ5e7hi+U/TeChPWeYdwJojDsFY1xr
18
+ xvtqbTTL8gbLHz5LW3QD2nfwCv3qTlw0qI3Ie7a9VMJMbSvgVEGEfQirqIgJXWMj
19
+ eNMDgKsMJtC7u/43abRKx7TCURW3iWyR19NRngsJJmaR51yGGGm2Kfsr+JtKKLtL
20
+ L188Wm3f13KAx7QJU8qyuBnj1/gWem076hzdA7xi1DbrZrch9GCRz62xymJlrJHn
21
+ 9iZEZ7AxrS7vokhMlzSr/XMUihx/8aFKtk+tMLClqxZSmBWIErWdicCGTULXCBNb
22
+ E/mljo4zEVKhlTWpJklMIhr55ZRrSarKFuW7en0+tpJrfsYiAmXMJNi4XAYJH7uL
23
+ rgJuJwSaa/dMz+VmUoo7VKtSfCoOI+6v5/z0sK3oT6sG6ZwyI47DBq2XqNC6tnAj
24
+ w+XmCywiTQrFzMMAvcA7rPI4F0nU1rZId51rOvvfxaONp+wgTi4P8owZLw0/j0m4
25
+ 8C20DYi6EYx4AHDXiLpElWh3AgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8E
26
+ BAMCBLAwHQYDVR0OBBYEFB6ZaeWKxQjGTI+pmz7cKRmMIywwMC4GA1UdEQQnMCWB
27
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWB
28
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEB
29
+ CwUAA4IBgQBVoM+pu3dpdUhZM1w051iw5GfiqclAr1Psypf16Tiod/ho//4oAu6T
30
+ 9fj3DPX/acWV9P/FScvqo4Qgv6g4VWO5ZU7z2JmPoTXZtYMunRAmQPFL/gSUc6aK
31
+ vszMHIyhtyzRc6DnfW2AiVOjMBjaYv8xXZc9bduniRVPrLR4J7ozmGLh4o4uJp7w
32
+ x9KCFaR8Lvn/r0oJWJOqb/DMAYI83YeN2Dlt3jpwrsmsONrtC5S3gOUle5afSGos
33
+ bYt5ocnEpKSomR9ZtnCGljds/aeO1Xgpn2r9HHcjwnH346iNrnHmMlC7BtHUFPDg
34
+ Ts92S47PTOXzwPBDsrFiq3VLbRjHSwf8rpqybQBH9MfzxGGxTaETQYOd6b4e4Ag6
35
+ y92abGna0bmIEb4+Tx9rQ10Uijh1POzvr/VTH4bbIPy9FbKrRsIQ24qDbNJRtOpE
36
+ RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
37
+ HiLJ8VOFx6w=
38
+ -----END CERTIFICATE-----
39
+ date: 2021-10-17 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: rspec
@@ -33,13 +61,11 @@ files:
33
61
  - lib/traces.rb
34
62
  - lib/traces/backend.rb
35
63
  - lib/traces/backend/console.rb
36
- - lib/traces/backend/datadog.rb
37
- - lib/traces/backend/open_telemetry.rb
38
64
  - lib/traces/backend/test.rb
39
65
  - lib/traces/context.rb
40
66
  - lib/traces/provider.rb
41
67
  - lib/traces/version.rb
42
- homepage: https://github.com/socketry/trace
68
+ homepage: https://github.com/socketry/traces
43
69
  licenses:
44
70
  - MIT
45
71
  metadata: {}
@@ -58,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
84
  - !ruby/object:Gem::Version
59
85
  version: '0'
60
86
  requirements: []
61
- rubygems_version: 3.2.22
87
+ rubygems_version: 3.1.6
62
88
  signing_key:
63
89
  specification_version: 4
64
90
  summary: Application instrumentation and tracing.
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ z��&2�x<������V��8A� ���R�#��^v���8B���!Y�L�7�f��OY�G��{s�H��X�uP#!�L[��;&{��KѠlG�
2
+ �a�(jc�ݰ2oo?��?|���3�� �M�=�t>J�O�`�P���B�*~�#�pZӍ7i��� �1@Y��Efz�~B���<
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
22
-
23
- require_relative '../context'
24
-
25
- require 'ddtrace'
26
-
27
- module Traces
28
- module Backend
29
- private
30
-
31
- def trace(name, parent = nil, attributes: nil, &block)
32
- if parent
33
- parent = ::Datadog::Context.new(
34
- trace_id: parent.trace_id,
35
- span_id: parent.span_id,
36
- sampled: parent.sampled?,
37
- )
38
- end
39
-
40
- ::Datadog.tracer.trace(name, child_of: parent, tags: attributes) do |span|
41
- begin
42
- if block.arity.zero?
43
- yield
44
- else
45
- yield trace_span_context(span)
46
- end
47
- rescue Exception => error
48
- Console.logger.error(self, error)
49
- raise
50
- end
51
- end
52
- end
53
-
54
- def trace_span_context(span)
55
- flags = 0
56
-
57
- if span.sampled
58
- flags |= Context::SAMPLED
59
- end
60
-
61
- return Context.new(
62
- span.trace_id,
63
- span.span_id,
64
- flags,
65
- nil,
66
- remote: false
67
- )
68
- end
69
- end
70
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
22
-
23
- require_relative '../context'
24
-
25
- require 'opentelemetry/sdk'
26
-
27
- module Traces
28
- module Backend
29
- private
30
-
31
- # Provides a backend that writes data to OpenTelemetry.
32
- # See <https://github.com/open-telemetry/opentelemetry-ruby> for more details.
33
- TRACER = ::OpenTelemetry.tracer_provider.tracer(Traces, Traces::VERSION)
34
-
35
- def trace(name, parent = nil, attributes: nil, &block)
36
- if parent
37
- # Convert it to the required object:
38
- parent = ::OpenTelemetry::Traces::SpanContext.new(
39
- trace_id: parent.trace_id,
40
- span_id: parent.span_id,
41
- trace_flags: ::OpenTelemetry::Traces::TracesFlags.from_byte(parent.flags),
42
- tracestate: parent.state,
43
- remote: parent.remote?
44
- )
45
- end
46
-
47
- span = TRACER.start_span(name, with_parent: parent, attributes: attributes)
48
-
49
- begin
50
- if block.arity.zero?
51
- yield
52
- else
53
- yield trace_span_context(span)
54
- end
55
- rescue Exception => error
56
- span&.record_exception(error)
57
- span&.status = ::OpenTelemetry::Traces::Status.error("Unhandled exception of type: #{error.class}")
58
- raise
59
- ensure
60
- span&.finish
61
- end
62
- end
63
-
64
- def trace_span_context(span)
65
- context = span.context
66
-
67
- return Context.new(
68
- context.trace_id,
69
- context.span_id,
70
- context.trace_flags,
71
- context.tracestate,
72
- remote: context.remote?
73
- )
74
- end
75
- end
76
- end