opencensus-datadog 0.1.2 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69927cac7ff8321df6e8fc8acb690944bc1f558e37923bccad34aed46e0f6b83
4
- data.tar.gz: a4ab6404ddfc0830154961651883ce01432ef4c5fb5b846ed5e963a230fa54e8
3
+ metadata.gz: 6c098a8de16e6f069b0bb1762759357d95b3ee4d012f2cbec9378449aacdeb33
4
+ data.tar.gz: 717d610234307dd745134b1f1b485ebad284094719927e9f8f1800b8a68c094d
5
5
  SHA512:
6
- metadata.gz: be3e6172c67a63c1f3a82ed505edce46f0648b96c4d3505a14e5f072a98a950734a1ef46cc7edd642b3367edcc0c11e60213f50255ed68758fda6c9a2d5be00b
7
- data.tar.gz: b6e8dfe39a52b82555453718cff73441deb165b71df1f4c9168d89b492c77ba92a65056c58923146e911478e842254add33be359d92f35b40d6daa5d77ff0e80
6
+ metadata.gz: 06d3e9e5910b3dd92882c96854f107f6157348fb88bcfdc4871110f50e90ea7c644c76240e2fd7e75f4b6393325d64be2d9c5e86051ba316ea34693ca8fce2ad
7
+ data.tar.gz: 226e6ad0b8ee2621148b0ff78c0c8385ade5e0f67a1f8a9d09fef509352be5dc389d28a301a06aad14164571bed8739179163823a04590cec40d5a62394050ad
data/.travis.yml CHANGED
@@ -1,9 +1,8 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3.7
5
- - 2.4.4
6
- - 2.5.1
7
- before_install: gem install bundler -v 1.16.2
4
+ - 3.2
5
+ - 3.3
6
+ - 3.4
8
7
  script:
9
8
  - bundle exec rspec
data/README.md CHANGED
@@ -3,6 +3,11 @@
3
3
  This library is the implementation of [OpenCensus](https://github.com/census-instrumentation/opencensus-ruby) exporter that transfer metrics to [Datadog APM](https://www.datadoghq.com/apm/).
4
4
  It is depending on Datadog Agent v6.
5
5
 
6
+ ## Requirements
7
+
8
+ - Ruby >= 3.2
9
+ - `datadog` gem v2.x
10
+
6
11
  ## Installation
7
12
 
8
13
  Add `opencensus-datadog` to your application's Gemfile:
@@ -1,5 +1,5 @@
1
1
  module OpenCensus
2
2
  module Datadog
3
- VERSION = "0.1.2"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -1,11 +1,11 @@
1
- require 'ddtrace/ext/distributed'
2
- require 'ddtrace/ext/priority'
3
- require 'ddtrace/ext/errors'
1
+ require 'datadog/tracing/metadata/ext'
2
+ require 'datadog/tracing/sampling/ext'
4
3
 
5
4
  module OpenCensus
6
5
  module Trace
7
6
  module Exporters
8
7
  class Datadog
8
+ # Converts OpenCensus spans to Datadog APM format.
9
9
  class Converter
10
10
 
11
11
  DATADOG_MAX_TRACE_ID = 0xffff_ffff_ffff_ffff
@@ -13,7 +13,7 @@ module OpenCensus
13
13
  DATADOG_SPAN_TYPE_KEY = 'span.type'.freeze
14
14
  DATADOG_SERVICE_NAME_KEY = 'service.name'.freeze
15
15
  DATADOG_RESOURCE_NAME_KEY = 'resource.name'.freeze
16
- DATADOG_SAMPLING_PRIORITY_KEY = ::Datadog::Ext::DistributedTracing::SAMPLING_PRIORITY_KEY
16
+ DATADOG_SAMPLING_PRIORITY_KEY = ::Datadog::Tracing::Metadata::Ext::Distributed::TAG_SAMPLING_PRIORITY
17
17
 
18
18
  STATUS_DESCRIPTION_KEY = 'opencensus.status_description'.freeze
19
19
 
@@ -37,10 +37,13 @@ module OpenCensus
37
37
  'unauthenticated'
38
38
  ]
39
39
 
40
+ # @param service [String] Datadog service name
40
41
  def initialize(service)
41
42
  @service = service
42
43
  end
43
44
 
45
+ # @param span [OpenCensus::Trace::Span] OpenCensus span
46
+ # @return [Hash] Datadog span hash
44
47
  def convert_span(span)
45
48
  dd_span = {
46
49
  span_id: span.span_id.to_i(16),
@@ -49,7 +52,7 @@ module OpenCensus
49
52
  name: span.name.to_s,
50
53
  service: @service,
51
54
  resource: span.name.to_s,
52
- type: span_type(span.kind.to_s),
55
+ type: span_type(span.kind),
53
56
  meta: {},
54
57
  metrics: {},
55
58
  error: 0,
@@ -57,7 +60,7 @@ module OpenCensus
57
60
  duration: ((span.end_time.to_f - span.start_time.to_f) * 1e9).to_i,
58
61
  }
59
62
 
60
- dd_span[:metrics][DATADOG_SAMPLING_PRIORITY_KEY] = ::Datadog::Ext::Priority::AUTO_KEEP
63
+ dd_span[:metrics][DATADOG_SAMPLING_PRIORITY_KEY] = ::Datadog::Tracing::Sampling::Ext::Priority::AUTO_KEEP
61
64
 
62
65
  convert_status(dd_span, span.status)
63
66
 
@@ -88,11 +91,14 @@ module OpenCensus
88
91
  dd_span
