elastic-apm 4.5.0 → 4.6.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.jenkins_exclude.yml +86 -29
  3. data/.ci/.jenkins_framework.yml +4 -3
  4. data/.ci/{.jenkins_master_framework.yml → .jenkins_main_framework.yml} +0 -0
  5. data/.ci/.jenkins_ruby.yml +1 -1
  6. data/.ci/.jenkins_ruby_benchmarks.yml +6 -0
  7. data/.ci/Jenkinsfile +16 -37
  8. data/.ci/jobs/apm-agent-ruby-mbp.yml +1 -1
  9. data/.github/PULL_REQUEST_TEMPLATE.md +5 -5
  10. data/.pre-commit-config.yaml +2 -2
  11. data/CHANGELOG.asciidoc +38 -0
  12. data/CONTRIBUTING.md +2 -2
  13. data/Gemfile +11 -2
  14. data/README.md +1 -1
  15. data/Rakefile +2 -2
  16. data/bench/report.rb +1 -1
  17. data/docs/api.asciidoc +2 -2
  18. data/docs/configuration.asciidoc +7 -5
  19. data/docs/introduction.asciidoc +3 -3
  20. data/docs/log-correlation.asciidoc +1 -1
  21. data/docs/upgrading.asciidoc +1 -1
  22. data/elastic-apm.gemspec +3 -2
  23. data/lib/elastic_apm/central_config.rb +5 -0
  24. data/lib/elastic_apm/config/server_info.rb +50 -0
  25. data/lib/elastic_apm/config.rb +25 -4
  26. data/lib/elastic_apm/error.rb +2 -1
  27. data/lib/elastic_apm/error_builder.rb +1 -0
  28. data/lib/elastic_apm/instrumenter.rb +4 -2
  29. data/lib/elastic_apm/metadata/system_info/container_info.rb +4 -3
  30. data/lib/elastic_apm/metadata/system_info.rb +1 -1
  31. data/lib/elastic_apm/metrics.rb +1 -4
  32. data/lib/elastic_apm/span/context/links.rb +32 -0
  33. data/lib/elastic_apm/span/context/service.rb +55 -0
  34. data/lib/elastic_apm/span/context.rb +19 -3
  35. data/lib/elastic_apm/span.rb +3 -0
  36. data/lib/elastic_apm/span_helpers.rb +2 -2
  37. data/lib/elastic_apm/spies/elasticsearch.rb +11 -1
  38. data/lib/elastic_apm/spies/mongo.rb +5 -12
  39. data/lib/elastic_apm/spies/racecar.rb +77 -0
  40. data/lib/elastic_apm/spies/redis.rb +1 -1
  41. data/lib/elastic_apm/spies/sequel.rb +9 -0
  42. data/lib/elastic_apm/spies/sns.rb +1 -1
  43. data/lib/elastic_apm/spies/sqs.rb +1 -0
  44. data/lib/elastic_apm/trace_context/tracestate.rb +1 -1
  45. data/lib/elastic_apm/trace_context.rb +1 -1
  46. data/lib/elastic_apm/transport/base.rb +1 -3
  47. data/lib/elastic_apm/transport/serializers/span_serializer.rb +25 -0
  48. data/lib/elastic_apm/version.rb +1 -1
  49. data/lib/elastic_apm.rb +1 -0
  50. metadata +29 -9
@@ -69,6 +69,14 @@ module ElasticAPM
69
69
  base[:message] = build_message(context.message)
70
70
  end
71
71
 
72
+ if context.service
73
+ base[:service] = build_service(context.service)
74
+ end
75
+
76
+ if context.links && !context.links.empty?
77
+ base[:links] = build_links(context.links)
78
+ end
79
+
72
80
  base
73
81
  end
74
82
 
@@ -121,6 +129,23 @@ module ElasticAPM
121
129
  }
122
130
  }
123
131
  end
132
+
133
+ def build_service(service)
134
+ {
135
+ target: {
136
+ name: keyword_field(service.target&.name),
137
+ type: keyword_field(service.target&.type)
138
+ }
139
+ }
140
+ end
141
+
142
+ def build_links(links)
143
+ {
144
+ links: links.map do |link|
145
+ {"trace_id" => link.trace_id, "span_id" => link.span_id}
146
+ end
147
+ }
148
+ end
124
149
  end
