apm_traceable-datadog 2.0.0 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a402c824acef807aee5d6660ae3f9ce94a32f017bdaec757ede9138307292a2f
4
- data.tar.gz: 396e094fbf8b3da07c9738c55a94816f62f23e6ecd9e01d57ece495d49b2ab5a
3
+ metadata.gz: 434d361660169a1d139481621475ad043b8a8828dfc911719d64e49303774a97
4
+ data.tar.gz: c1f4242e74d043f339ab9c49427886a6ec2df132da84f50119ac94a4efac6d42
5
5
  SHA512:
6
- metadata.gz: 7e6923f470bd687f2fc3433156c06ef86dbe3613c4eb411283d06f3049c3df5e9b72b17c078be6e4da772854f4fd01c1b6fdfa487dbaee0ebc1f131282aca002
7
- data.tar.gz: 2c2b95ec99ff0baba22568d7277c88220e683ef6f892b4793ea842f8420fac4c12a5e8512c08050a743180a61b7eab880fd143da36fd86bdc0e22fd82fa01420
6
+ metadata.gz: 11b3d9676e80f2cc43db56cd26d91ee3d0962f47d3eae9d3e93de52a1992d928cd39a915bffc15e7387958bc5eb503b242f7d705733bdee3aa8649700eefcce2
7
+ data.tar.gz: 9f652bac5203ca069e69eb2bfbacf3009f95b3507defd035bc5213ac01f092873fc9791e162f93336b9aa298abe38b0f3ce3485f709dc8dbec2d7abdd8cd1449
data/Gemfile CHANGED
@@ -9,4 +9,4 @@ gem 'rake', '~> 13.0'
9
9
  gem 'rspec', '~> 3.0'
10
10
  gem 'rubocop', '~> 1.21'
11
11
  gem 'rubocop-rake', '~> 0.6.0'
12
- gem 'rubocop-rspec', '~> 2.24.0'
12
+ gem 'rubocop-rspec', '~> 3.9'
@@ -1,12 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/inflector'
4
+ require 'concurrent/map'
4
5
  require 'datadog/tracing'
5
6
 
6
7
  module ApmTraceable
7
8
  module Adapters
8
9
  # Datadogへトレース結果を送るためのアダプター
9
10
  class DatadogAdapter
11
+ RESOURCE_NAME_CACHE = Concurrent::Map.new
12
+ UNKNOWN_CLASS_NAME = 'unknown_class'
13
+
10
14
  def initialize(service_name:)
11
15
  super()
12
16
 
@@ -26,8 +30,15 @@ module ApmTraceable
26
30
  attr_reader :service_name
27
31
 
28
32
  def resource_name(context_class)
29
- # include 先のクラス名を利用して `admin.users_controller` のような文字列を作る
30
- (context_class&.name || 'UnknownClass').underscore&.tr('/', '.')
33
+ key = context_class&.name
34
+
35
+ return UNKNOWN_CLASS_NAME unless key
36
+
37
+ # Concurrent::Mapを使い、既に生成済みのリソース名に関しては処理をスキップ
38
+ RESOURCE_NAME_CACHE.compute_if_absent(key) do
39
+ # include 先のクラス名を利用して `admin.users_controller` のような文字列を作る
40
+ key.underscore.tr('/', '.').freeze
41
+ end
31
42
  end
32
43
  end
33
44
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ApmTraceable
4
4
  module Datadog
5
- VERSION = '2.0.0'
5
+ VERSION = '2.1.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apm_traceable-datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kokuyouwind
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-01-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -38,6 +37,20 @@ dependencies:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
39
  version: 1.0.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: concurrent-ruby
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.3.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.0
41
54
  - !ruby/object:Gem::Dependency
42
55
  name: datadog
43
56
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +79,6 @@ files:
66
79
  - LICENSE.txt
67
80
  - README.md
68
81
  - Rakefile
69
- - apm_traceable-datadog.gemspec
70
82
  - bin/console
71
83
  - bin/setup
72
84
  - lib/apm_traceable/adapters/datadog_adapter.rb
@@ -80,7 +92,6 @@ metadata:
80
92
  source_code_uri: https://github.com/kokuyouwind/apm_traceable-datadog
81
93
  changelog_uri: https://github.com/kokuyouwind/apm_traceable-datadog
82
94
  rubygems_mfa_required: 'true'
83
- post_install_message:
84
95
  rdoc_options: []
85
96
  require_paths:
86
97
  - lib
@@ -95,8 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
106
  - !ruby/object:Gem::Version
96
107
  version: '0'
97
108
  requirements: []
98
- rubygems_version: 3.4.10
99
- signing_key:
109
+ rubygems_version: 3.6.9
100
110
  specification_version: 4
101
111
  summary: APM Traceable gem Plugin for Datadog
102
112
  test_files: []
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'lib/apm_traceable/datadog/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'apm_traceable-datadog'
7
- spec.version = ApmTraceable::Datadog::VERSION
8
- spec.authors = ['kokuyouwind']
9
- spec.email = ['kokuyouwind@gmail.com']
10
-
11
- spec.summary = 'APM Traceable gem Plugin for Datadog'
12
- spec.description = 'APM Traceable gem Plugin for Datadog'
13
- spec.homepage = 'https://github.com/kokuyouwind/apm_traceable-datadog'
14
- spec.license = 'MIT'
15
- spec.required_ruby_version = '>= 3.0.0'
16
-
17
- spec.metadata['homepage_uri'] = spec.homepage
18
- spec.metadata['source_code_uri'] = 'https://github.com/kokuyouwind/apm_traceable-datadog'
19
- spec.metadata['changelog_uri'] = 'https://github.com/kokuyouwind/apm_traceable-datadog'
20
-
21
- # Specify which files should be added to the gem when it is released.
22
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
- `git ls-files -z`.split("\x0").reject do |f|
25
- (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
- end
27
- end
28
- spec.bindir = 'exe'
29
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
- spec.require_paths = ['lib']
31
-
32
- spec.add_dependency 'activesupport', '>= 7.0.0'
33
- spec.add_dependency 'apm_traceable', '>= 1.0.0'
34
- spec.add_dependency 'datadog', '>= 2.2.0'
35
- spec.metadata['rubygems_mfa_required'] = 'true'
36
- end