helios-opentelemetry-sdk 0.1.21 → 0.1.22

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: 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