opentelemetry-instrumentation-sinatra 0.23.5 → 0.24.1
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 +4 -4
- data/CHANGELOG.md +10 -2
- data/lib/opentelemetry/instrumentation/sinatra/extensions/tracer_extension.rb +16 -14
- data/lib/opentelemetry/instrumentation/sinatra/instrumentation.rb +37 -4
- data/lib/opentelemetry/instrumentation/sinatra/version.rb +1 -1
- data/lib/opentelemetry/instrumentation/sinatra.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a78599c829d2be9627e4fc53e0b862987080ae7af515024391d22d97293dd485
|
4
|
+
data.tar.gz: 7c2da7aebc1a33187902afd199aefe4cbee83866d866021ceec4deb86c078101
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99d40a9dd38024c716f61d989710c71aa1d55227d506af465dee03a2e7fa52c41104e5aa5acee851eaf99e76a8af7c7eb78dd28d1921e0c2f20370de4b03ffa7
|
7
|
+
data.tar.gz: d69cbedefa3bbd4ebcf4726f406113d7e2bd1ad04b5bd8a59bf24314903e101dc7aa207f9c2738970323e6310eb2ecd37ee74da076b86e795f2082c07465486f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Release History: opentelemetry-instrumentation-sinatra
|
2
2
|
|
3
|
+
### v0.24.1 / 2024-07-23
|
4
|
+
|
5
|
+
* DOCS: Add cspell to CI
|
6
|
+
|
7
|
+
### v0.24.0 / 2024-07-02
|
8
|
+
|
9
|
+
* ADDED: Make Rack install optional for sinatra
|
10
|
+
|
3
11
|
### v0.23.5 / 2024-06-18
|
4
12
|
|
5
13
|
* FIXED: Relax otel common gem constraints
|
@@ -86,7 +94,7 @@
|
|
86
94
|
|
87
95
|
### v0.18.0 / 2021-05-21
|
88
96
|
|
89
|
-
* ADDED: Updated API
|
97
|
+
* ADDED: Updated API dependency for 1.0.0.rc1
|
90
98
|
* BREAKING CHANGE: Remove optional parent_context from in_span
|
91
99
|
|
92
100
|
* FIXED: Remove optional parent_context from in_span
|
@@ -146,7 +154,7 @@
|
|
146
154
|
### v0.7.0 / 2020-10-07
|
147
155
|
|
148
156
|
* FIXED: Default to sinatra.route for span name
|
149
|
-
* DOCS: Standardize
|
157
|
+
* DOCS: Standardize top-level docs structure and readme
|
150
158
|
|
151
159
|
### v0.6.0 / 2020-09-10
|
152
160
|
|
@@ -13,23 +13,25 @@ module OpenTelemetry
|
|
13
13
|
# Sinatra extension that installs TracerMiddleware and provides
|
14
14
|
# tracing for template rendering
|
15
15
|
module TracerExtension
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
def render(_engine, data, *)
|
21
|
-
template_name = data.is_a?(Symbol) ? data : :literal
|
16
|
+
# Contants patches for `render` method
|
17
|
+
module RenderPatches
|
18
|
+
def render(_engine, data, *)
|
19
|
+
template_name = data.is_a?(Symbol) ? data : :literal
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
21
|
+
Sinatra::Instrumentation.instance.tracer.in_span(
|
22
|
+
'sinatra.render_template',
|
23
|
+
attributes: { 'sinatra.template_name' => template_name.to_s }
|
24
|
+
) do
|
25
|
+
super
|
29
26
|
end
|
30
27
|
end
|
31
|
-
|
32
|
-
|
28
|
+
end
|
29
|
+
|
30
|
+
# Sinatra hook after extension is registered
|
31
|
+
def self.registered(app)
|
32
|
+
# Create tracing `render` method
|
33
|
+
::Sinatra::Base.prepend(RenderPatches)
|
34
|
+
Sinatra::Instrumentation.instance.install_middleware(app)
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
@@ -9,18 +9,51 @@ require_relative 'extensions/tracer_extension'
|
|
9
9
|
module OpenTelemetry
|
10
10
|
module Instrumentation
|
11
11
|
module Sinatra
|
12
|
-
# The Instrumentation class contains logic to detect and install the Sinatra
|
13
|
-
#
|
12
|
+
# The {OpenTelemetry::Instrumentation::Sinatra::Instrumentation} class contains logic to detect and install the Sinatra instrumentation
|
13
|
+
#
|
14
|
+
# Installation and configuration of this instrumentation is done within the
|
15
|
+
# {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry/SDK#configure-instance_method OpenTelemetry::SDK#configure}
|
16
|
+
# block, calling {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry%2FSDK%2FConfigurator:use use()}
|
17
|
+
# or {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry%2FSDK%2FConfigurator:use_all use_all()}.
|
18
|
+
#
|
19
|
+
# ## Configuration keys and options
|
20
|
+
#
|
21
|
+
# ### `:install_rack`
|
22
|
+
#
|
23
|
+
# Default is `true`. Specifies whether or not to install the Rack instrumentation as part of installing the Sinatra instrumentation.
|
24
|
+
# This is useful in cases where you have multiple Rack applications but want to manually specify where to insert the tracing middleware.
|
25
|
+
#
|
26
|
+
# @example Manually install Rack instrumentation.
|
27
|
+
# OpenTelemetry::SDK.configure do |c|
|
28
|
+
# c.use_all({
|
29
|
+
# 'OpenTelemetry::Instrumentation::Rack' => { },
|
30
|
+
# 'OpenTelemetry::Instrumentation::Sinatra' => {
|
31
|
+
# install_rack: false
|
32
|
+
# },
|
33
|
+
# })
|
34
|
+
# end
|
35
|
+
#
|
14
36
|
class Instrumentation < OpenTelemetry::Instrumentation::Base
|
15
|
-
install do |
|
16
|
-
OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.install({})
|
37
|
+
install do |config|
|
38
|
+
OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.install({}) if config[:install_rack]
|
39
|
+
|
40
|
+
unless OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.installed?
|
41
|
+
OpenTelemetry.logger.warn('Rack instrumentation is required for Sinatra but not installed. Please see the docs for more details: https://opentelemetry.io/docs/languages/ruby/libraries/')
|
42
|
+
end
|
17
43
|
|
18
44
|
::Sinatra::Base.register Extensions::TracerExtension
|
19
45
|
end
|
20
46
|
|
47
|
+
option :install_rack, default: true, validate: :boolean
|
48
|
+
|
21
49
|
present do
|
22
50
|
defined?(::Sinatra)
|
23
51
|
end
|
52
|
+
|
53
|
+
def install_middleware(app)
|
54
|
+
app.use(*OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args) if config[:install_rack]
|
55
|
+
app.use(Middlewares::TracerMiddleware)
|
56
|
+
end
|
24
57
|
end
|
25
58
|
end
|
26
59
|
end
|
@@ -9,7 +9,7 @@ require 'opentelemetry-instrumentation-base'
|
|
9
9
|
|
10
10
|
module OpenTelemetry
|
11
11
|
module Instrumentation
|
12
|
-
#
|
12
|
+
# (see OpenTelemetry::Instrumentation::Sinatra::Instrumentation)
|
13
13
|
module Sinatra
|
14
14
|
end
|
15
15
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-instrumentation-sinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.
|
145
|
+
version: 1.65.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.
|
152
|
+
version: 1.65.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rubocop-performance
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,10 +228,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
|
|
228
228
|
licenses:
|
229
229
|
- Apache-2.0
|
230
230
|
metadata:
|
231
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-sinatra/0.
|
231
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-sinatra/0.24.1/file/CHANGELOG.md
|
232
232
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/sinatra
|
233
233
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
234
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-sinatra/0.
|
234
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-sinatra/0.24.1
|
235
235
|
post_install_message:
|
236
236
|
rdoc_options: []
|
237
237
|
require_paths:
|