helios-opentelemetry-sdk 0.1.20 → 0.1.22
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f067b2b75fcf692e420c9ac84ac7107e09d736174a855d7fce9ca6fb4198990
|
4
|
+
data.tar.gz: 137c32fdde515fbc4a00b191672a6a9188e3434820b8042a287aa715c7b15ad3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 797b434ff07072ae9c0094f71f889692ff56c6aba9d5c6668bd0ad1c151503cfaf25344f6c6115fe9b9023a3036b4fb5c0299aae83c391405bd7084d1847b1f0
|
7
|
+
data.tar.gz: e2939e688efce8f83e971a7dc34752fb5559b7202f0c99db257c13b533f66f99ee8ac150f8f4e064c5daa1de7c8440df3add138816d8769284cd1b8ca1493a2b
|
data/.github/workflows/test.yml
CHANGED
@@ -20,7 +20,7 @@ jobs:
|
|
20
20
|
strategy:
|
21
21
|
fail-fast: false
|
22
22
|
matrix:
|
23
|
-
ruby-version: ['2.
|
23
|
+
ruby-version: ['2.7', '3.1']
|
24
24
|
services:
|
25
25
|
mongodb:
|
26
26
|
image: mongo@sha256:845fd775d7a58f564fae7c17a4eec7ff038e1c4004ebe05cc1cb5fc3767cf6cc
|
@@ -33,14 +33,15 @@ jobs:
|
|
33
33
|
--health-retries=3
|
34
34
|
steps:
|
35
35
|
- uses: actions/checkout@v2
|
36
|
-
- uses:
|
36
|
+
- uses: ruby/setup-ruby@v1
|
37
37
|
with:
|
38
38
|
ruby-version: ${{ matrix.ruby-version }}
|
39
|
+
bundler-cache: true
|
39
40
|
- name: Install bundler
|
40
41
|
run: gem install bundler -v 2.3.16
|
41
42
|
- name: bundle install
|
42
43
|
run: bundle install
|
43
44
|
- name: Rubocop
|
44
|
-
run: rubocop lib spec
|
45
|
+
run: bundle exec rubocop lib spec
|
45
46
|
- name: Run specs
|
46
|
-
run: rspec spec
|
47
|
+
run: bundle exec rspec spec
|
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.22)
|
5
5
|
opentelemetry-exporter-otlp (~> 0.22.0)
|
6
6
|
opentelemetry-instrumentation-all (~> 0.25.0)
|
7
7
|
opentelemetry-instrumentation-rspec (~> 0.2.0)
|
@@ -17,7 +17,7 @@ GEM
|
|
17
17
|
faraday-net_http (~> 2.0)
|
18
18
|
ruby2_keywords (>= 0.0.4)
|
19
19
|
faraday-net_http (2.0.3)
|
20
|
-
google-protobuf (3.21.
|
20
|
+
google-protobuf (3.21.7)
|
21
21
|
googleapis-common-protos-types (1.3.1)
|
22
22
|
google-protobuf (~> 3.14)
|
23
23
|
mongo (2.18.1)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'opentelemetry/sdk'
|
2
|
+
require_relative '../semantic_attributes'
|
3
|
+
|
4
|
+
HELIOS_TEST_TRIGGERED_TRACE = 'hs-triggered-test'.freeze
|
5
|
+
|
6
|
+
ATTRIBUTES_TO_DROP = [
|
7
|
+
Helios::OpenTelemetry::SemanticAttributes::DB_QUERY_RESULT,
|
8
|
+
Helios::OpenTelemetry::SemanticAttributes::HTTP_RESPONSE_BODY,
|
9
|
+
Helios::OpenTelemetry::SemanticAttributes::HTTP_RESPONSE_HEADERS,
|
10
|
+
Helios::OpenTelemetry::SemanticAttributes::HTTP_REQUEST_BODY,
|
11
|
+
Helios::OpenTelemetry::SemanticAttributes::HTTP_REQUEST_HEADERS
|
12
|
+
]
|
13
|
+
|
14
|
+
class HeliosProcessor < ::OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor
|
15
|
+
def initialize(exporter, metadata_only = False)
|
16
|
+
@metadata_only = metadata_only
|
17
|
+
super(exporter)
|
18
|
+
end
|
19
|
+
|
20
|
+
def on_start(span, parent_context)
|
21
|
+
baggage = ::OpenTelemetry::Baggage.values(context: parent_context)
|
22
|
+
return unless baggage.key?(HELIOS_TEST_TRIGGERED_TRACE)
|
23
|
+
|
24
|
+
span.set_attribute(HELIOS_TEST_TRIGGERED_TRACE, 'true')
|
25
|
+
|
26
|
+
super(span, parent_context)
|
27
|
+
end
|
28
|
+
|
29
|
+
def on_finish(span)
|
30
|
+
if @metadata_only
|
31
|
+
new_attributes = span.attributes.dup.reject { |k, _| ATTRIBUTES_TO_DROP.include?(k) }
|
32
|
+
span.instance_variable_set(:@attributes, new_attributes)
|
33
|
+
end
|
34
|
+
|
35
|
+
super(span)
|
36
|
+
end
|
37
|
+
end
|
@@ -3,6 +3,7 @@ require 'opentelemetry/exporter/otlp'
|
|
3
3
|
require 'opentelemetry/instrumentation/all'
|
4
4
|
require_relative 'sdk/version'
|
5
5
|
require_relative 'sdk/instrumentations'
|
6
|
+
require_relative 'sdk/helios_processor'
|
6
7
|
|
7
8
|
module Helios
|
8
9
|
module OpenTelemetry
|
@@ -37,11 +38,11 @@ module Helios
|
|
37
38
|
end
|
38
39
|
c.resource = ::OpenTelemetry::SDK::Resources::Resource.create(resource_attrs)
|
39
40
|
apply_instrumentations(c)
|
40
|
-
c.add_span_processor(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
c.add_span_processor(HeliosProcessor.new(get_span_exporter(helios_config), helios_config[:metadata_only]))
|
42
|
+
puts 'Helios tracing initialized (' \
|
43
|
+
"service: #{service_name}, " \
|
44
|
+
"token: #{api_token[0, 3]}*****, " \
|
45
|
+
"environment: #{environment})"
|
45
46
|
end
|
46
47
|
|
47
48
|
send_debug_span
|
@@ -88,9 +89,11 @@ if auto_tracing_mode?
|
|
88
89
|
api_token = ENV['HS_TOKEN']
|
89
90
|
service_name = ENV['HS_SERVICE_NAME']
|
90
91
|
environment = ENV['HS_ENVIRONMENT']
|
92
|
+
metadata_only = ENV['HS_METADATA_ONLY'].lowercase == 'true'
|
91
93
|
enable = true
|
92
94
|
Helios::OpenTelemetry::SDK.initialize(api_token: api_token,
|
93
95
|
service_name: service_name,
|
94
96
|
environment: environment,
|
97
|
+
metadata_only: metadata_only,
|
95
98
|
enable: enable)
|
96
99
|
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.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Team Helios
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- bin/setup
|
130
130
|
- helios-opentelemetry-sdk.gemspec
|
131
131
|
- lib/helios/opentelemetry/sdk.rb
|
132
|
+
- lib/helios/opentelemetry/sdk/helios_processor.rb
|
132
133
|
- lib/helios/opentelemetry/sdk/instrumentations.rb
|
133
134
|
- lib/helios/opentelemetry/sdk/patches/faraday_patch.rb
|
134
135
|
- lib/helios/opentelemetry/sdk/patches/mongo_patch.rb
|