elastic-apm 4.7.3 → 4.8.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.exclude.yml +21 -82
  3. data/.ci/.framework.yml +1 -4
  4. data/.ci/.ruby.yml +1 -1
  5. data/.ci/updatecli/values.d/apm-data-spec.yml +1 -0
  6. data/.ci/updatecli/values.d/apm-gherkin.yml +1 -0
  7. data/.ci/updatecli/values.d/apm-json-specs.yml +1 -0
  8. data/.ci/updatecli/values.d/scm.yml +10 -0
  9. data/.ci/updatecli/values.d/update-compose.yml +3 -0
  10. data/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  11. data/.github/dependabot.yml +24 -19
  12. data/.github/workflows/README.md +1 -2
  13. data/.github/workflows/addToProject.yml +16 -2
  14. data/.github/workflows/ci.yml +6 -6
  15. data/.github/workflows/docs-build.yml +19 -0
  16. data/.github/workflows/docs-cleanup.yml +14 -0
  17. data/.github/workflows/github-commands-comment.yml +38 -0
  18. data/.github/workflows/microbenchmark.yml +7 -24
  19. data/.github/workflows/release.yml +39 -24
  20. data/.github/workflows/run-matrix.yml +21 -12
  21. data/.github/workflows/test-reporter.yml +4 -3
  22. data/.github/workflows/updatecli.yml +45 -13
  23. data/Gemfile +13 -0
  24. data/bin/dev +2 -2
  25. data/docs/docset.yml +9 -0
  26. data/docs/reference/advanced-topics.md +12 -0
  27. data/docs/reference/api-reference.md +422 -0
  28. data/docs/reference/configuration.md +734 -0
  29. data/docs/{context.asciidoc → reference/context.md} +21 -21
  30. data/docs/reference/custom-instrumentation.md +72 -0
  31. data/docs/{getting-started-rack.asciidoc → reference/getting-started-rack.md} +20 -29
  32. data/docs/reference/getting-started-rails.md +27 -0
  33. data/docs/reference/graphql.md +21 -0
  34. data/docs/reference/index.md +24 -0
  35. data/docs/{logs.asciidoc → reference/logs.md} +38 -56
  36. data/docs/reference/metrics.md +199 -0
  37. data/docs/reference/opentracing-api.md +70 -0
  38. data/docs/reference/performance-tuning.md +71 -0
  39. data/docs/reference/set-up-apm-ruby-agent.md +16 -0
  40. data/docs/reference/supported-technologies.md +128 -0
  41. data/docs/reference/toc.yml +22 -0
  42. data/docs/reference/upgrading.md +19 -0
  43. data/docs/release-notes/index.md +166 -0
  44. data/docs/release-notes/known-issues.md +24 -0
  45. data/docs/release-notes/toc.yml +3 -0
  46. data/lib/elastic_apm/context_builder.rb +5 -2
  47. data/lib/elastic_apm/spies/sidekiq.rb +2 -1
  48. data/lib/elastic_apm/stacktrace_builder.rb +3 -3
  49. data/lib/elastic_apm/version.rb +1 -1
  50. data/updatecli-compose.yaml +23 -0
  51. metadata +37 -36
  52. data/.ci/snapshoty.yml +0 -33
  53. data/.ci/updatecli/updatecli.d/update-gherkin-specs.yml +0 -84
  54. data/.ci/updatecli/updatecli.d/update-json-specs.yml +0 -84
  55. data/.ci/updatecli/updatecli.d/update-specs.yml +0 -86
  56. data/.ci/updatecli/values.yml +0 -14
  57. data/.github/workflows/coverage-reporter.yml +0 -34
  58. data/.github/workflows/opentelemetry.yml +0 -22
  59. data/.github/workflows/snapshoty.yml +0 -35
  60. data/CHANGELOG.asciidoc +0 -990
  61. data/docs/advanced.asciidoc +0 -14
  62. data/docs/api.asciidoc +0 -487
  63. data/docs/configuration.asciidoc +0 -889
  64. data/docs/custom-instrumentation.asciidoc +0 -80
  65. data/docs/debugging.asciidoc +0 -44
  66. data/docs/getting-started-rails.asciidoc +0 -30
  67. data/docs/graphql.asciidoc +0 -23
  68. data/docs/index.asciidoc +0 -38
  69. data/docs/introduction.asciidoc +0 -36
  70. data/docs/metrics.asciidoc +0 -235
  71. data/docs/opentracing.asciidoc +0 -94
  72. data/docs/performance-tuning.asciidoc +0 -106
  73. data/docs/redirects.asciidoc +0 -9
  74. data/docs/release-notes.asciidoc +0 -15
  75. data/docs/set-up.asciidoc +0 -19
  76. data/docs/supported-technologies.asciidoc +0 -157
  77. data/docs/upgrading.asciidoc +0 -18
  78. /data/docs/{images → reference/images}/dynamic-config.svg +0 -0
@@ -1,15 +0,0 @@
1
- :pull: https://github.com/elastic/apm-agent-ruby/pull/
2
-
3
- [[release-notes]]
4
- == Release notes
5
-
6
- All notable changes to this project will be documented here.
7
- This project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioning].
8
-
9
- * <<release-notes-4.x>>
10
- * <<release-notes-3.x>>
11
- * <<release-notes-2.x>>
12
- * <<release-notes-1.x>>
13
- * <<release-notes-0.x>>
14
-
15
- include::../CHANGELOG.asciidoc[]
data/docs/set-up.asciidoc DELETED
@@ -1,19 +0,0 @@
1
- ifdef::env-github[]
2
- NOTE: For the best reading experience,
3
- please view this documentation at
4
- https://www.elastic.co/guide/en/apm/agent/ruby/current/set-up.html[elastic.co]
5
- endif::[]
6
-
7
- [[set-up]]
8
- == Set up the Agent
9
-
10
- To get you off the ground, we’ve prepared guides for setting up the Agent with different frameworks:
11
-
12
- * <<getting-started-rails,Rails>>
13
- * <<getting-started-rack,Rack>>
14
-
15
- For custom instrumentation, see the <<api>>.
16
-
17
- include::./getting-started-rails.asciidoc[]
18
-
19
- include::./getting-started-rack.asciidoc[]
@@ -1,157 +0,0 @@
1
- ifdef::env-github[]
2
- NOTE: For the best reading experience,
3
- please view this documentation at https://www.elastic.co/guide/en/apm/agent/ruby[elastic.co]
4
- endif::[]
5
-
6
- [[supported-technologies]]
7
- == Supported technologies
8
-
9
- The Elastic APM Ruby Agent has built-in support for many frameworks and
10
- libraries. Generally, we want to support all of the most popular libraries. If your favorite
11
- is missing, feel free to request it in an issue, or better yet, create a pull
12
- request.
13
-
14
- [float]
15
- [[supported-technologies-ruby]]
16
- === Ruby
17
-
18
- We follow Ruby's own maintenance policy and officially support all currently
19
- maintained versions per
20
- https://www.ruby-lang.org/en/downloads/branches/[Ruby Maintenance Branches].
21
-
22
- [float]
23
- [[supported-technologies-web]]
24
- === Web Frameworks and Libraries
25
-
26
- We have automatic support for Ruby on Rails and all Rack compatible web
27
- frameworks.
28
-
29
- We test against all supported minor versions of Rails, Sinatra, and Grape.
30
-
31
- [float]
32
- [[supported-technologies-rails]]
33
- ==== Ruby on Rails
34
-
35
- We currently support all versions of Rails since 4.2.
36
- This follows Rails' own https://rubyonrails.org/security/[Security policy].
37
-
38
- See <<getting-started-rails>>.
39
-
40
- [float]
41
- [[supported-technologies-sinatra]]
42
- ==== Sinatra
43
-
44
- We currently support all versions of Sinatra since 1.0.
45
-
46
- See <<getting-started-rack>>.
47
-
48
- [float]
49
- [[supported-technologies-grape]]
50
- ==== Grape
51
-
52
- We currently support all versions of Grape since 1.2.
53
-
54
- See <<getting-started-grape>>.
55
-
56
- [float]
57
- [[supported-technologies-databases]]
58
- === Databases
59
-
60
- We automatically instrument database actions using:
61
-
62
- - ActiveRecord (v4.2+)
63
- - DynamoDB (v1.0+)
64
- - Elasticsearch (v0.9+)
65
- - Mongo (v2.1+)
66
- - Redis (v3.1+)
67
- - Sequel (v4.35+)
68
-
69
- [float]
70
- [[supported-technologies-http]]
71
- === External HTTP requests
72
-
73
- We automatically instrument and add support for distributed tracing to external
74
- requests using these libraries:
75
-
76
- - `net/http`
77
- - Http.rb (v0.6+)
78
- - Faraday (v0.2.1+)
79
-
80
- *Note:* These libraries usually assume `localhost` if no `Host` is specified, so the agent does as well.
81
-
82
- [float]
83
- [[supported-technologies-backgroud-processing]]
84
- === Background Processing
85
-
86
- We automatically instrument background processing using:
87
-
88
- - DelayedJob
89
- - Sidekiq
90
- - Shoryuken
91
- - Sneakers (v2.12.0+) (Experimental, see https://github.com/elastic/apm-agent-ruby/pull/676[#676])
92
- - Resque (v2.0.0+)
93
- - SuckerPunch (v2.0.0+)
94
-
95
- [float]
96
- [[supported-technologies-resque]]
97
- === Resque
98
-
99
- To make the agent work with Resque, you need to require `elastic_apm/resque` before you boot your Resque worker process.
100
-
101
- For example in your `Rakefile`:
102
-
103
- [source,ruby]
104
- ----
105
- require 'resque'
106
- require 'elastic_apm'
107
- require 'elastic_apm/resque'
108
- ----
109
-
110
- When you start Resque, you should see a series of messages like the following in the Resque logs:
111
-
112
- [source,ruby]
113
- ----
114
- I, [XXX #81227] INFO -- : Starting worker main
115
- D, [XXX #81227] DEBUG -- : Registered signals
116
- I, [XXX #81227] INFO -- : Running before_first_fork hooks
117
- D, [XXX #81227] DEBUG -- : Starting ElasticAPM agent
118
- ----
119
-
120
- Also be sure to set the Resque environment variable `RUN_AT_EXIT_HOOKS` to `true`. Otherwise, the fork may be
121
- terminated before the agent has a chance to send all the fork's events to the APM server.
122
-
123
- [float]
124
- [[supported-technologies-sucker-punch]]
125
- === SuckerPunch
126
-
127
- Asynchronously executed jobs in SuckerPunch are automatically instrumented.
128
-
129
- Note that errors raised in the user-defined `JobClass#perform` method will be first handled by the SuckerPunch exception
130
- handler before being handled by the agent. The handler is accessed/set via `SuckerPunch.exception_handler` in version
131
- 2.0. The agent transaction will be marked as successful unless you re-raise the error in the exception handler.
132
- You can also explicitly report the error via <<api-agent-report,`ElasticAPM.report`>> in a custom SuckerPunch exception
133
- handler.
134
-
135
- [float]
136
- [[supported-technologies-grpc]]
137
- === gRPC
138
-
139
- We automatically instrument gRPC using the `grpc` gem. Note that this is experimental, as the `grpc` gem's
140
- support for `Interceptors` is experimental as of version 1.27.0.
141
-
142
- To instrument a client, add the `ElasticAPM::GRPC::ClientInterceptor` as an `interceptor` at Stub creation.
143
-
144
- [source,ruby]
145
- ----
146
- Helloworld::Greeter::Stub.new(
147
- 'localhost:50051',
148
- interceptors: [ElasticAPM::GRPC::ClientInterceptor.new]
149
- )
150
- ----
151
-
152
- To instrument a server, add the `ElasticAPM::GRPC::ServerInterceptor`.
153
-
154
- [source,ruby]
155
- ----
156
- GRPC::RpcServer.new(interceptors: [ElasticAPM::GRPC::ServerInterceptor.new])
157
- ----
@@ -1,18 +0,0 @@
1
- [[upgrading]]
2
- == Upgrading
3
- Upgrades between minor versions of the agent, like from 2.1 to 2.2 are always backwards compatible.
4
- Upgrades that involve a major version bump often come with some backwards incompatible changes.
5
-
6
- Before upgrading the agent, be sure to review the:
7
-
8
- * <<release-notes,Agent release notes>>
9
- * {apm-guide-ref}/agent-server-compatibility.html[Agent and Server compatibility chart]
10
-
11
- [float]
12
- [[end-of-life-dates]]
13
- === End of life dates
14
-
15
- We love all our products, but sometimes we must say goodbye to a release so that we can continue moving
16
- forward on future development and innovation.
17
- Our https://www.elastic.co/support/eol[End of life policy] defines how long a given release is considered supported,
18
- as well as how long a release is considered still in active development or maintenance.