opentelemetry-instrumentation-trilogy 0.56.3 → 0.58.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 +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +13 -0
- data/lib/opentelemetry/instrumentation/trilogy/patches/client.rb +33 -9
- data/lib/opentelemetry/instrumentation/trilogy/version.rb +1 -1
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f429627ce071719d113b276014d9a29a1fb62ac80f6642bb5539b4af00492fb
|
4
|
+
data.tar.gz: 991fc47cc5ad5035472afd2e63979c88439a1cf8ef267d4b49284bc91f05fa3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73586de29d6e371b1b6e7ccad39c02a98f2f5a25874a051e4b1a746656d600b19ccf72cd7162463a5b990e72b036a5a359574e9470afaf6a88996eed4f5bad7c
|
7
|
+
data.tar.gz: 6128893e616a10574686b3c7968bbf7f0659fcfdd5ce89564c0fc2c47b2d33d71c1c92f2a83e23e0888833a0d5a92e09ca69ea585a6c8acd81269049ecd40f87
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Release History: opentelemetry-instrumentation-trilogy
|
2
2
|
|
3
|
+
### v0.58.0 / 2024-01-06
|
4
|
+
|
5
|
+
* BREAKING CHANGE: Change db.mysql.instance.address to db.instance.id
|
6
|
+
|
7
|
+
* ADDED: Change db.mysql.instance.address to db.instance.id
|
8
|
+
* FIXED: Trilogy only set db.instance.id attribute if there is a value
|
9
|
+
|
10
|
+
### v0.57.0 / 2023-10-27
|
11
|
+
|
12
|
+
* ADDED: Instrument connect and ping
|
13
|
+
|
3
14
|
### v0.56.3 / 2023-08-03
|
4
15
|
|
5
16
|
* FIXED: Remove inline linter rules
|
data/README.md
CHANGED
@@ -51,6 +51,19 @@ OpenTelemetry::Instrumentation::Trilogy.with_attributes('pizzatoppings' => 'mush
|
|
51
51
|
end
|
52
52
|
```
|
53
53
|
|
54
|
+
## Semantic Conventions
|
55
|
+
|
56
|
+
This instrumentation generally uses [Database semantic conventions](https://opentelemetry.io/docs/specs/semconv/database/database-spans/).
|
57
|
+
|
58
|
+
| Attribute Name | Type | Notes |
|
59
|
+
| - | - | - |
|
60
|
+
| `db.instance.id` | String | The name of the DB host executing the query e.g. `SELECT @@hostname` |
|
61
|
+
| `db.name` | String | The name of the database from connection_options |
|
62
|
+
| `db.statement` | String | SQL statement being executed |
|
63
|
+
| `db.user` | String | The username from connection_options |
|
64
|
+
| `db.system` | String | `mysql` |
|
65
|
+
| `net.peer.name` | String | The name of the remote host from connection_options |
|
66
|
+
|
54
67
|
## How can I get involved?
|
55
68
|
|
56
69
|
The `opentelemetry-instrumentation-trilogy` gem source is [on github][repo-github], along with related gems including `opentelemetry-api` and `opentelemetry-sdk`.
|
@@ -48,6 +48,28 @@ module OpenTelemetry
|
|
48
48
|
|
49
49
|
FULL_SQL_REGEXP = Regexp.union(MYSQL_COMPONENTS.map { |component| COMPONENTS_REGEX_MAP[component] })
|
50
50
|
|
51
|
+
def initialize(options = {})
|
52
|
+
@connection_options = options # This is normally done by Trilogy#initialize
|
53
|
+
|
54
|
+
tracer.in_span(
|
55
|
+
'connect',
|
56
|
+
attributes: client_attributes.merge!(OpenTelemetry::Instrumentation::Trilogy.attributes),
|
57
|
+
kind: :client
|
58
|
+
) do
|
59
|
+
super
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def ping(...)
|
64
|
+
tracer.in_span(
|
65
|
+
'ping',
|
66
|
+
attributes: client_attributes.merge!(OpenTelemetry::Instrumentation::Trilogy.attributes),
|
67
|
+
kind: :client
|
68
|
+
) do
|
69
|
+
super
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
51
73
|
def query(sql)
|
52
74
|
tracer.in_span(
|
53
75
|
database_span_name(sql),
|
@@ -60,22 +82,24 @@ module OpenTelemetry
|
|
60
82
|
|
61
83
|
private
|
62
84
|
|
63
|
-
def client_attributes(sql)
|
85
|
+
def client_attributes(sql = nil)
|
64
86
|
attributes = {
|
65
87
|
::OpenTelemetry::SemanticConventions::Trace::DB_SYSTEM => 'mysql',
|
66
|
-
::OpenTelemetry::SemanticConventions::Trace::NET_PEER_NAME => connection_options
|
88
|
+
::OpenTelemetry::SemanticConventions::Trace::NET_PEER_NAME => connection_options&.fetch(:host, 'unknown sock') || 'unknown sock'
|
67
89
|
}
|
68
90
|
|
69
91
|
attributes[::OpenTelemetry::SemanticConventions::Trace::DB_NAME] = database_name if database_name
|
70
92
|
attributes[::OpenTelemetry::SemanticConventions::Trace::DB_USER] = database_user if database_user
|
71
93
|
attributes[::OpenTelemetry::SemanticConventions::Trace::PEER_SERVICE] = config[:peer_service] unless config[:peer_service].nil?
|
72
|
-
attributes['db.
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
94
|
+
attributes['db.instance.id'] = @connected_host unless @connected_host.nil?
|
95
|
+
|
96
|
+
if sql
|
97
|
+
case config[:db_statement]
|
98
|
+
when :obfuscate
|
99
|
+
attributes[::OpenTelemetry::SemanticConventions::Trace::DB_STATEMENT] = obfuscate_sql(sql)
|
100
|
+
when :include
|
101
|
+
attributes[::OpenTelemetry::SemanticConventions::Trace::DB_STATEMENT] = sql
|
102
|
+
end
|
79
103
|
end
|
80
104
|
|
81
105
|
attributes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-instrumentation-trilogy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.58.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: '2.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.
|
68
|
+
version: '2.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,28 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 1.
|
187
|
+
version: 1.59.0
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 1.
|
194
|
+
version: 1.59.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rubocop-performance
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 1.19.1
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 1.19.1
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: simplecov
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,20 +254,6 @@ dependencies:
|
|
240
254
|
- - "~>"
|
241
255
|
- !ruby/object:Gem::Version
|
242
256
|
version: '0.9'
|
243
|
-
- !ruby/object:Gem::Dependency
|
244
|
-
name: yard-doctest
|
245
|
-
requirement: !ruby/object:Gem::Requirement
|
246
|
-
requirements:
|
247
|
-
- - "~>"
|
248
|
-
- !ruby/object:Gem::Version
|
249
|
-
version: 0.1.6
|
250
|
-
type: :development
|
251
|
-
prerelease: false
|
252
|
-
version_requirements: !ruby/object:Gem::Requirement
|
253
|
-
requirements:
|
254
|
-
- - "~>"
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
version: 0.1.6
|
257
257
|
description: Adds auto instrumentation that includes SQL metadata
|
258
258
|
email:
|
259
259
|
- cncf-opentelemetry-contributors@lists.cncf.io
|
@@ -275,10 +275,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
|
|
275
275
|
licenses:
|
276
276
|
- Apache-2.0
|
277
277
|
metadata:
|
278
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-trilogy/0.
|
278
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-trilogy/0.58.0/file/CHANGELOG.md
|
279
279
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/trilogy
|
280
280
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
281
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-trilogy/0.
|
281
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-trilogy/0.58.0
|
282
282
|
post_install_message:
|
283
283
|
rdoc_options: []
|
284
284
|
require_paths:
|