rr-temp-demo-demo 0.1.0
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 +7 -0
- data/.rubocop.yml +32 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +5 -0
- data/README.md +54 -0
- data/Rakefile +16 -0
- data/lib/aspecto/auto_instrument.rb +5 -0
- data/lib/aspecto/opentelemetry/configurator.rb +18 -0
- data/lib/aspecto/opentelemetry/resource/detectors/aspecto.rb +25 -0
- data/lib/aspecto/opentelemetry/version.rb +7 -0
- data/lib/aspecto/opentelemetry.rb +36 -0
- metadata +139 -0
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
data/Gemfile
ADDED
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,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,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: []
|