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 +4 -4
- data/.travis.yml +3 -4
- data/README.md +5 -0
- data/lib/opencensus/datadog/version.rb +1 -1
- data/lib/opencensus/trace/exporters/datadog/converter.rb +15 -7
- data/opencensus-datadog.gemspec +8 -6
- metadata +26 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6c098a8de16e6f069b0bb1762759357d95b3ee4d012f2cbec9378449aacdeb33
|
|
4
|
+
data.tar.gz: 717d610234307dd745134b1f1b485ebad284094719927e9f8f1800b8a68c094d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 06d3e9e5910b3dd92882c96854f107f6157348fb88bcfdc4871110f50e90ea7c644c76240e2fd7e75f4b6393325d64be2d9c5e86051ba316ea34693ca8fce2ad
|
|
7
|
+
data.tar.gz: 226e6ad0b8ee2621148b0ff78c0c8385ade5e0f67a1f8a9d09fef509352be5dc389d28a301a06aad14164571bed8739179163823a04590cec40d5a62394050ad
|
data/.travis.yml
CHANGED
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,11 +1,11 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require '
|
|
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::
|
|
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
|
|
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::
|
|
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
|
data/opencensus-datadog.gemspec
CHANGED
|
@@ -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/
|
|
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 '
|
|
28
|
+
spec.add_dependency 'datadog', '>= 2.0', '< 3.0'
|
|
27
29
|
|
|
28
|
-
spec.add_development_dependency "bundler", "
|
|
29
|
-
spec.add_development_dependency "rake", "~>
|
|
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.
|
|
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:
|
|
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:
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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/
|
|
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:
|
|
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.
|
|
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: []
|