89
92
  end
90
93
 
94
+ # @param dd_span [Hash] Datadog span hash to modify
95
+ # @param status [OpenCensus::Trace::Status, nil] OpenCensus status
96
+ # @return [void]
91
97
  def convert_status(dd_span, status)
92
98
  status_key = STATUS_DESCRIPTION_KEY
93
99
  return if status.nil?
94
100
  if status.code != 0 then
95
- status_key = ::Datadog::Ext::Errors::MSG
101
+ status_key = ::Datadog::Tracing::Metadata::Ext::Errors::TAG_MSG
96
102
  dd_span[:error] = 1
97
103
  code = status.code.to_i
98
104
  return if code < 0 || code >= CANONICAL_CODES.length
@@ -102,6 +108,8 @@ module OpenCensus
102
108
  return
103
109
  end
104
110
 
111
+ # @param kind [Symbol] OpenCensus::Trace::Span kind constant
112
+ # @return [String] Datadog span type ('server', 'client', or '')
105
113
  def span_type(kind)
106
114
  case kind
107
115
  when OpenCensus::Trace::Span::SERVER
@@ -6,12 +6,12 @@ require "opencensus/datadog/version"
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "opencensus-datadog"
8
8
  spec.version = OpenCensus::Datadog::VERSION
9
- spec.authors = ["Yuichi Saito"]
10
- spec.email = ["munisystem@gmail.com"]
9
+ spec.authors = ["Wantedly, Inc.", "Yuichi Saito"]
10
+ spec.email = ["dev@wantedly.com", "munisystem@gmail.com"]
11
11
 
12
12
  spec.summary = "Datadog APM exporter for OpenCensus"
13
13
  spec.description = "Datadog APM exporter for OpenCensus"
14
- spec.homepage = "https://github.com/munisystem/opencensus-datadog"
14
+ spec.homepage = "https://github.com/wantedly/opencensus-datadog"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
@@ -21,11 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
+ spec.required_ruby_version = ">= 3.2.0"
25
+
24
26
  spec.add_dependency 'msgpack'
25
27
  spec.add_dependency 'opencensus'
26
- spec.add_dependency 'ddtrace', '< 1.0'
28
+ spec.add_dependency 'datadog', '>= 2.0', '< 3.0'
27
29
 
28
- spec.add_development_dependency "bundler", "~> 1.16"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "bundler", ">= 1.16", "< 3.0"
31
+ spec.add_development_dependency "rake", "~> 13.0"
30
32
  spec.add_development_dependency "rspec", "~> 3.0"
31
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opencensus-datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Wantedly, Inc.
7
8
  - Yuichi Saito
8
- autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -39,47 +39,59 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: ddtrace
42
+ name: datadog
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
45
48
  - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: '1.0'
50
+ version: '3.0'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '2.0'
52
58
  - - "<"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.0'
60
+ version: '3.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: bundler
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
67
  version: '1.16'
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.0'
62
71
  type: :development
63
72
  prerelease: false
64
73
  version_requirements: !ruby/object:Gem::Requirement
65
74
  requirements:
66
- - - "~>"
75
+ - - ">="
67
76
  - !ruby/object:Gem::Version
68
77
  version: '1.16'
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '3.0'
69
81
  - !ruby/object:Gem::Dependency
70
82
  name: rake
71
83
  requirement: !ruby/object:Gem::Requirement
72
84
  requirements:
73
85
  - - "~>"
74
86
  - !ruby/object:Gem::Version
75
- version: '10.0'
87
+ version: '13.0'
76
88
  type: :development
77
89
  prerelease: false
78
90
  version_requirements: !ruby/object:Gem::Requirement
79
91
  requirements:
80
92
  - - "~>"
81
93
  - !ruby/object:Gem::Version
82
- version: '10.0'
94
+ version: '13.0'
83
95
  - !ruby/object:Gem::Dependency
84
96
  name: rspec
85
97
  requirement: !ruby/object:Gem::Requirement
@@ -96,6 +108,7 @@ dependencies:
96
108
  version: '3.0'
97
109
  description: Datadog APM exporter for OpenCensus
98
110
  email:
111
+ - dev@wantedly.com
99
112
  - munisystem@gmail.com
100
113
  executables: []
101
114
  extensions: []
@@ -119,11 +132,10 @@ files:
119
132
  - lib/opencensus/trace/exporters/datadog/transport.rb
120
133
  - lib/opencensus/trace/exporters/datadog/worker.rb
121
134
  - opencensus-datadog.gemspec
122
- homepage: https://github.com/munisystem/opencensus-datadog
135
+ homepage: https://github.com/wantedly/opencensus-datadog
123
136
  licenses:
124
137
  - MIT
125
138
  metadata: {}
126
- post_install_message:
127
139
  rdoc_options: []
128
140
  require_paths:
129
141
  - lib
@@ -131,15 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
143
  requirements:
132
144
  - - ">="
133
145
  - !ruby/object:Gem::Version
134
- version: '0'
146
+ version: 3.2.0
135
147
  required_rubygems_version: !ruby/object:Gem::Requirement
136
148
  requirements:
137
149
  - - ">="
138
150
  - !ruby/object:Gem::Version
139
151
  version: '0'
140
152
  requirements: []
141
- rubygems_version: 3.0.3
142
- signing_key:
153
+ rubygems_version: 3.7.1
143
154
  specification_version: 4
144
155
  summary: Datadog APM exporter for OpenCensus
145
156
  test_files: []