125
150
 
126
151
  private
@@ -18,5 +18,5 @@
18
18
  # frozen_string_literal: true
19
19
 
20
20
  module ElasticAPM
21
- VERSION = '4.5.0'
21
+ VERSION = '4.6.0'
22
22
  end
data/lib/elastic_apm.rb CHANGED
@@ -26,6 +26,7 @@ require 'logger'
26
26
  require 'concurrent'
27
27
  require 'forwardable'
28
28
  require 'securerandom'
29
+ require 'ruby2_keywords'
29
30
 
30
31
  require 'elastic_apm/version'
31
32
  require 'elastic_apm/internal_error'
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastic-apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikkel Malmberg
8
- autorequire:
8
+ - Emily Stolfo
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2021-12-03 00:00:00.000000000 Z
12
+ date: 2023-01-11 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: concurrent-ruby
@@ -38,9 +39,23 @@ dependencies:
38
39
  - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '3.0'
41
- description:
42
+ - !ruby/object:Gem::Dependency
43
+ name: ruby2_keywords
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ description:
42
57
  email:
43
- - mikkel@elastic.co
58
+ - info@elastic.co
44
59
  executables: []
45
60
  extensions: []
46
61
  extra_rdoc_files: []
@@ -48,8 +63,9 @@ files:
48
63
  - ".ci/.jenkins_codecov.yml"
49
64
  - ".ci/.jenkins_exclude.yml"
50
65
  - ".ci/.jenkins_framework.yml"
51
- - ".ci/.jenkins_master_framework.yml"
66
+ - ".ci/.jenkins_main_framework.yml"
52
67
  - ".ci/.jenkins_ruby.yml"
68
+ - ".ci/.jenkins_ruby_benchmarks.yml"
53
69
  - ".ci/Jenkinsfile"
54
70
  - ".ci/docker/jruby/11-jdk/Dockerfile"
55
71
  - ".ci/docker/jruby/12-jdk/Dockerfile"
@@ -136,6 +152,7 @@ files:
136
152
  - lib/elastic_apm/config/options.rb
137
153
  - lib/elastic_apm/config/regexp_list.rb
138
154
  - lib/elastic_apm/config/round_float.rb
155
+ - lib/elastic_apm/config/server_info.rb
139
156
  - lib/elastic_apm/config/wildcard_pattern_list.rb
140
157
  - lib/elastic_apm/context.rb
141
158
  - lib/elastic_apm/context/request.rb
@@ -192,7 +209,9 @@ files:
192
209
  - lib/elastic_apm/span/context/db.rb
193
210
  - lib/elastic_apm/span/context/destination.rb
194
211
  - lib/elastic_apm/span/context/http.rb
212
+ - lib/elastic_apm/span/context/links.rb
195
213
  - lib/elastic_apm/span/context/message.rb
214
+ - lib/elastic_apm/span/context/service.rb
196
215
  - lib/elastic_apm/span_helpers.rb
197
216
  - lib/elastic_apm/spies.rb
198
217
  - lib/elastic_apm/spies/action_dispatch.rb
@@ -205,6 +224,7 @@ files:
205
224
  - lib/elastic_apm/spies/json.rb
206
225
  - lib/elastic_apm/spies/mongo.rb
207
226
  - lib/elastic_apm/spies/net_http.rb
227
+ - lib/elastic_apm/spies/racecar.rb
208
228
  - lib/elastic_apm/spies/rake.rb
209
229
  - lib/elastic_apm/spies/redis.rb
210
230
  - lib/elastic_apm/spies/resque.rb
@@ -258,7 +278,7 @@ licenses:
258
278
  - Apache-2.0
259
279
  metadata:
260
280
  source_code_uri: https://github.com/elastic/apm-agent-ruby
261
- post_install_message:
281
+ post_install_message:
262
282
  rdoc_options: []
263
283
  require_paths:
264
284
  - lib
@@ -273,8 +293,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
293
  - !ruby/object:Gem::Version
274
294
  version: '0'
275
295
  requirements: []
276
- rubygems_version: 3.2.22
277
- signing_key:
296
+ rubygems_version: 3.0.3.1
297
+ signing_key:
278
298
  specification_version: 4
279
299
  summary: The official Elastic APM agent for Ruby
280
300
  test_files: []