elastic-apm 4.8.0 → 4.9.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/.ci/.exclude.yml +8 -2
- data/.github/CODEOWNERS +1 -0
- data/.github/dependabot.yml +0 -2
- data/.github/workflows/addToProject.yml +40 -23
- data/.github/workflows/docs-build.yml +10 -13
- data/.github/workflows/docs-deploy.yml +16 -0
- data/.github/workflows/docs-preview-cleanup.yml +12 -0
- data/.github/workflows/github-commands-comment.yml +1 -21
- data/.github/workflows/release.yml +2 -1
- data/Dockerfile +38 -12
- data/Gemfile +27 -5
- data/bin/dev +14 -2
- data/bin/run-bdd +2 -2
- data/docker-compose.yml +12 -5
- data/docs/docset.yml +2 -0
- data/docs/reference/advanced-topics.md +6 -0
- data/docs/reference/api-reference.md +6 -0
- data/docs/reference/configuration.md +19 -2
- data/docs/reference/context.md +6 -0
- data/docs/reference/custom-instrumentation.md +6 -0
- data/docs/reference/getting-started-rack.md +6 -0
- data/docs/reference/getting-started-rails.md +6 -0
- data/docs/reference/graphql.md +6 -0
- data/docs/reference/index.md +9 -0
- data/docs/reference/logs.md +6 -0
- data/docs/reference/metrics.md +6 -0
- data/docs/reference/opentracing-api.md +6 -0
- data/docs/reference/performance-tuning.md +6 -0
- data/docs/reference/set-up-apm-ruby-agent.md +6 -0
- data/docs/reference/supported-technologies.md +24 -18
- data/docs/reference/toc.yml +3 -1
- data/docs/reference/upgrading.md +6 -0
- data/docs/release-notes/index.md +16 -0
- data/docs/release-notes/known-issues.md +6 -1
- data/elastic-apm.gemspec +2 -2
- data/lib/elastic_apm/central_config.rb +1 -1
- data/lib/elastic_apm/config/round_float_hash_value.rb +35 -0
- data/lib/elastic_apm/config.rb +2 -0
- data/lib/elastic_apm/instrumenter.rb +23 -3
- data/lib/elastic_apm/spies/http.rb +1 -1
- data/lib/elastic_apm/transaction.rb +11 -4
- data/lib/elastic_apm/version.rb +1 -1
- metadata +15 -4
- data/.github/workflows/docs-cleanup.yml +0 -14
- data/SECURITY.md +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 31edb9bba2adf03fbf15be845cbf4b9612b9d53821cb628d0e58b8433a913645
|
|
4
|
+
data.tar.gz: 7d2ea706462aa65a194292d6014618ed869468e30269de1d1c58b6b744e7a89b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6115cc9c39a67366f472436d6f0e22df08518915581361d2ee5999846d0a65238bdfe79e9522f38b1d19312642c09bc1bb5abb7a021efc3b138d24525fb53ccd
|
|
7
|
+
data.tar.gz: 250ece59f0403da4844ca5108559a1a434cceec6dbb2fb5dfb3113d6f466553f5dbf97e820cdeb4b2c6f05de67891521174a1f6f6a32aedd9ee8fd9ffc50032c
|
data/.ci/.exclude.yml
CHANGED
|
@@ -73,7 +73,9 @@ exclude:
|
|
|
73
73
|
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
74
74
|
FRAMEWORK: rails-main
|
|
75
75
|
|
|
76
|
-
# Only test rails 7.2 on ruby >= 3.
|
|
76
|
+
# Only test rails 7.2 on ruby >= 3.4
|
|
77
|
+
- VERSION: ruby:3.1
|
|
78
|
+
FRAMEWORK: rails-7.2
|
|
77
79
|
- VERSION: ruby:2.7
|
|
78
80
|
FRAMEWORK: rails-7.2
|
|
79
81
|
- VERSION: ruby:2.6
|
|
@@ -103,7 +105,11 @@ exclude:
|
|
|
103
105
|
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
104
106
|
FRAMEWORK: sinatra-main
|
|
105
107
|
|
|
106
|
-
# Only test grape master on ruby
|
|
108
|
+
# Only test grape master on ruby >= 3.2
|
|
109
|
+
- VERSION: ruby:3.1
|
|
110
|
+
FRAMEWORK: grape-master
|
|
111
|
+
- VERSION: ruby:2.7
|
|
112
|
+
FRAMEWORK: grape-master
|
|
107
113
|
- VERSION: ruby:2.6
|
|
108
114
|
FRAMEWORK: grape-master
|
|
109
115
|
- VERSION: ruby:2.4
|
data/.github/CODEOWNERS
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/.github/workflows @elastic/observablt-ci
|
data/.github/dependabot.yml
CHANGED
|
@@ -16,31 +16,48 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- name: Get token
|
|
18
18
|
id: get_token
|
|
19
|
-
uses:
|
|
19
|
+
uses: actions/create-github-app-token@v3
|
|
20
20
|
with:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
uses: elastic/
|
|
21
|
+
app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }}
|
|
22
|
+
private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }}
|
|
23
|
+
permission-organization-projects: write
|
|
24
|
+
permission-issues: read
|
|
25
|
+
permission-pull-requests: read
|
|
26
|
+
|
|
27
|
+
- name: Add milestoned issues to project
|
|
28
|
+
id: add-issue-to-project
|
|
29
|
+
if: github.event.issue && github.event.issue.milestone
|
|
30
|
+
uses: elastic/oblt-actions/github/project-add@v1
|
|
31
|
+
with:
|
|
32
|
+
github-token: ${{ steps.get_token.outputs.token }}
|
|
33
|
+
project-id: 1674
|
|
34
|
+
item-url: ${{ github.event.issue.html_url }}
|
|
35
|
+
|
|
36
|
+
- name: Set issue status to Planned
|
|
31
37
|
if: github.event.issue && github.event.issue.milestone
|
|
38
|
+
uses: elastic/oblt-actions/github/project-field-set@v1
|
|
32
39
|
with:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
github-token: ${{ steps.get_token.outputs.token }}
|
|
41
|
+
project-id: 1674
|
|
42
|
+
item-id: ${{ steps.add-issue-to-project.outputs.item-id }}
|
|
43
|
+
field-name: Status
|
|
44
|
+
field-value: Planned
|
|
45
|
+
|
|
46
|
+
- name: Add new pull requests to project
|
|
47
|
+
id: add-pr-to-project
|
|
48
|
+
if: github.event.action == 'opened' && github.event.pull_request
|
|
49
|
+
uses: elastic/oblt-actions/github/project-add@v1
|
|
50
|
+
with:
|
|
51
|
+
github-token: ${{ steps.get_token.outputs.token }}
|
|
52
|
+
project-id: 1674
|
|
53
|
+
item-url: ${{ github.event.pull_request.html_url }}
|
|
54
|
+
|
|
55
|
+
- name: Set pull request status to In Progress
|
|
40
56
|
if: github.event.action == 'opened' && github.event.pull_request
|
|
57
|
+
uses: elastic/oblt-actions/github/project-field-set@v1
|
|
41
58
|
with:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
59
|
+
github-token: ${{ steps.get_token.outputs.token }}
|
|
60
|
+
project-id: 1674
|
|
61
|
+
item-id: ${{ steps.add-pr-to-project.outputs.item-id }}
|
|
62
|
+
field-name: Status
|
|
63
|
+
field-value: In Progress
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
name: docs-build
|
|
2
|
-
|
|
3
2
|
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: [main]
|
|
5
|
+
types: [opened, synchronize, reopened]
|
|
4
6
|
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
pull_request_target: ~
|
|
7
|
+
branches: [main]
|
|
8
8
|
merge_group: ~
|
|
9
|
-
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
pull-requests: read
|
|
10
12
|
jobs:
|
|
11
|
-
|
|
12
|
-
uses: elastic/docs-
|
|
13
|
+
build:
|
|
14
|
+
uses: elastic/docs-actions/.github/workflows/docs-build.yml@v1
|
|
13
15
|
with:
|
|
14
|
-
|
|
15
|
-
permissions:
|
|
16
|
-
deployments: write
|
|
17
|
-
id-token: write
|
|
18
|
-
contents: read
|
|
19
|
-
pull-requests: read
|
|
16
|
+
enable-vale-linting: true
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: docs-deploy
|
|
2
|
+
on:
|
|
3
|
+
workflow_run:
|
|
4
|
+
workflows: [docs-build]
|
|
5
|
+
types: [completed]
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
deployments: write
|
|
9
|
+
id-token: write
|
|
10
|
+
pull-requests: write
|
|
11
|
+
actions: read
|
|
12
|
+
jobs:
|
|
13
|
+
deploy:
|
|
14
|
+
uses: elastic/docs-actions/.github/workflows/docs-deploy.yml@v1
|
|
15
|
+
with:
|
|
16
|
+
enable-vale-linting: true
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
name: docs-preview-cleanup
|
|
2
|
+
on:
|
|
3
|
+
pull_request_target:
|
|
4
|
+
branches: [main]
|
|
5
|
+
types: [closed]
|
|
6
|
+
permissions:
|
|
7
|
+
contents: none
|
|
8
|
+
deployments: write
|
|
9
|
+
id-token: write
|
|
10
|
+
jobs:
|
|
11
|
+
cleanup:
|
|
12
|
+
uses: elastic/docs-actions/.github/workflows/docs-preview-cleanup.yml@v1
|
|
@@ -13,26 +13,6 @@ jobs:
|
|
|
13
13
|
comment:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
permissions:
|
|
16
|
-
issues: write
|
|
17
16
|
pull-requests: write
|
|
18
17
|
steps:
|
|
19
|
-
- uses: actions/github-
|
|
20
|
-
with:
|
|
21
|
-
script: |
|
|
22
|
-
const body = `
|
|
23
|
-
### :robot: GitHub comments
|
|
24
|
-
|
|
25
|
-
<details><summary>Expand to view the GitHub comments</summary>
|
|
26
|
-
<p>
|
|
27
|
-
|
|
28
|
-
Just comment with:
|
|
29
|
-
- `run` `docs-build` : Re-trigger the docs validation. (use unformatted text in the comment!)
|
|
30
|
-
</p>
|
|
31
|
-
</details>
|
|
32
|
-
`.replace(/ +/g, '')
|
|
33
|
-
github.rest.issues.createComment({
|
|
34
|
-
issue_number: context.issue.number,
|
|
35
|
-
owner: context.repo.owner,
|
|
36
|
-
repo: context.repo.repo,
|
|
37
|
-
body: body
|
|
38
|
-
})
|
|
18
|
+
- uses: elastic/oblt-actions/elastic/github-commands@v1
|
|
@@ -14,6 +14,7 @@ jobs:
|
|
|
14
14
|
release:
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
permissions:
|
|
17
|
+
artifact-metadata: write
|
|
17
18
|
attestations: write
|
|
18
19
|
contents: write
|
|
19
20
|
id-token: write
|
|
@@ -43,7 +44,7 @@ jobs:
|
|
|
43
44
|
if: ${{ ! startsWith(github.ref, 'refs/tags') }}
|
|
44
45
|
|
|
45
46
|
- name: generate build provenance
|
|
46
|
-
uses: actions/attest-build-provenance@
|
|
47
|
+
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
|
|
47
48
|
with:
|
|
48
49
|
subject-path: "${{ github.workspace }}/pkg/*.gem"
|
|
49
50
|
|
data/Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
ARG RUBY_IMAGE
|
|
1
|
+
ARG RUBY_IMAGE=ruby:3.3
|
|
2
2
|
FROM ${RUBY_IMAGE}
|
|
3
3
|
|
|
4
4
|
ARG USER_ID_GROUP
|
|
@@ -9,10 +9,18 @@ ARG BUNDLER_VERSION
|
|
|
9
9
|
# For tzdata
|
|
10
10
|
# ENV DEBIAN_FRONTEND=noninteractive
|
|
11
11
|
|
|
12
|
-
RUN
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
RUN set -eux; \
|
|
13
|
+
apt-get update -qq || ( \
|
|
14
|
+
find /etc/apt -name '*.list' -type f -print0 | xargs -0 sed -i \
|
|
15
|
+
-e 's|deb.debian.org/debian|archive.debian.org/debian|g' \
|
|
16
|
+
-e 's|security.debian.org/debian-security|archive.debian.org/debian-security|g'; \
|
|
17
|
+
find /etc/apt -name '*.list' -type f -print0 | xargs -0 sed -i '/buster-updates/d'; \
|
|
18
|
+
printf 'Acquire::Check-Valid-Until "false";\n' > /etc/apt/apt.conf.d/99no-check-valid; \
|
|
19
|
+
apt-get -o Acquire::Check-Valid-Until=false update -qq \
|
|
20
|
+
); \
|
|
21
|
+
apt-get install -qq -y --no-install-recommends \
|
|
22
|
+
build-essential libpq-dev git netbase; \
|
|
23
|
+
rm -rf /var/lib/apt/lists/*
|
|
16
24
|
|
|
17
25
|
# Configure bundler and PATH
|
|
18
26
|
ENV LANG=C.UTF-8
|
|
@@ -29,15 +37,33 @@ ENV FRAMEWORKS $FRAMEWORKS
|
|
|
29
37
|
RUN mkdir -p $VENDOR_PATH \
|
|
30
38
|
&& chown -R $USER_ID_GROUP $VENDOR_PATH
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
# Upgrade RubyGems with a Ruby-version-compatible strategy and install Bundler.
|
|
41
|
+
RUN set -eux; \
|
|
42
|
+
if ruby -e 'require "rubygems"; exit(Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3.2") ? 0 : 1)'; then \
|
|
43
|
+
gem update --system 3.2.3; \
|
|
44
|
+
else \
|
|
45
|
+
gem update --system; \
|
|
46
|
+
fi; \
|
|
47
|
+
if ruby -e 'require "rubygems"; exit(Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.5") ? 0 : 1)'; then \
|
|
48
|
+
gem install bundler:1.17.3; \
|
|
49
|
+
else \
|
|
50
|
+
gem install bundler:$BUNDLER_VERSION; \
|
|
51
|
+
fi
|
|
37
52
|
|
|
38
|
-
# Use unpatched, system version for more speed over less security
|
|
39
|
-
|
|
53
|
+
# Use unpatched, system version for more speed over less security.
|
|
54
|
+
# Pin Nokogiri by Ruby compatibility to support old CI targets (e.g. Ruby 2.4).
|
|
55
|
+
RUN set -eux; \
|
|
56
|
+
if ruby -e 'require "rubygems"; exit(Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.5") ? 0 : 1)'; then \
|
|
57
|
+
gem install nokogiri -v 1.10.10 -- --use-system-libraries; \
|
|
58
|
+
elif ruby -e 'require "rubygems"; exit(Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3.2") ? 0 : 1)'; then \
|
|
59
|
+
gem install nokogiri -v 1.12.5 -- --use-system-libraries; \
|
|
60
|
+
else \
|
|
61
|
+
gem install nokogiri -- --use-system-libraries; \
|
|
62
|
+
fi
|
|
40
63
|
# Rake is required to build http-parser on some jruby images
|
|
41
64
|
RUN gem install rake
|
|
42
65
|
|
|
66
|
+
RUN chown -R $USER_ID_GROUP $VENDOR_PATH
|
|
67
|
+
USER $USER_ID_GROUP
|
|
68
|
+
|
|
43
69
|
WORKDIR /app
|
data/Gemfile
CHANGED
|
@@ -59,7 +59,6 @@ gem 'rake', '>= 13.0', require: nil
|
|
|
59
59
|
gem 'racecar', require: nil if !defined?(JRUBY_VERSION)
|
|
60
60
|
gem 'resque', require: nil
|
|
61
61
|
gem 'sequel', require: nil
|
|
62
|
-
gem 'shoryuken', require: nil
|
|
63
62
|
gem 'sidekiq', require: nil
|
|
64
63
|
gem 'simplecov', require: false
|
|
65
64
|
gem 'simplecov-cobertura', require: false
|
|
@@ -91,6 +90,10 @@ frameworks_versions.each do |framework, version|
|
|
|
91
90
|
gem 'net-smtp', require: false
|
|
92
91
|
end
|
|
93
92
|
|
|
93
|
+
if framework =='rails' && RUBY_VERSION < '3.2' && !defined?(JRUBY_VERSION) && version >= '5.2'
|
|
94
|
+
gem 'i18n', '1.14.8'
|
|
95
|
+
end
|
|
96
|
+
|
|
94
97
|
if framework =='rails' && RUBY_VERSION >= '3.4' && ['4.2', '5.2', '6.1'].include?(version)
|
|
95
98
|
gem 'mutex_m'
|
|
96
99
|
end
|
|
@@ -107,17 +110,36 @@ frameworks_versions.each do |framework, version|
|
|
|
107
110
|
end
|
|
108
111
|
end
|
|
109
112
|
|
|
110
|
-
# Handle Rack::Auth::Digest being removed in rack 3.1, grape requires it
|
|
113
|
+
# Handle Rack::Auth::Digest being removed in rack 3.1, grape requires it.
|
|
114
|
+
# Sinatra 2.x depends on rack 2.x, so use a compatible rack line when both are present.
|
|
111
115
|
if frameworks_versions.key?('grape')
|
|
112
|
-
|
|
116
|
+
sinatra_version = frameworks_versions['sinatra']
|
|
117
|
+
if sinatra_version&.start_with?('2.')
|
|
118
|
+
gem 'rack', '~> 2.2.0'
|
|
119
|
+
else
|
|
120
|
+
gem 'rack', '~> 3.0.0'
|
|
121
|
+
end
|
|
113
122
|
end
|
|
114
123
|
|
|
115
124
|
if frameworks_versions.key?('rails')
|
|
116
|
-
|
|
117
|
-
|
|
125
|
+
rails_version = frameworks_versions['rails']
|
|
126
|
+
unless /^(main|6)/.match?(rails_version)
|
|
127
|
+
if rails_version.start_with?('4.') || rails_version.start_with?('5.')
|
|
128
|
+
gem 'delayed_job', '~> 4.1.13', require: nil
|
|
129
|
+
else
|
|
130
|
+
gem 'delayed_job', require: nil
|
|
131
|
+
end
|
|
118
132
|
end
|
|
119
133
|
end
|
|
120
134
|
|
|
135
|
+
# Shoryuken 7.x references ActiveJob::QueueAdapters::AbstractAdapter, which
|
|
136
|
+
# is missing in the Ruby 3.4 + Rails 6.1 matrix target.
|
|
137
|
+
if frameworks_versions['rails'] == '6.1' && RUBY_VERSION >= '3.4'
|
|
138
|
+
gem 'shoryuken', '< 7.0', require: nil
|
|
139
|
+
else
|
|
140
|
+
gem 'shoryuken', require: nil
|
|
141
|
+
end
|
|
142
|
+
|
|
121
143
|
if RUBY_PLATFORM == 'java'
|
|
122
144
|
# See issue #6547 in the JRuby repo. It is fixed in JRuby 9.3
|
|
123
145
|
gem 'i18n', '< 1.8.8' if JRUBY_VERSION < '9.3'
|
data/bin/dev
CHANGED
|
@@ -26,14 +26,26 @@ end.parse!
|
|
|
26
26
|
USER_ID_GROUP = %w[u g].map { |f| `id -#{f}`.chomp }.join(':')
|
|
27
27
|
|
|
28
28
|
RUBY_IMAGE = options.fetch(:image, 'ruby:latest')
|
|
29
|
-
|
|
29
|
+
default_frameworks = if RUBY_IMAGE.include?('jruby')
|
|
30
|
+
'rails-6.1,sinatra-2.2,grape-1.6'
|
|
31
|
+
else
|
|
32
|
+
'rails,sinatra,grape'
|
|
33
|
+
end
|
|
34
|
+
FRAMEWORKS = options.fetch(:frameworks, default_frameworks)
|
|
30
35
|
|
|
31
36
|
IMAGE_PATH_SAFE = RUBY_IMAGE.tr(':', '_')
|
|
32
37
|
IMAGE_NAME = "apm-agent-ruby:#{IMAGE_PATH_SAFE}"
|
|
33
38
|
VENDOR_PATH = "/vendor/#{IMAGE_PATH_SAFE}"
|
|
39
|
+
legacy_ruby_image = RUBY_IMAGE.match?(/^ruby:(2\.[0-9]+|1\.[0-9]+)/)
|
|
40
|
+
DOCKER_PLATFORM = if RUBY_IMAGE.include?('jruby') || legacy_ruby_image
|
|
41
|
+
'linux/amd64'
|
|
42
|
+
end
|
|
34
43
|
|
|
35
44
|
def run(cmd)
|
|
36
|
-
"IMAGE_NAME=#{IMAGE_NAME}
|
|
45
|
+
env = ["IMAGE_NAME=#{IMAGE_NAME}"]
|
|
46
|
+
env << "DOCKER_DEFAULT_PLATFORM=#{DOCKER_PLATFORM}" if DOCKER_PLATFORM
|
|
47
|
+
|
|
48
|
+
"#{env.join(' ')} #{cmd}".tap do |str|
|
|
37
49
|
puts str
|
|
38
50
|
system str
|
|
39
51
|
end
|
data/bin/run-bdd
CHANGED
|
@@ -9,9 +9,9 @@ if [[ $specific_feature = '' ]]; then
|
|
|
9
9
|
echo 'Running all features'
|
|
10
10
|
|
|
11
11
|
echo "========================================"
|
|
12
|
-
cucumber
|
|
12
|
+
bundle exec cucumber
|
|
13
13
|
else
|
|
14
14
|
echo "Running only $specific_feature"
|
|
15
15
|
|
|
16
|
-
cucumber $specific_feature
|
|
16
|
+
bundle exec cucumber $specific_feature
|
|
17
17
|
fi
|
data/docker-compose.yml
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
version: '3.4'
|
|
3
2
|
|
|
4
3
|
services:
|
|
5
4
|
mongodb:
|
|
@@ -14,10 +13,18 @@ services:
|
|
|
14
13
|
context: .
|
|
15
14
|
args:
|
|
16
15
|
BUNDLER_VERSION: '2.2.21'
|
|
16
|
+
RUBY_IMAGE: ${RUBY_IMAGE:-ruby:3.3}
|
|
17
|
+
USER_ID_GROUP: ${USER_ID_GROUP:-1000:1000}
|
|
18
|
+
FRAMEWORKS: ${FRAMEWORKS:-rails,sinatra,grape}
|
|
19
|
+
VENDOR_PATH: ${VENDOR_PATH:-/vendor/ruby_3.3}
|
|
17
20
|
image: '$IMAGE_NAME'
|
|
18
21
|
environment:
|
|
19
22
|
HOME: '/tmp'
|
|
20
23
|
MONGODB_URL: 'mongodb:27017'
|
|
24
|
+
USER_ID: ${USER_ID:-1000}
|
|
25
|
+
LOCAL_USER_ID: ${LOCAL_USER_ID:-1000}
|
|
26
|
+
LOCAL_GROUP_ID: ${LOCAL_GROUP_ID:-1000}
|
|
27
|
+
RUBY_VERSION: ${RUBY_VERSION:-3.3}
|
|
21
28
|
entrypoint:
|
|
22
29
|
'spec/entrypoint.sh'
|
|
23
30
|
tty: true
|
|
@@ -28,17 +35,17 @@ services:
|
|
|
28
35
|
- /tmp:exec,mode=1777
|
|
29
36
|
depends_on:
|
|
30
37
|
- mongodb
|
|
31
|
-
user: ${USER_ID}
|
|
38
|
+
user: ${USER_ID:-1000}
|
|
32
39
|
security_opt:
|
|
33
40
|
- no-new-privileges
|
|
34
41
|
|
|
35
42
|
ruby_rspec:
|
|
36
|
-
image: apm-agent-ruby:${RUBY_VERSION}
|
|
43
|
+
image: apm-agent-ruby:${RUBY_VERSION:-3.3}
|
|
37
44
|
environment:
|
|
38
45
|
APP_PATH: /opt/app
|
|
39
46
|
FRAMEWORK: rails
|
|
40
|
-
LOCAL_USER_ID: ${LOCAL_USER_ID}
|
|
41
|
-
LOCAL_GROUP_ID: ${LOCAL_GROUP_ID}
|
|
47
|
+
LOCAL_USER_ID: ${LOCAL_USER_ID:-1000}
|
|
48
|
+
LOCAL_GROUP_ID: ${LOCAL_GROUP_ID:-1000}
|
|
42
49
|
MONGODB_URL: 'mongodb:27017'
|
|
43
50
|
security_opt:
|
|
44
51
|
- no-new-privileges
|
data/docs/docset.yml
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
mapped_pages:
|
|
3
3
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/configuration.html
|
|
4
|
+
applies_to:
|
|
5
|
+
stack:
|
|
6
|
+
serverless:
|
|
7
|
+
observability:
|
|
8
|
+
product:
|
|
9
|
+
apm_agent_ruby: ga
|
|
4
10
|
---
|
|
5
11
|
|
|
6
12
|
# Configuration [configuration]
|
|
@@ -379,7 +385,7 @@ The version number of the used framework. For Ruby on Rails and Sinatra, this de
|
|
|
379
385
|
| --- | --- | --- | --- |
|
|
380
386
|
| `ELASTIC_APM_GLOBAL_LABELS` | `global_labels` | `nil` | `dept=engineering,rack=number8` |
|
|
381
387
|
|
|
382
|
-
Labels added to all events, with the format key=value[,key=value[
|
|
388
|
+
Labels added to all events, with the format key=value[,key=value[,… ]].
|
|
383
389
|
|
|
384
390
|
::::{note}
|
|
385
391
|
This option requires APM Server 7.2 or greater, and will have no effect when using older server versions.
|
|
@@ -677,6 +683,18 @@ Limits the amount of spans that are recorded per transaction. This is helpful in
|
|
|
677
683
|
By default, the agent will sample every transaction (e.g. request to your service). To reduce overhead and storage requirements, you can set the sample rate to a value between `0.0` and `1.0`. We still record overall time and the result for unsampled transactions, but no context information, tags, or spans. The sample rate will be rounded to 4 digits of precision.
|
|
678
684
|
|
|
679
685
|
|
|
686
|
+
### `transaction_sample_rate_by_name` [config-transaction-sample-rate-by-name]
|
|
687
|
+
|
|
688
|
+
| | | | |
|
|
689
|
+
| --- | --- | --- | --- |
|
|
690
|
+
| Environment | `Config` key | Default | Example |
|
|
691
|
+
| `ELASTIC_APM_TRANSACTION_SAMPLE_RATE_BY_NAME` | `transaction_sample_rate_by_name` | `{}` | `{"UsersController#index" => 1.0, "HealthController#ping" => 0.0}` |
|
|
692
|
+
|
|
693
|
+
Configure specific sampling rates for transactions with particular names. This option takes a hash where the keys are transaction names and the values are sampling rates between `0.0` and `1.0`.
|
|
694
|
+
|
|
695
|
+
This is useful when you want to ensure critical transactions are always sampled while reducing sampling for high-volume, less important transactions. When a transaction name matches an entry in this hash, the specified sampling rate takes precedence over the global `transaction_sample_rate`.
|
|
696
|
+
|
|
697
|
+
|
|
680
698
|
### `verify_server_cert` [config-verify-server-cert]
|
|
681
699
|
|
|
682
700
|
| | | |
|
|
@@ -731,4 +749,3 @@ Elastic APM patches `Kernel#require` to auto-detect and instrument supported thi
|
|
|
731
749
|
To get around this patch, set the environment variable `ELASTIC_APM_SKIP_REQUIRE_PATCH` to `"1"`.
|
|
732
750
|
|
|
733
751
|
The agent might need some additional tweaking to make sure the third-party libraries are picked up and instrumented. Make sure you require the agent *after* you require your other dependencies.
|
|
734
|
-
|
data/docs/reference/context.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
mapped_pages:
|
|
3
3
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/getting-started-rails.html
|
|
4
|
+
applies_to:
|
|
5
|
+
stack:
|
|
6
|
+
serverless:
|
|
7
|
+
observability:
|
|
8
|
+
product:
|
|
9
|
+
apm_agent_ruby: ga
|
|
4
10
|
---
|
|
5
11
|
|
|
6
12
|
# Getting started with Rails [getting-started-rails]
|
data/docs/reference/graphql.md
CHANGED
data/docs/reference/index.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
mapped_pages:
|
|
3
3
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/introduction.html
|
|
4
4
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/index.html
|
|
5
|
+
applies_to:
|
|
6
|
+
stack:
|
|
7
|
+
serverless:
|
|
8
|
+
observability:
|
|
9
|
+
product:
|
|
10
|
+
apm_agent_ruby: ga
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
# APM Ruby agent [introduction]
|
|
@@ -22,3 +28,6 @@ These events, called Transactions and Spans, are sent to the APM Server. The APM
|
|
|
22
28
|
|
|
23
29
|
APM Agents work in conjunction with the [APM Server](docs-content://solutions/observability/apps/application-performance-monitoring-apm.md), [Elasticsearch](docs-content://get-started/index.md), and [Kibana](docs-content://get-started/the-stack.md). The [APM Guide](docs-content://solutions/observability/apps/application-performance-monitoring-apm.md) provides details on how these components work together, and provides a matrix outlining [Agent and Server compatibility](docs-content://solutions/observability/apps/apm-agent-compatibility.md).
|
|
24
30
|
|
|
31
|
+
## Troubleshooting
|
|
32
|
+
|
|
33
|
+
If you're experiencing issues with the APM Ruby agent, refer to [Troubleshoot APM Ruby Agent](docs-content://troubleshoot/observability/apm-agent-ruby/apm-ruby-agent.md).
|
data/docs/reference/logs.md
CHANGED
data/docs/reference/metrics.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
mapped_pages:
|
|
3
3
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/supported-technologies.html
|
|
4
|
+
applies_to:
|
|
5
|
+
stack:
|
|
6
|
+
serverless:
|
|
7
|
+
observability:
|
|
8
|
+
product:
|
|
9
|
+
apm_agent_ruby: ga
|
|
4
10
|
---
|
|
5
11
|
|
|
6
12
|
# Supported technologies [supported-technologies]
|
|
@@ -10,7 +16,7 @@ The Elastic APM Ruby Agent has built-in support for many frameworks and librarie
|
|
|
10
16
|
|
|
11
17
|
## Ruby [supported-technologies-ruby]
|
|
12
18
|
|
|
13
|
-
We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/).
|
|
19
|
+
We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/) < 4.0.
|
|
14
20
|
|
|
15
21
|
|
|
16
22
|
## Web Frameworks and Libraries [supported-technologies-web]
|
|
@@ -22,21 +28,21 @@ We test against all supported minor versions of Rails, Sinatra, and Grape.
|
|
|
22
28
|
|
|
23
29
|
### Ruby on Rails [supported-technologies-rails]
|
|
24
30
|
|
|
25
|
-
We currently support
|
|
31
|
+
We currently support Rails >= 4.2 <= 7.2. This follows Rails' own [Security policy](https://rubyonrails.org/security/).
|
|
26
32
|
|
|
27
33
|
See [Getting started with Rails](/reference/getting-started-rails.md).
|
|
28
34
|
|
|
29
35
|
|
|
30
36
|
### Sinatra [supported-technologies-sinatra]
|
|
31
37
|
|
|
32
|
-
We currently support
|
|
38
|
+
We currently support Sinatra >= 1.0 <= 2.2.
|
|
33
39
|
|
|
34
40
|
See [Getting started with Rack](/reference/getting-started-rack.md).
|
|
35
41
|
|
|
36
42
|
|
|
37
43
|
### Grape [supported-technologies-grape]
|
|
38
44
|
|
|
39
|
-
We currently support
|
|
45
|
+
We currently support Grape >= 1.2 <= 1.6.
|
|
40
46
|
|
|
41
47
|
See [Grape example](/reference/getting-started-rack.md#getting-started-grape).
|
|
42
48
|
|
|
@@ -45,12 +51,12 @@ See [Grape example](/reference/getting-started-rack.md#getting-started-grape).
|
|
|
45
51
|
|
|
46
52
|
We automatically instrument database actions using:
|
|
47
53
|
|
|
48
|
-
* ActiveRecord (
|
|
49
|
-
* DynamoDB (
|
|
50
|
-
* Elasticsearch (
|
|
51
|
-
* Mongo (
|
|
52
|
-
* Redis (
|
|
53
|
-
* Sequel (
|
|
54
|
+
* ActiveRecord (>= 4.2 <= 7.2)
|
|
55
|
+
* DynamoDB (>= 1.0 <= 1.158.0)
|
|
56
|
+
* Elasticsearch (>= 0.9 <= 9.2.0)
|
|
57
|
+
* Mongo (>= 2.1 <= 2.22.0)
|
|
58
|
+
* Redis (>= 3.1 <= 5.4.1)
|
|
59
|
+
* Sequel (>= 4.35 <= 5.100.0)
|
|
54
60
|
|
|
55
61
|
|
|
56
62
|
## External HTTP requests [supported-technologies-http]
|
|
@@ -58,8 +64,8 @@ We automatically instrument database actions using:
|
|
|
58
64
|
We automatically instrument and add support for distributed tracing to external requests using these libraries:
|
|
59
65
|
|
|
60
66
|
* `net/http`
|
|
61
|
-
* Http.rb (
|
|
62
|
-
* Faraday (
|
|
67
|
+
* Http.rb (>= 3.0 < 6.0)
|
|
68
|
+
* Faraday (>= 0.2.1 <= 2.14.0)
|
|
63
69
|
|
|
64
70
|
**Note:** These libraries usually assume `localhost` if no `Host` is specified, so the agent does as well.
|
|
65
71
|
|
|
@@ -68,12 +74,12 @@ We automatically instrument and add support for distributed tracing to external
|
|
|
68
74
|
|
|
69
75
|
We automatically instrument background processing using:
|
|
70
76
|
|
|
71
|
-
* DelayedJob
|
|
72
|
-
* Sidekiq
|
|
73
|
-
* Shoryuken
|
|
74
|
-
* Sneakers (
|
|
75
|
-
* Resque (
|
|
76
|
-
* SuckerPunch (
|
|
77
|
+
* DelayedJob (<= 4.2.0)
|
|
78
|
+
* Sidekiq (<= 8.1.0)
|
|
79
|
+
* Shoryuken (<= 6.2.1)
|
|
80
|
+
* Sneakers (2.12.0) (Experimental, see [#676](https://github.com/elastic/apm-agent-ruby/pull/676))
|
|
81
|
+
* Resque (>= 2.0.0 <= 2.7.0)
|
|
82
|
+
* SuckerPunch (>= 2.0.0 <= 3.3.0)
|
|
77
83
|
|
|
78
84
|
|
|
79
85
|
## Resque [supported-technologies-resque]
|
data/docs/reference/toc.yml
CHANGED
|
@@ -19,4 +19,6 @@ toc:
|
|
|
19
19
|
# TO DO: Not available on master
|
|
20
20
|
# - file: log-correlation.md
|
|
21
21
|
- file: performance-tuning.md
|
|
22
|
-
- file: upgrading.md
|
|
22
|
+
- file: upgrading.md
|
|
23
|
+
- title: Troubleshooting
|
|
24
|
+
crosslink: docs-content://troubleshoot/observability/apm-agent-ruby/apm-ruby-agent.md
|
data/docs/reference/upgrading.md
CHANGED
data/docs/release-notes/index.md
CHANGED
|
@@ -3,6 +3,12 @@ navigation_title: "Elastic APM Ruby Agent"
|
|
|
3
3
|
mapped_pages:
|
|
4
4
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/release-notes.html
|
|
5
5
|
- https://www.elastic.co/guide/en/apm/agent/ruby/current/release-notes-4.x.html
|
|
6
|
+
applies_to:
|
|
7
|
+
stack:
|
|
8
|
+
serverless:
|
|
9
|
+
observability:
|
|
10
|
+
product:
|
|
11
|
+
apm_agent_ruby: ga
|
|
6
12
|
---
|
|
7
13
|
|
|
8
14
|
# Elastic APM Ruby Agent release notes [elastic-apm-ruby-agent-release-notes]
|
|
@@ -22,6 +28,16 @@ All notable changes to this project will be documented here. This project adhere
|
|
|
22
28
|
|
|
23
29
|
% ### Fixes [elastic-apm-ruby-agent-versionext-fixes]
|
|
24
30
|
|
|
31
|
+
## 4.9.0 [elastic-apm-ruby-agent-490-release-notes]
|
|
32
|
+
|
|
33
|
+
### Features and enhancements [elastic-apm-ruby-agent-490-features-enhancements]
|
|
34
|
+
* Add ability to configure sampling rate based on transaction span name [#1531](https://github.com/elastic/apm-agent-ruby/pull/1531)
|
|
35
|
+
* Set version 7.0 as http gem upper bound in gemspec [#1624](https://github.com/elastic/apm-agent-ruby/pull/1624)
|
|
36
|
+
|
|
37
|
+
### Fixes [elastic-apm-ruby-agent-490-fixes]
|
|
38
|
+
* Use status code explicitly in central config for changes in http 6.0 [#1615](https://github.com/elastic/apm-agent-ruby/pull/1615)
|
|
39
|
+
* Use headers method directly for compatibility with all versions of http [#1629](https://github.com/elastic/apm-agent-ruby/pull/1629)
|
|
40
|
+
|
|
25
41
|
## 4.8.0 [elastic-apm-ruby-agent-480-release-notes]
|
|
26
42
|
|
|
27
43
|
### Features and enhancements [elastic-apm-ruby-agent-480-features-enhancements]
|
data/elastic-apm.gemspec
CHANGED
|
@@ -29,14 +29,14 @@ Gem::Specification.new do |spec|
|
|
|
29
29
|
spec.homepage = 'https://github.com/elastic/apm-agent-ruby'
|
|
30
30
|
spec.metadata = { 'source_code_uri' => 'https://github.com/elastic/apm-agent-ruby' }
|
|
31
31
|
spec.license = 'Apache-2.0'
|
|
32
|
-
spec.required_ruby_version = ">= 2.3.0"
|
|
32
|
+
spec.required_ruby_version = ">= 2.3.0", "< 4.0"
|
|
33
33
|
|
|
34
34
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
35
35
|
f.match(%r{^(test|spec|features)/})
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
spec.add_dependency('concurrent-ruby', '~> 1.0')
|
|
39
|
-
spec.add_dependency('http', '>= 3.0')
|
|
39
|
+
spec.add_dependency('http', '>= 3.0', '< 7.0')
|
|
40
40
|
spec.add_runtime_dependency('ruby2_keywords')
|
|
41
41
|
|
|
42
42
|
spec.require_paths = ['lib']
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
2
|
+
# license agreements. See the NOTICE file distributed with
|
|
3
|
+
# this work for additional information regarding copyright
|
|
4
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
5
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
6
|
+
# not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
# frozen_string_literal: true
|
|
19
|
+
|
|
20
|
+
module ElasticAPM
|
|
21
|
+
class Config
|
|
22
|
+
# @api private
|
|
23
|
+
class RoundFloatHashValue
|
|
24
|
+
def initialize
|
|
25
|
+
@float_converter = RoundFloat.new
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(hash)
|
|
29
|
+
return {} unless hash
|
|
30
|
+
|
|
31
|
+
hash.transform_values { |value| @float_converter.call(value) }
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/elastic_apm/config.rb
CHANGED
|
@@ -22,6 +22,7 @@ require 'elastic_apm/config/duration'
|
|
|
22
22
|
require 'elastic_apm/config/log_level_map'
|
|
23
23
|
require 'elastic_apm/config/options'
|
|
24
24
|
require 'elastic_apm/config/round_float'
|
|
25
|
+
require 'elastic_apm/config/round_float_hash_value'
|
|
25
26
|
require 'elastic_apm/config/regexp_list'
|
|
26
27
|
require 'elastic_apm/config/wildcard_pattern_list'
|
|
27
28
|
require 'elastic_apm/deprecations'
|
|
@@ -98,6 +99,7 @@ module ElasticAPM
|
|
|
98
99
|
option :transaction_ignore_urls, type: :list, default: [], converter: WildcardPatternList.new
|
|
99
100
|
option :transaction_max_spans, type: :int, default: 500
|
|
100
101
|
option :transaction_sample_rate, type: :float, default: 1.0, converter: RoundFloat.new
|
|
102
|
+
option :transaction_sample_rate_by_name, type: :hash, default: {}, converter: RoundFloatHashValue.new
|
|
101
103
|
option :use_elastic_traceparent_header, type: :bool, default: true
|
|
102
104
|
option :verify_server_cert, type: :bool, default: true
|
|
103
105
|
|
|
@@ -123,7 +123,7 @@ module ElasticAPM
|
|
|
123
123
|
sampled = trace_context.recorded?
|
|
124
124
|
sample_rate = trace_context.tracestate.sample_rate
|
|
125
125
|
else
|
|
126
|
-
sampled = random_sample?(config)
|
|
126
|
+
sampled = random_sample?(config.transaction_sample_rate)
|
|
127
127
|
sample_rate = sampled ? config.transaction_sample_rate : 0
|
|
128
128
|
end
|
|
129
129
|
|
|
@@ -195,6 +195,19 @@ module ElasticAPM
|
|
|
195
195
|
current_transaction
|
|
196
196
|
end
|
|
197
197
|
return unless transaction
|
|
198
|
+
|
|
199
|
+
unless trace_context
|
|
200
|
+
span_sample_rate = transaction_sample_rate_for_name(name, transaction.config)
|
|
201
|
+
# if the span sample rate is different from the transaction sample rate,
|
|
202
|
+
# we need to check if the span should be sampled
|
|
203
|
+
# and update the transaction's sample rate accordingly
|
|
204
|
+
if transaction.started_spans == 0 && span_sample_rate && span_sample_rate != transaction.sample_rate
|
|
205
|
+
span_sampled = random_sample?(span_sample_rate)
|
|
206
|
+
transaction.sampled = span_sampled
|
|
207
|
+
transaction.sample_rate = span_sampled ? span_sample_rate : 0
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
198
211
|
return unless transaction.sampled?
|
|
199
212
|
return unless transaction.inc_started_spans!
|
|
200
213
|
|
|
@@ -278,10 +291,17 @@ module ElasticAPM
|
|
|
278
291
|
'>'
|
|
279
292
|
end
|
|
280
293
|
|
|
294
|
+
def transaction_sample_rate_for_name(name, config)
|
|
295
|
+
return if !name || config.transaction_sample_rate_by_name.empty?
|
|
296
|
+
return unless config.transaction_sample_rate_by_name.key?(name)
|
|
297
|
+
|
|
298
|
+
config.transaction_sample_rate_by_name[name]
|
|
299
|
+
end
|
|
300
|
+
|
|
281
301
|
private
|
|
282
302
|
|
|
283
|
-
def random_sample?(
|
|
284
|
-
rand <=
|
|
303
|
+
def random_sample?(sample_rate)
|
|
304
|
+
rand <= sample_rate
|
|
285
305
|
end
|
|
286
306
|
|
|
287
307
|
def update_transaction_metrics(transaction)
|
|
@@ -49,7 +49,7 @@ module ElasticAPM
|
|
|
49
49
|
context: context
|
|
50
50
|
) do |span|
|
|
51
51
|
trace_context = span&.trace_context || transaction.trace_context
|
|
52
|
-
trace_context.apply_headers { |key, value| req[key] = value }
|
|
52
|
+
trace_context.apply_headers { |key, value| req.headers[key] = value }
|
|
53
53
|
|
|
54
54
|
result = super(req, options)
|
|
55
55
|
|
|
@@ -87,7 +87,15 @@ module ElasticAPM
|
|
|
87
87
|
end
|
|
88
88
|
# rubocop:enable Metrics/ParameterLists
|
|
89
89
|
|
|
90
|
-
attr_accessor
|
|
90
|
+
attr_accessor(
|
|
91
|
+
:name,
|
|
92
|
+
:type,
|
|
93
|
+
:result,
|
|
94
|
+
:outcome,
|
|
95
|
+
:sampled,
|
|
96
|
+
:sample_rate,
|
|
97
|
+
:started_spans
|
|
98
|
+
)
|
|
91
99
|
|
|
92
100
|
attr_reader(
|
|
93
101
|
:breakdown_metrics,
|
|
@@ -98,12 +106,11 @@ module ElasticAPM
|
|
|
98
106
|
:framework_name,
|
|
99
107
|
:notifications,
|
|
100
108
|
:self_time,
|
|
101
|
-
:sample_rate,
|
|
102
109
|
:span_frames_min_duration,
|
|
103
|
-
:started_spans,
|
|
104
110
|
:timestamp,
|
|
105
111
|
:trace_context,
|
|
106
|
-
:transaction_max_spans
|
|
112
|
+
:transaction_max_spans,
|
|
113
|
+
:config
|
|
107
114
|
)
|
|
108
115
|
|
|
109
116
|
alias :collect_metrics? :collect_metrics
|
data/lib/elastic_apm/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: elastic-apm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mikkel Malmberg
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-06-19 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: concurrent-ruby
|
|
@@ -32,6 +32,9 @@ dependencies:
|
|
|
32
32
|
- - ">="
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
34
|
version: '3.0'
|
|
35
|
+
- - "<"
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '7.0'
|
|
35
38
|
type: :runtime
|
|
36
39
|
prerelease: false
|
|
37
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -39,6 +42,9 @@ dependencies:
|
|
|
39
42
|
- - ">="
|
|
40
43
|
- !ruby/object:Gem::Version
|
|
41
44
|
version: '3.0'
|
|
45
|
+
- - "<"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '7.0'
|
|
42
48
|
- !ruby/object:Gem::Dependency
|
|
43
49
|
name: ruby2_keywords
|
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,6 +86,7 @@ files:
|
|
|
80
86
|
- ".ci/updatecli/values.d/apm-json-specs.yml"
|
|
81
87
|
- ".ci/updatecli/values.d/scm.yml"
|
|
82
88
|
- ".ci/updatecli/values.d/update-compose.yml"
|
|
89
|
+
- ".github/CODEOWNERS"
|
|
83
90
|
- ".github/ISSUE_TEMPLATE/Bug_report.md"
|
|
84
91
|
- ".github/ISSUE_TEMPLATE/Feature_request.md"
|
|
85
92
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
@@ -90,7 +97,8 @@ files:
|
|
|
90
97
|
- ".github/workflows/ci-docs.yml"
|
|
91
98
|
- ".github/workflows/ci.yml"
|
|
92
99
|
- ".github/workflows/docs-build.yml"
|
|
93
|
-
- ".github/workflows/docs-
|
|
100
|
+
- ".github/workflows/docs-deploy.yml"
|
|
101
|
+
- ".github/workflows/docs-preview-cleanup.yml"
|
|
94
102
|
- ".github/workflows/github-commands-comment.yml"
|
|
95
103
|
- ".github/workflows/labeler.yml"
|
|
96
104
|
- ".github/workflows/microbenchmark.yml"
|
|
@@ -109,7 +117,6 @@ files:
|
|
|
109
117
|
- LICENSE
|
|
110
118
|
- README.md
|
|
111
119
|
- Rakefile
|
|
112
|
-
- SECURITY.md
|
|
113
120
|
- bench/.gitignore
|
|
114
121
|
- bench/app.rb
|
|
115
122
|
- bench/benchmark.rb
|
|
@@ -162,6 +169,7 @@ files:
|
|
|
162
169
|
- lib/elastic_apm/config/options.rb
|
|
163
170
|
- lib/elastic_apm/config/regexp_list.rb
|
|
164
171
|
- lib/elastic_apm/config/round_float.rb
|
|
172
|
+
- lib/elastic_apm/config/round_float_hash_value.rb
|
|
165
173
|
- lib/elastic_apm/config/server_info.rb
|
|
166
174
|
- lib/elastic_apm/config/wildcard_pattern_list.rb
|
|
167
175
|
- lib/elastic_apm/context.rb
|
|
@@ -298,6 +306,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
298
306
|
- - ">="
|
|
299
307
|
- !ruby/object:Gem::Version
|
|
300
308
|
version: 2.3.0
|
|
309
|
+
- - "<"
|
|
310
|
+
- !ruby/object:Gem::Version
|
|
311
|
+
version: '4.0'
|
|
301
312
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
313
|
requirements:
|
|
303
314
|
- - ">="
|
data/SECURITY.md
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Security Policy
|
|
2
|
-
|
|
3
|
-
Thanks for your interest in the security of our products.
|
|
4
|
-
Our security policy can be found at [https://www.elastic.co/community/security](https://www.elastic.co/community/security).
|
|
5
|
-
|
|
6
|
-
## Reporting a Vulnerability
|
|
7
|
-
Please send security vulnerability reports to security@elastic.co.
|