helios-opentelemetry-sdk 0.1.21 → 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: 71228262be35fda8a5c39eb237ca42493837d315d9ae146dd69c04210905a731
4
- data.tar.gz: 19125d421f0a1f086875a97f68b637d3b57df214a542e70c9cbdc9be472dd190
3
+ metadata.gz: 5f067b2b75fcf692e420c9ac84ac7107e09d736174a855d7fce9ca6fb4198990
4
+ data.tar.gz: 137c32fdde515fbc4a00b191672a6a9188e3434820b8042a287aa715c7b15ad3
5
5
  SHA512:
6
- metadata.gz: 2fac93ce1793b9e423f0b7c034e14367c69a64fc2be163a57dc6feb7035310d8a4dee2ddec29a56c962e52db0379375a71f660f88e00be019ded30c1431e6574
7
- data.tar.gz: 5840af6374120b29742da322c7a0780907f293fb884a2892cb387c916fd54b6487c8da9747f5e1b9e0cb25f720724a6c2f96438fb047c530a097f07991b8f1f5
6
+ metadata.gz: 797b434ff07072ae9c0094f71f889692ff56c6aba9d5c6668bd0ad1c151503cfaf25344f6c6115fe9b9023a3036b4fb5c0299aae83c391405bd7084d1847b1f0
7
+ data.tar.gz: e2939e688efce8f83e971a7dc34752fb5559b7202f0c99db257c13b533f66f99ee8ac150f8f4e064c5daa1de7c8440df3add138816d8769284cd1b8ca1493a2b
@@ -20,7 +20,7 @@ jobs:
20
20
  strategy:
21
21
  fail-fast: false
22
22
  matrix:
23
- ruby-version: ['2.6', '2.7', '3.1']
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: actions/setup-ruby@v1
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.20)
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.1)
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)
@@ -1,12 +1,37 @@
1
1
  require 'opentelemetry/sdk'
2
+ require_relative '../semantic_attributes'
2
3
 
3
4
  HELIOS_TEST_TRIGGERED_TRACE = 'hs-triggered-test'.freeze
4
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
+
5
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
+
6
20
  def on_start(span, parent_context)
7
21
  baggage = ::OpenTelemetry::Baggage.values(context: parent_context)
8
22
  return unless baggage.key?(HELIOS_TEST_TRIGGERED_TRACE)
9
23
 
10
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)
11
36
  end
12
37
  end
@@ -1,7 +1,7 @@
1
1
  module Helios
2
2
  module OpenTelemetry
3
3
  module SDK
4
- VERSION = '0.1.21'
4
+ VERSION = '0.1.22'
5
5
  end
6
6
  end
7
7
  end
@@ -38,7 +38,7 @@ module Helios
38
38
  end
39
39
  c.resource = ::OpenTelemetry::SDK::Resources::Resource.create(resource_attrs)
40
40
  apply_instrumentations(c)
41
- c.add_span_processor(HeliosProcessor.new(get_span_exporter(helios_config)))
41
+ c.add_span_processor(HeliosProcessor.new(get_span_exporter(helios_config), helios_config[:metadata_only]))
42
42
  puts 'Helios tracing initialized (' \
43
43
  "service: #{service_name}, " \
44
44
  "token: #{api_token[0, 3]}*****, " \
@@ -89,9 +89,11 @@ if auto_tracing_mode?
89
89
  api_token = ENV['HS_TOKEN']
90
90
  service_name = ENV['HS_SERVICE_NAME']
91
91
  environment = ENV['HS_ENVIRONMENT']
92
+ metadata_only = ENV['HS_METADATA_ONLY'].lowercase == 'true'
92
93
  enable = true
93
94
  Helios::OpenTelemetry::SDK.initialize(api_token: api_token,
94
95
  service_name: service_name,
95
96
  environment: environment,
97
+ metadata_only: metadata_only,
96
98
  enable: enable)
97
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.21
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: 2022-09-17 00:00:00.000000000 Z
11
+ date: 2023-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler