helios-opentelemetry-sdk 0.1.2 → 0.1.5
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/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +5 -5
- data/helios-opentelemetry-sdk.gemspec +2 -2
- data/lib/helios/opentelemetry/sdk/version.rb +1 -1
- data/lib/helios/opentelemetry/sdk.rb +34 -13
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a8819d4ec81a4eba747e2f5a142993fb0379ff4710399cacb3f47e94dc207a6
|
4
|
+
data.tar.gz: d2c7d89eedd1f9e72ed23c167dbe156e119d153cb0551530c5aa265c1b298656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 210994aa6e58d443fd9c5cc034cb7f717578b61d8d57c7bd11ebde592a3b53d062d89de0803a95168bd1987fd3ed37eb37f3e4c88aa6f62405bed1ddddf65474
|
7
|
+
data.tar.gz: e0323518f497f8ae1c585a2e50b947be10260a596acac5c19359115c7a1d0a081b5e73a6ec0a2b1a2c9052694b1a91f209ba0a4e3a54250f884ac7bbe4fdd2de
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-3.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
helios-opentelemetry-sdk (0.1.
|
4
|
+
helios-opentelemetry-sdk (0.1.5)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -195,7 +195,7 @@ GEM
|
|
195
195
|
parser (3.1.2.0)
|
196
196
|
ast (~> 2.4.1)
|
197
197
|
rainbow (3.1.1)
|
198
|
-
rake (
|
198
|
+
rake (13.0.6)
|
199
199
|
regexp_parser (2.5.0)
|
200
200
|
rexml (3.2.5)
|
201
201
|
rspec (3.10.0)
|
@@ -230,14 +230,14 @@ PLATFORMS
|
|
230
230
|
ruby
|
231
231
|
|
232
232
|
DEPENDENCIES
|
233
|
-
bundler (~>
|
233
|
+
bundler (~> 2.3.16)
|
234
234
|
helios-opentelemetry-sdk!
|
235
235
|
opentelemetry-exporter-otlp (~> 0.22.0)
|
236
236
|
opentelemetry-instrumentation-all (~> 0.25.0)
|
237
237
|
opentelemetry-sdk (~> 1.1.0)
|
238
|
-
rake (~>
|
238
|
+
rake (~> 13.0)
|
239
239
|
rspec (~> 3.0)
|
240
240
|
rubocop (~> 1.30.1)
|
241
241
|
|
242
242
|
BUNDLED WITH
|
243
|
-
|
243
|
+
2.3.16
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
34
34
|
spec.require_paths = ["lib"]
|
35
35
|
|
36
|
-
spec.add_development_dependency "bundler", "~>
|
37
|
-
spec.add_development_dependency "rake", "~>
|
36
|
+
spec.add_development_dependency "bundler", "~> 2.3.16"
|
37
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
38
38
|
spec.add_development_dependency "rspec", "~> 3.0"
|
39
39
|
end
|
@@ -1,13 +1,20 @@
|
|
1
1
|
require 'opentelemetry/sdk'
|
2
2
|
require 'opentelemetry/exporter/otlp'
|
3
3
|
require 'opentelemetry/instrumentation/all'
|
4
|
+
require_relative 'sdk/version'
|
4
5
|
|
5
6
|
module Helios
|
6
7
|
module OpenTelemetry
|
7
8
|
module SDK
|
8
9
|
DEFAULT_COLLECTOR_ENDPOINT = 'https://collector.heliosphere.io/traces'.freeze
|
10
|
+
NAME = 'helios-opentelemetry-sdk'.freeze
|
9
11
|
|
10
12
|
def self.initialize(helios_config = {})
|
13
|
+
if helios_disabled?(helios_config[:enable])
|
14
|
+
puts 'Helios instrumentation is disabled'
|
15
|
+
return
|
16
|
+
end
|
17
|
+
|
11
18
|
api_token = helios_config[:api_token]
|
12
19
|
service_name = helios_config[:service_name]
|
13
20
|
if service_name.nil? || api_token.nil?
|
@@ -18,27 +25,40 @@ module Helios
|
|
18
25
|
environment = helios_config[:environment]
|
19
26
|
::OpenTelemetry::SDK.configure do |c|
|
20
27
|
c.service_name = service_name
|
28
|
+
resource_attrs = {
|
29
|
+
::OpenTelemetry::SemanticConventions::Resource::TELEMETRY_SDK_NAME => Helios::OpenTelemetry::SDK::NAME,
|
30
|
+
::OpenTelemetry::SemanticConventions::Resource::TELEMETRY_SDK_VERSION => Helios::OpenTelemetry::SDK::VERSION
|
31
|
+
}
|
21
32
|
unless environment.nil?
|
22
|
-
|
23
|
-
::OpenTelemetry::SemanticConventions::Resource::DEPLOYMENT_ENVIRONMENT => environment
|
24
|
-
)
|
33
|
+
resource_attrs[::OpenTelemetry::SemanticConventions::Resource::DEPLOYMENT_ENVIRONMENT] = environment
|
25
34
|
end
|
35
|
+
c.resource = ::OpenTelemetry::SDK::Resources::Resource.create(resource_attrs)
|
26
36
|
c.use_all
|
27
|
-
span_exporter = if helios_config[:span_exporter].nil?
|
28
|
-
::OpenTelemetry::Exporter::OTLP::Exporter.new(
|
29
|
-
endpoint: Helios::OpenTelemetry::SDK::DEFAULT_COLLECTOR_ENDPOINT,
|
30
|
-
headers: { Authorization: api_token }
|
31
|
-
)
|
32
|
-
else
|
33
|
-
helios_config[:span_exporter]
|
34
|
-
end
|
35
37
|
c.add_span_processor(
|
36
38
|
::OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
|
37
|
-
|
39
|
+
get_span_exporter(helios_config)
|
38
40
|
)
|
39
41
|
)
|
40
42
|
end
|
41
43
|
end
|
44
|
+
|
45
|
+
def self.get_span_exporter(helios_config)
|
46
|
+
return helios_config[:span_exporter] if helios_config[:span_exporter]
|
47
|
+
|
48
|
+
::OpenTelemetry::Exporter::OTLP::Exporter.new(
|
49
|
+
endpoint: Helios::OpenTelemetry::SDK::DEFAULT_COLLECTOR_ENDPOINT,
|
50
|
+
headers: { Authorization: helios_config[:api_token] }
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.helios_disabled?(enabled_flag)
|
55
|
+
return true unless enabled_flag
|
56
|
+
|
57
|
+
disabled_env_var = ENV['HS_DISABLED']
|
58
|
+
return false unless disabled_env_var
|
59
|
+
|
60
|
+
disabled_env_var.lowercase == 'true'
|
61
|
+
end
|
42
62
|
end
|
43
63
|
end
|
44
64
|
end
|
@@ -52,5 +72,6 @@ if auto_tracing_mode?
|
|
52
72
|
api_token = ENV['HS_TOKEN']
|
53
73
|
service_name = ENV['HS_SERVICE_NAME']
|
54
74
|
environment = ENV['HS_ENVIRONMENT']
|
55
|
-
|
75
|
+
enable = true
|
76
|
+
Helios::OpenTelemetry::SDK.initialize(api_token:, service_name:, environment:, enable:)
|
56
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helios-opentelemetry-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ran Nozik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.3.16
|
20
20
|
type: :development
|
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:
|
26
|
+
version: 2.3.16
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
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: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- ".github/workflows/test.yml"
|
64
64
|
- ".gitignore"
|
65
65
|
- ".rubocop.yml"
|
66
|
+
- ".ruby-version"
|
66
67
|
- Gemfile
|
67
68
|
- Gemfile.lock
|
68
69
|
- LICENSE
|