rr-temp-demo-demo 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a246221ccda73e86cae91b56d3162877bec72e971ca6c80db9f2f38222f7c29a
4
+ data.tar.gz: 8081db58221f52a023cac88a43ee280802997a9145692bf22b6277829081cba0
5
+ SHA512:
6
+ metadata.gz: d9ebd52f99cf1e5b621f8d4b33341a71dcf5014614d7d970cf72a48e4697d1935047faf62987c0f364ca2c666d8a28ccd5977e65189b16d23f8bab154a60f609
7
+ data.tar.gz: 28ac82d766f7e89803b78c3cfe32e9d6cfeb2bc32d12cd990613ef22af0edf175aed818160891ee0b295b8dc807a3010f71ce077864a9f6c6f3519e15d762355
data/.rubocop.yml ADDED
@@ -0,0 +1,32 @@
1
+ AllCops:
2
+ TargetRubyVersion: "2.5.0"
3
+
4
+ Style/StringLiterals:
5
+ Enabled: true
6
+ EnforcedStyle: double_quotes
7
+
8
+ Style/StringLiteralsInInterpolation:
9
+ Enabled: true
10
+ EnforcedStyle: double_quotes
11
+
12
+ Lint/UnusedMethodArgument:
13
+ Enabled: false
14
+
15
+ Metrics/AbcSize:
16
+ Max: 18
17
+
18
+ Metrics/LineLength:
19
+ Enabled: false
20
+
21
+ Metrics/MethodLength:
22
+ Max: 20
23
+
24
+ Metrics/ParameterLists:
25
+ Enabled: false
26
+
27
+ Style/FrozenStringLiteralComment:
28
+ Exclude:
29
+ - gemfiles/**/*
30
+
31
+ Style/ModuleFunction:
32
+ Enabled: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2021-11-16
4
+
5
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
data/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # Aspecto::Opentelemetry
2
+
3
+ Aspecto's SDK for ruby. This gem is a distribution of Opentelemetry configured to use all available instrumentations and export trace data to Aspecto.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'aspecto-opentelemetry'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle install
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install aspecto-opentelemetry
20
+
21
+ ## Usage
22
+
23
+ ### Auto Instrumentation
24
+
25
+ Does not require code changes. Just modify you `Gemfile` to add `require` like this:
26
+
27
+ ```
28
+ gem 'aspecto-opentelemetry', require: 'aspecto/auto_instrument'
29
+ ```
30
+
31
+ When using auto-instrumentation, you need to pass relevant configuration options via environment variables.
32
+
33
+ ### Manual Instrumentation
34
+
35
+ Allow you to configure the SDK via code:
36
+
37
+ ```rb
38
+ require 'aspecto/opentelemetry'
39
+
40
+ Aspecto::Opentelemetry::configure
41
+ ```
42
+
43
+ Add this code at the beginning of your application.
44
+ For rails - add this code to a file `aspecto.rb` under `config/initializers/`.
45
+
46
+ ## Development
47
+
48
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
49
+
50
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
51
+
52
+ ## Contributing
53
+
54
+ Bug reports and pull requests are welcome on GitHub at https://github.com/aspecto-io/aspecto-opentelemetry-ruby.
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "test"
8
+ t.libs << "lib"
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
+ end
11
+
12
+ require "rubocop/rake_task"
13
+
14
+ RuboCop::RakeTask.new
15
+
16
+ task default: %i[test rubocop]
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "aspecto/opentelemetry"
4
+
5
+ Aspecto::Opentelemetry.configure
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aspecto
4
+ module Opentelemetry
5
+ # Aspecto Opentelemetry Distro Configurator
6
+ class Configurator
7
+ def initialize
8
+ # initialize config options from environment variables.
9
+ # they can later be overwritten with configurator attribute setters
10
+ # that have precedence over env
11
+ @service_name = ENV["SERVICE_NAME"]
12
+ @aspecto_auth = ENV["ASPECTO_AUTH"]
13
+ end
14
+
15
+ attr_accessor :service_name, :aspecto_auth
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../version"
4
+ require "securerandom"
5
+
6
+ module Aspecto
7
+ module Opentelemetry
8
+ module Resource
9
+ module Detectors
10
+ # Aspecto Opentelemetry Resource Detector
11
+ module Aspecto
12
+ extend self
13
+
14
+ def detect
15
+ resource_attributes = {}
16
+ resource_attributes["aspecto.version"] = ::Aspecto::Opentelemetry::VERSION
17
+ # this should eventually be set in service detector
18
+ resource_attributes[::OpenTelemetry::SemanticConventions::Resource::SERVICE_INSTANCE_ID] = SecureRandom.uuid
19
+ OpenTelemetry::SDK::Resources::Resource.create(resource_attributes)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aspecto
4
+ module Opentelemetry
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "opentelemetry/version"
4
+ require_relative "opentelemetry/configurator"
5
+ require_relative "opentelemetry/resource/detectors/aspecto"
6
+ require "opentelemetry/sdk"
7
+ require "opentelemetry/exporter/otlp"
8
+ require "opentelemetry/instrumentation/all"
9
+
10
+ module Aspecto
11
+ # Aspecto Opentelemetry Distro
12
+ module Opentelemetry
13
+ module_function
14
+
15
+ class Error < StandardError; end
16
+
17
+ def configure
18
+ configurator = Configurator.new
19
+ yield configurator if block_given?
20
+
21
+ OpenTelemetry::SDK.configure do |c|
22
+ c.service_name = configurator.service_name
23
+ c.resource = Aspecto::Opentelemetry::Resource::Detectors::Aspecto.detect
24
+ c.use_all "OpenTelemetry::Instrumentation::ActionPack" => { enable_recognize_route: true }
25
+
26
+ c.add_span_processor(
27
+ OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
28
+ OpenTelemetry::Exporter::OTLP::Exporter.new(endpoint: "https://otelcol.aspecto.io/v1/trace", headers: {
29
+ "Authorization" => configurator.aspecto_auth
30
+ })
31
+ )
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rr-temp-demo-demo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aspecto
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: opentelemetry-exporter-otlp
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.20.6
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.20.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-instrumentation-all
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.21.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.21.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: opentelemetry-sdk
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '13.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '13.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.7'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.7'
97
+ description:
98
+ email:
99
+ - support@aspecto.io
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".rubocop.yml"
105
+ - CHANGELOG.md
106
+ - Gemfile
107
+ - README.md
108
+ - Rakefile
109
+ - lib/aspecto/auto_instrument.rb
110
+ - lib/aspecto/opentelemetry.rb
111
+ - lib/aspecto/opentelemetry/configurator.rb
112
+ - lib/aspecto/opentelemetry/resource/detectors/aspecto.rb
113
+ - lib/aspecto/opentelemetry/version.rb
114
+ homepage: https://docs.aspecto.io/
115
+ licenses: []
116
+ metadata:
117
+ homepage_uri: https://docs.aspecto.io/
118
+ source_code_uri: https://github.com/aspecto-io/aspecto-opentelemetry-ruby
119
+ changelog_uri: https://github.com/aspecto-io/aspecto-opentelemetry-ruby/CHANGELOG.md
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 2.5.0
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubygems_version: 3.2.22
136
+ signing_key:
137
+ specification_version: 4
138
+ summary: Aspecto SDK and Opentelemetry distribution for ruby programming language
139
+ test_files: []