elastic-apm 4.5.1 → 4.6.1
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/.jenkins_exclude.yml +73 -16
- data/.ci/.jenkins_framework.yml +3 -2
- data/.ci/.jenkins_ruby.yml +1 -1
- data/.ci/.jenkins_ruby_benchmarks.yml +6 -0
- data/.ci/Jenkinsfile +35 -26
- data/.ci/docker/jruby/11-jdk/Dockerfile +3 -0
- data/.ci/docker/jruby/12-jdk/Dockerfile +3 -0
- data/.ci/docker/jruby/13-jdk/Dockerfile +3 -0
- data/.ci/docker/jruby/7-jdk/Dockerfile +3 -0
- data/.ci/docker/jruby/8-jdk/Dockerfile +3 -0
- data/.ci/snapshoty.yml +34 -0
- data/.ci/update-specs.yml +108 -0
- data/.github/workflows/update-specs.yml +30 -0
- data/CHANGELOG.asciidoc +34 -0
- data/Gemfile +10 -3
- data/bench/report.rb +1 -1
- data/docker-compose.yml +6 -0
- data/docs/configuration.asciidoc +6 -4
- data/elastic-apm.gemspec +3 -2
- data/lib/elastic_apm/central_config.rb +5 -0
- data/lib/elastic_apm/config/server_info.rb +50 -0
- data/lib/elastic_apm/config.rb +25 -4
- data/lib/elastic_apm/error.rb +2 -1
- data/lib/elastic_apm/error_builder.rb +1 -0
- data/lib/elastic_apm/instrumenter.rb +4 -2
- data/lib/elastic_apm/metadata/system_info/container_info.rb +4 -3
- data/lib/elastic_apm/metadata/system_info.rb +1 -1
- data/lib/elastic_apm/span/context/links.rb +32 -0
- data/lib/elastic_apm/span/context/service.rb +55 -0
- data/lib/elastic_apm/span/context.rb +19 -3
- data/lib/elastic_apm/span.rb +3 -0
- data/lib/elastic_apm/span_helpers.rb +2 -2
- data/lib/elastic_apm/spies/faraday.rb +23 -0
- data/lib/elastic_apm/spies/racecar.rb +77 -0
- data/lib/elastic_apm/spies/redis.rb +1 -1
- data/lib/elastic_apm/spies/sequel.rb +9 -0
- data/lib/elastic_apm/spies/sqs.rb +1 -0
- data/lib/elastic_apm/trace_context/tracestate.rb +4 -2
- data/lib/elastic_apm/trace_context.rb +1 -1
- data/lib/elastic_apm/transport/connection/http.rb +9 -3
- data/lib/elastic_apm/transport/serializers/span_serializer.rb +25 -0
- data/lib/elastic_apm/version.rb +1 -1
- data/lib/elastic_apm.rb +1 -0
- metadata +26 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49b381ca37784473aef9bf3462b37eb77b3d263dfd402adf929c866153f81af3
|
4
|
+
data.tar.gz: 51f9290d7cace3428273171484ab6f6526e1309bdb2d27a101d9e74a17f9f619
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c315cf52ce113f032b471f64d6662d4e5b9d85577bf228913da82c3f114cdc1846c70a8078de2fc7e1362c89f2cff2559b6e6b046007667feeb0c194223e75
|
7
|
+
data.tar.gz: 9962145d110f552e1beb449e721389cefe17bb862b3e255f48ef236170fa04523c29654f11fb3e1cc89cc5b8f69e14f0678cab51431b86a501ec016631278992
|
data/.ci/.jenkins_exclude.yml
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
exclude:
|
2
2
|
# Ruby 2.4
|
3
|
-
# Only
|
3
|
+
# Only test on rails-5.2, sinatra-1.4
|
4
|
+
- RUBY_VERSION: ruby:2.4
|
5
|
+
FRAMEWORK: rails-7.0
|
4
6
|
- RUBY_VERSION: ruby:2.4
|
5
7
|
FRAMEWORK: rails-6.1
|
6
8
|
- RUBY_VERSION: ruby:2.4
|
@@ -8,11 +10,11 @@ exclude:
|
|
8
10
|
- RUBY_VERSION: ruby:2.4
|
9
11
|
FRAMEWORK: rails-4.2
|
10
12
|
- RUBY_VERSION: ruby:2.4
|
11
|
-
FRAMEWORK: sinatra-
|
13
|
+
FRAMEWORK: sinatra-2.2
|
12
14
|
- RUBY_VERSION: ruby:2.4
|
13
15
|
FRAMEWORK: grape-1.6
|
14
16
|
- RUBY_VERSION: ruby:2.4
|
15
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
17
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.0
|
16
18
|
- RUBY_VERSION: ruby:2.4
|
17
19
|
FRAMEWORK: rails-main
|
18
20
|
- RUBY_VERSION: ruby:2.4
|
@@ -21,7 +23,9 @@ exclude:
|
|
21
23
|
FRAMEWORK: grape-master
|
22
24
|
|
23
25
|
# rails-4.2 exclusions
|
24
|
-
# Only test on ruby 2.6, 2.5, 2.4
|
26
|
+
# Only test on ruby 2.6, 2.5, 2.4
|
27
|
+
- RUBY_VERSION: ruby:3.1
|
28
|
+
FRAMEWORK: rails-4.2
|
25
29
|
- RUBY_VERSION: ruby:3.0
|
26
30
|
FRAMEWORK: rails-4.2
|
27
31
|
- RUBY_VERSION: ruby:2.7
|
@@ -35,6 +39,8 @@ exclude:
|
|
35
39
|
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-8-jdk
|
36
40
|
FRAMEWORK: rails-4.2
|
37
41
|
# sinatra-1.4 exclusions
|
42
|
+
- RUBY_VERSION: ruby:3.1
|
43
|
+
FRAMEWORK: sinatra-1.4
|
38
44
|
- RUBY_VERSION: ruby:3.0
|
39
45
|
FRAMEWORK: sinatra-1.4
|
40
46
|
- RUBY_VERSION: ruby:2.7
|
@@ -55,7 +61,11 @@ exclude:
|
|
55
61
|
- RUBY_VERSION: ruby:2.4
|
56
62
|
FRAMEWORK: rails-6.0
|
57
63
|
|
58
|
-
# Only test rails master on ruby
|
64
|
+
# Only test rails master on ruby 3.1
|
65
|
+
- RUBY_VERSION: ruby:3.0
|
66
|
+
FRAMEWORK: rails-main
|
67
|
+
- RUBY_VERSION: ruby:2.7
|
68
|
+
FRAMEWORK: rails-main
|
59
69
|
- RUBY_VERSION: ruby:2.6
|
60
70
|
FRAMEWORK: rails-main
|
61
71
|
- RUBY_VERSION: ruby:2.5
|
@@ -71,7 +81,25 @@ exclude:
|
|
71
81
|
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-8-jdk
|
72
82
|
FRAMEWORK: rails-main
|
73
83
|
|
74
|
-
# Only test
|
84
|
+
# Only test rails 7.0 on ruby >= 2.7
|
85
|
+
- RUBY_VERSION: ruby:2.6
|
86
|
+
FRAMEWORK: rails-7.0
|
87
|
+
- RUBY_VERSION: ruby:2.5
|
88
|
+
FRAMEWORK: rails-7.0
|
89
|
+
- RUBY_VERSION: ruby:2.4
|
90
|
+
FRAMEWORK: rails-7.0
|
91
|
+
- RUBY_VERSION: jruby:9.2
|
92
|
+
FRAMEWORK: rails-7.0
|
93
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-13-jdk
|
94
|
+
FRAMEWORK: rails-7.0
|
95
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-11-jdk
|
96
|
+
FRAMEWORK: rails-7.0
|
97
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-8-jdk
|
98
|
+
FRAMEWORK: rails-7.0
|
99
|
+
|
100
|
+
# Only test sinatra master on ruby 2.7 and ruby 3.1
|
101
|
+
- RUBY_VERSION: ruby:3.0
|
102
|
+
FRAMEWORK: sinatra-master
|
75
103
|
- RUBY_VERSION: ruby:2.6
|
76
104
|
FRAMEWORK: sinatra-master
|
77
105
|
- RUBY_VERSION: ruby:2.5
|
@@ -104,31 +132,60 @@ exclude:
|
|
104
132
|
FRAMEWORK: grape-master
|
105
133
|
|
106
134
|
# grape 1.5 doesn't support ruby 3.0
|
135
|
+
- RUBY_VERSION: ruby:3.1
|
136
|
+
FRAMEWORK: grape-1.6
|
137
|
+
- RUBY_VERSION: ruby:3.1
|
138
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
139
|
+
- RUBY_VERSION: ruby:3.1
|
140
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
107
141
|
- RUBY_VERSION: ruby:3.0
|
108
142
|
FRAMEWORK: grape-1.6
|
109
143
|
- RUBY_VERSION: ruby:3.0
|
110
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
144
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
111
145
|
|
112
|
-
# only test ruby 3.0 with rails 6.0 and rails 6.1
|
146
|
+
# only test ruby >= 3.0 with rails 6.0 and rails 6.1
|
147
|
+
- RUBY_VERSION: ruby:3.1
|
148
|
+
FRAMEWORK: rails-5.2
|
149
|
+
- RUBY_VERSION: ruby:3.1
|
150
|
+
FRAMEWORK: rails-5.1
|
113
151
|
- RUBY_VERSION: ruby:3.0
|
114
152
|
FRAMEWORK: rails-5.2
|
115
153
|
- RUBY_VERSION: ruby:3.0
|
116
154
|
FRAMEWORK: rails-5.1
|
117
155
|
|
118
156
|
# Unsupported
|
157
|
+
# Ruby 2.6
|
119
158
|
- RUBY_VERSION: ruby:2.6
|
120
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
159
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
160
|
+
- RUBY_VERSION: ruby:2.6
|
161
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
162
|
+
# Ruby 2.5
|
163
|
+
- RUBY_VERSION: ruby:2.5
|
164
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
121
165
|
- RUBY_VERSION: ruby:2.5
|
122
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
166
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
167
|
+
# Ruby 2.4
|
123
168
|
- RUBY_VERSION: ruby:2.4
|
124
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
169
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
125
170
|
- RUBY_VERSION: ruby:2.4
|
126
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
171
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
172
|
+
# JRuby 9.2
|
173
|
+
- RUBY_VERSION: jruby:9.2
|
174
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
127
175
|
- RUBY_VERSION: jruby:9.2
|
128
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
176
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
177
|
+
# JRuby 9.2-13-jdk
|
129
178
|
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-13-jdk
|
130
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
179
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
180
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-13-jdk
|
181
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
182
|
+
# JRuby 9.2-11-jdk
|
183
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-11-jdk
|
184
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
131
185
|
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-11-jdk
|
132
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
186
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
187
|
+
# JRuby 9.2-8-jdk
|
188
|
+
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-8-jdk
|
189
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
133
190
|
- RUBY_VERSION: docker.elastic.co/observability-ci/jruby:9.2-8-jdk
|
134
|
-
FRAMEWORK: grape-1.6,sinatra-2.
|
191
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
data/.ci/.jenkins_framework.yml
CHANGED
data/.ci/.jenkins_ruby.yml
CHANGED
data/.ci/Jenkinsfile
CHANGED
@@ -21,12 +21,11 @@ pipeline {
|
|
21
21
|
CODECOV_SECRET = 'secret/apm-team/ci/apm-agent-ruby-codecov'
|
22
22
|
DOCKER_REGISTRY = 'docker.elastic.co'
|
23
23
|
DOCKER_SECRET = 'secret/apm-team/ci/docker-registry/prod'
|
24
|
-
GITHUB_CHECK_ITS_NAME = 'Integration Tests'
|
25
|
-
ITS_PIPELINE = 'apm-integration-tests-selector-mbp/main'
|
26
24
|
RELEASE_SECRET = 'secret/apm-team/ci/apm-agent-ruby-rubygems-release'
|
27
25
|
OPBEANS_REPO = 'opbeans-ruby'
|
28
26
|
REFERENCE_REPO = '/var/lib/jenkins/.git-references/apm-agent-ruby.git'
|
29
27
|
SLACK_CHANNEL = '#apm-agent-ruby'
|
28
|
+
RUBY_DOCKER_TAG = 'ruby:2.6'
|
30
29
|
}
|
31
30
|
options {
|
32
31
|
timeout(time: 2, unit: 'HOURS')
|
@@ -123,24 +122,36 @@ pipeline {
|
|
123
122
|
}
|
124
123
|
}
|
125
124
|
}
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
125
|
+
}
|
126
|
+
}
|
127
|
+
stage('Publish snapshot packages') {
|
128
|
+
options { skipDefaultCheckout() }
|
129
|
+
environment {
|
130
|
+
PATH = "${env.WORKSPACE}/.local/bin:${env.WORKSPACE}/bin:${env.PATH}"
|
131
|
+
BUCKET_NAME = 'oblt-artifacts'
|
132
|
+
DOCKER_REGISTRY = 'docker.elastic.co'
|
133
|
+
DOCKER_REGISTRY_SECRET = 'secret/observability-team/ci/docker-registry/prod'
|
134
|
+
GCS_ACCOUNT_SECRET = 'secret/observability-team/ci/snapshoty'
|
135
|
+
}
|
136
|
+
when { branch 'main' }
|
137
|
+
steps {
|
138
|
+
withGithubNotify(context: 'Publish snapshot packages') {
|
139
|
+
deleteDir()
|
140
|
+
unstash 'source'
|
141
|
+
dir(env.BASE_DIR) {
|
142
|
+
script {
|
143
|
+
docker.image(env.RUBY_DOCKER_TAG).inside() {
|
144
|
+
sh(label: 'install build system', script: 'gem install rake yard rspec')
|
145
|
+
sh(label: 'create gem', script: 'rake build')
|
146
|
+
}
|
147
|
+
snapshoty(
|
148
|
+
bucket: env.BUCKET_NAME,
|
149
|
+
gcsAccountSecret: env.GCS_ACCOUNT_SECRET,
|
150
|
+
dockerRegistry: env.DOCKER_REGISTRY,
|
151
|
+
dockerSecret: env.DOCKER_REGISTRY_SECRET
|
152
|
+
)
|
133
153
|
}
|
134
154
|
}
|
135
|
-
steps {
|
136
|
-
githubNotify(context: "${env.GITHUB_CHECK_ITS_NAME}", description: "${env.GITHUB_CHECK_ITS_NAME} ...", status: 'PENDING', targetUrl: "${env.JENKINS_URL}search/?q=${env.ITS_PIPELINE.replaceAll('/','+')}")
|
137
|
-
build(job: env.ITS_PIPELINE, propagate: false, wait: true,
|
138
|
-
parameters: [ string(name: 'INTEGRATION_TEST', value: 'Ruby'),
|
139
|
-
string(name: 'BUILD_OPTS', value: "--ruby-agent-version ${env.GIT_BASE_COMMIT} --ruby-agent-version-state ${env.GIT_BUILD_CAUSE} --ruby-agent-repo ${env.CHANGE_FORK?.trim() ?: 'elastic'}/${env.REPO} --opbeans-ruby-agent-branch ${env.GIT_BASE_COMMIT}"),
|
140
|
-
string(name: 'GITHUB_CHECK_NAME', value: env.GITHUB_CHECK_ITS_NAME),
|
141
|
-
string(name: 'GITHUB_CHECK_REPO', value: env.REPO),
|
142
|
-
string(name: 'GITHUB_CHECK_SHA1', value: env.GIT_BASE_COMMIT) ])
|
143
|
-
}
|
144
155
|
}
|
145
156
|
}
|
146
157
|
}
|
@@ -162,13 +173,13 @@ pipeline {
|
|
162
173
|
}
|
163
174
|
stages {
|
164
175
|
stage('Clean Workspace') {
|
165
|
-
agent { label '
|
176
|
+
agent { label 'microbenchmarks-pool' }
|
166
177
|
steps {
|
167
178
|
echo "Cleaning Workspace"
|
168
179
|
}
|
169
180
|
post {
|
170
181
|
always {
|
171
|
-
cleanWs()
|
182
|
+
cleanWs(notFailBuild: true)
|
172
183
|
}
|
173
184
|
}
|
174
185
|
}
|
@@ -183,7 +194,7 @@ pipeline {
|
|
183
194
|
unstash 'source'
|
184
195
|
dir("${BASE_DIR}"){
|
185
196
|
script {
|
186
|
-
def versions = readYaml(file: ".ci/.
|
197
|
+
def versions = readYaml(file: ".ci/.jenkins_ruby_benchmarks.yml")
|
187
198
|
def benchmarkTask = [:]
|
188
199
|
versions['RUBY_VERSION'].each{ v ->
|
189
200
|
benchmarkTask[v] = runBenchmark(v)
|
@@ -199,7 +210,6 @@ pipeline {
|
|
199
210
|
stage('Release') {
|
200
211
|
options { skipDefaultCheckout() }
|
201
212
|
environment {
|
202
|
-
RUBY_DOCKER_TAG = 'ruby:2.6'
|
203
213
|
HOME = '/var/lib/jenkins'
|
204
214
|
}
|
205
215
|
when {
|
@@ -283,7 +293,7 @@ pipeline {
|
|
283
293
|
*/
|
284
294
|
def runBenchmark(version){
|
285
295
|
return {
|
286
|
-
node('
|
296
|
+
node('microbenchmarks-pool'){
|
287
297
|
// Transform the versions like:
|
288
298
|
// - docker.elastic.co/observability-ci/jruby:9.2-12-jdk to jruby-9.2-12-jdk
|
289
299
|
// - jruby:9.1 to jruby-9.1
|
@@ -299,8 +309,6 @@ def runBenchmark(version){
|
|
299
309
|
}
|
300
310
|
try{
|
301
311
|
sh """./spec/scripts/benchmarks.sh "${version}" "${REFERENCE_REPO}" """
|
302
|
-
} catch(e){
|
303
|
-
throw e
|
304
312
|
} finally {
|
305
313
|
archiveArtifacts(
|
306
314
|
allowEmptyArchive: true,
|
@@ -308,6 +316,7 @@ def runBenchmark(version){
|
|
308
316
|
onlyIfSuccessful: false)
|
309
317
|
sendBenchmarks(file: "benchmark-${transformedVersion}.bulk",
|
310
318
|
index: "benchmark-ruby", archive: true)
|
319
|
+
cleanWs(notFailBuild: true)
|
311
320
|
}
|
312
321
|
}
|
313
322
|
}
|
@@ -411,7 +420,7 @@ def convergeCoverage() {
|
|
411
420
|
|
412
421
|
def prepareRelease(Closure body){
|
413
422
|
dir("${env.BASE_DIR}"){
|
414
|
-
docker.image(
|
423
|
+
docker.image(env.RUBY_DOCKER_TAG).inside('-v ${REFERENCE_REPO}:${REFERENCE_REPO} -v /etc/passwd:/etc/passwd -v ${HOME}/.ssh:${HOME}/.ssh') {
|
415
424
|
withEnv(["HOME=${env.WORKSPACE}/${env.BASE_DIR ?: ''}"]) {
|
416
425
|
rubygemsLogin.withApi(secret: "${env.RELEASE_SECRET}") {
|
417
426
|
withGitRelease(credentialsId: '2a9602aa-ab9f-4e52-baf3-b71ca88469c7-UserAndToken') {
|
data/.ci/snapshoty.yml
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
# Version of configuration to use
|
4
|
+
version: '1.0'
|
5
|
+
|
6
|
+
# You can define a Google Cloud Account to use
|
7
|
+
account:
|
8
|
+
# Project id of the service account
|
9
|
+
project: '${GCS_PROJECT}'
|
10
|
+
# Private key id of the service account
|
11
|
+
private_key_id: '${GCS_PRIVATE_KEY_ID}'
|
12
|
+
# Private key of the service account
|
13
|
+
private_key: '${GCS_PRIVATE_KEY}'
|
14
|
+
# Email of the service account
|
15
|
+
client_email: '${GCS_CLIENT_EMAIL}'
|
16
|
+
# URI token
|
17
|
+
token_uri: 'https://oauth2.googleapis.com/token'
|
18
|
+
|
19
|
+
# List of artifacts
|
20
|
+
artifacts:
|
21
|
+
# Path to use for artifacts discovery
|
22
|
+
- path: './pkg'
|
23
|
+
# Files pattern to match
|
24
|
+
files_pattern: 'elastic-apm-(?P<app_version>\d+\.\d+\.\d+)\.gem'
|
25
|
+
# File layout on GCS bucket
|
26
|
+
output_pattern: '{project}/{jenkins_branch_name}/elastic-apm-ruby-{app_version}-{jenkins_git_commit_short}.gem'
|
27
|
+
# List of metadata processors to use.
|
28
|
+
metadata:
|
29
|
+
# Define static custom metadata
|
30
|
+
- name: 'custom'
|
31
|
+
data:
|
32
|
+
project: 'apm-agent-ruby'
|
33
|
+
# Add jenkins metadata
|
34
|
+
- name: 'jenkins'
|
@@ -0,0 +1,108 @@
|
|
1
|
+
name: update-specs
|
2
|
+
|
3
|
+
title: synchronize schema specs
|
4
|
+
|
5
|
+
scms:
|
6
|
+
default:
|
7
|
+
kind: github
|
8
|
+
spec:
|
9
|
+
user: '{{ requiredEnv "GIT_USER" }}'
|
10
|
+
email: '{{ requiredEnv "GIT_EMAIL" }}'
|
11
|
+
owner: elastic
|
12
|
+
repository: apm-agent-ruby
|
13
|
+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
|
14
|
+
username: '{{ requiredEnv "GIT_USER" }}'
|
15
|
+
branch: main
|
16
|
+
|
17
|
+
sources:
|
18
|
+
sha:
|
19
|
+
kind: file
|
20
|
+
spec:
|
21
|
+
file: 'https://github.com/elastic/apm-data/commit/main.patch'
|
22
|
+
matchpattern: "^From\\s([0-9a-f]{40})\\s"
|
23
|
+
transformers:
|
24
|
+
- findsubmatch:
|
25
|
+
pattern: "[0-9a-f]{40}"
|
26
|
+
error.json:
|
27
|
+
kind: file
|
28
|
+
spec:
|
29
|
+
file: https://raw.githubusercontent.com/elastic/apm-data/main/input/elasticapm/docs/spec/v2/error.json
|
30
|
+
metadata.json:
|
31
|
+
kind: file
|
32
|
+
spec:
|
33
|
+
file: https://raw.githubusercontent.com/elastic/apm-data/main/input/elasticapm/docs/spec/v2/metadata.json
|
34
|
+
metricset.json:
|
35
|
+
kind: file
|
36
|
+
spec:
|
37
|
+
file: https://raw.githubusercontent.com/elastic/apm-data/main/input/elasticapm/docs/spec/v2/metricset.json
|
38
|
+
span.json:
|
39
|
+
kind: file
|
40
|
+
spec:
|
41
|
+
file: https://raw.githubusercontent.com/elastic/apm-data/main/input/elasticapm/docs/spec/v2/span.json
|
42
|
+
transaction.json:
|
43
|
+
kind: file
|
44
|
+
spec:
|
45
|
+
file: https://raw.githubusercontent.com/elastic/apm-data/main/input/elasticapm/docs/spec/v2/transaction.json
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
actions:
|
52
|
+
pr:
|
53
|
+
kind: "github/pullrequest"
|
54
|
+
scmid: default
|
55
|
+
sourceid: sha
|
56
|
+
spec:
|
57
|
+
automerge: false
|
58
|
+
draft: false
|
59
|
+
labels:
|
60
|
+
- "automation"
|
61
|
+
description: |-
|
62
|
+
### What
|
63
|
+
APM agent json schema automatic sync
|
64
|
+
### Why
|
65
|
+
*Changeset*
|
66
|
+
* https://github.com/elastic/apm-data/commit/{{ source "sha" }}
|
67
|
+
|
68
|
+
targets:
|
69
|
+
error.json:
|
70
|
+
name: error.json
|
71
|
+
scmid: default
|
72
|
+
sourceid: error.json
|
73
|
+
kind: file
|
74
|
+
spec:
|
75
|
+
file: spec/fixtures/error.json
|
76
|
+
forcecreate: true
|
77
|
+
metadata.json:
|
78
|
+
name: metadata.json
|
79
|
+
scmid: default
|
80
|
+
sourceid: metadata.json
|
81
|
+
kind: file
|
82
|
+
spec:
|
83
|
+
file: spec/fixtures/metadata.json
|
84
|
+
forcecreate: true
|
85
|
+
metricset.json:
|
86
|
+
name: metricset.json
|
87
|
+
scmid: default
|
88
|
+
sourceid: metricset.json
|
89
|
+
kind: file
|
90
|
+
spec:
|
91
|
+
file: spec/fixtures/metricset.json
|
92
|
+
forcecreate: true
|
93
|
+
span.json:
|
94
|
+
name: span.json
|
95
|
+
scmid: default
|
96
|
+
sourceid: span.json
|
97
|
+
kind: file
|
98
|
+
spec:
|
99
|
+
file: spec/fixtures/span.json
|
100
|
+
forcecreate: true
|
101
|
+
transaction.json:
|
102
|
+
name: transaction.json
|
103
|
+
scmid: default
|
104
|
+
sourceid: transaction.json
|
105
|
+
kind: file
|
106
|
+
spec:
|
107
|
+
file: spec/fixtures/transaction.json
|
108
|
+
forcecreate: true
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: update-specs
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch: ~
|
5
|
+
schedule:
|
6
|
+
- cron: '0 6 * * *'
|
7
|
+
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
bump:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v3
|
16
|
+
- uses: elastic/apm-pipeline-library/.github/actions/updatecli@current
|
17
|
+
env:
|
18
|
+
BRANCH_NAME: ${{ github.ref_name }}
|
19
|
+
with:
|
20
|
+
vaultUrl: ${{ secrets.VAULT_ADDR }}
|
21
|
+
vaultRoleId: ${{ secrets.VAULT_ROLE_ID }}
|
22
|
+
vaultSecretId: ${{ secrets.VAULT_SECRET_ID }}
|
23
|
+
pipeline: ./.ci/update-specs.yml
|
24
|
+
- if: failure()
|
25
|
+
uses: elastic/apm-pipeline-library/.github/actions/notify-build-status@current
|
26
|
+
with:
|
27
|
+
vaultUrl: ${{ secrets.VAULT_ADDR }}
|
28
|
+
vaultRoleId: ${{ secrets.VAULT_ROLE_ID }}
|
29
|
+
vaultSecretId: ${{ secrets.VAULT_SECRET_ID }}
|
30
|
+
slackChannel: "#apm-agent-ruby"
|
data/CHANGELOG.asciidoc
CHANGED
@@ -35,6 +35,40 @@ endif::[]
|
|
35
35
|
[[release-notes-4.x]]
|
36
36
|
=== Ruby Agent version 4.x
|
37
37
|
|
38
|
+
[[release-notes-4.6.1]]
|
39
|
+
==== 4.6.1
|
40
|
+
|
41
|
+
[float]
|
42
|
+
===== Fixed
|
43
|
+
|
44
|
+
- Fix growing number of open file descriptors when HTTP request to APM is never sent {pull}1351[#1351]
|
45
|
+
- Fix setting span http status code when Faraday Middleware is used {pull}1368[#1368]
|
46
|
+
- Handle whitespace when splitting tracestate entries {pull}1353[#1353]
|
47
|
+
|
48
|
+
[[release-notes-4.6.0]]
|
49
|
+
==== 4.6.0
|
50
|
+
|
51
|
+
[float]
|
52
|
+
===== Added
|
53
|
+
|
54
|
+
- Added transaction_name to reported error to allow grouping by transaction name {pull}1267[#1267]
|
55
|
+
- Added ability to query server for version (useful in the future) {pull}1278[#1278]
|
56
|
+
- Added instrumentation for https://github.com/zendesk/racecar/ Racecar Kafka library {pull}1284[#1284]
|
57
|
+
|
58
|
+
===== Changed
|
59
|
+
|
60
|
+
- Expanded filtering to sanitize any key that contains the string 'auth' {pull}1266[#1266]
|
61
|
+
- Rename `log_ecs_formatting` option to `log_ecs_reformatting`, deprecate old option name {pull}1248[#1248]
|
62
|
+
- When the configuration value for `log_path` is set, override the `logger` to point to that path instead of using e.g. Rails logger {pull}1247[#1247]
|
63
|
+
- Only send tracestate header for distributed tracing when it has content {pull}1277[#1277]
|
64
|
+
- Use the hostname as the Kubernetes pod name in the Container Info metadata if the pod id is parsed from cgroup {pull}1314[#1314]
|
65
|
+
|
66
|
+
====== Fixed
|
67
|
+
|
68
|
+
- Small change to Sidekiq tests to handle new configuration passing method {pull}1283[#1283]
|
69
|
+
- Set transaction sample rate to 0 when it's unsampled {pull}1339[#1339]
|
70
|
+
- Don't send unsampled transactions to APM server >= 8.0 {pull}1341[#1341]
|
71
|
+
|
38
72
|
[[release-notes-4.5.1]]
|
39
73
|
==== 4.5.1
|
40
74
|
|
data/Gemfile
CHANGED
@@ -46,11 +46,12 @@ if !defined?(JRUBY_VERSION) && RUBY_VERSION < '2.5'
|
|
46
46
|
gem 'google-protobuf', '< 3.12'
|
47
47
|
end
|
48
48
|
gem 'grpc' if !defined?(JRUBY_VERSION) && RUBY_VERSION < '3.0'
|
49
|
-
gem 'json'
|
49
|
+
gem 'json'
|
50
50
|
gem 'json-schema', require: nil
|
51
51
|
gem 'mongo', require: nil
|
52
52
|
gem 'opentracing', require: nil
|
53
53
|
gem 'rake', '>= 13.0', require: nil
|
54
|
+
gem 'racecar', require: nil if !defined?(JRUBY_VERSION)
|
54
55
|
gem 'resque', require: nil
|
55
56
|
gem 'sequel', require: nil
|
56
57
|
gem 'shoryuken', require: nil
|
@@ -77,6 +78,10 @@ frameworks_versions = parsed_frameworks.inject({}) do |frameworks, str|
|
|
77
78
|
end
|
78
79
|
|
79
80
|
frameworks_versions.each do |framework, version|
|
81
|
+
if framework =='rails' && RUBY_VERSION >= '3.1'
|
82
|
+
gem 'net-smtp', require: false
|
83
|
+
end
|
84
|
+
|
80
85
|
case version
|
81
86
|
when 'master' # sinatra, grape
|
82
87
|
gem framework, github: GITHUB_REPOS.fetch(framework)
|
@@ -111,12 +116,14 @@ if RUBY_PLATFORM == 'java'
|
|
111
116
|
end
|
112
117
|
elsif frameworks_versions['rails'] =~ /^(4|5)/
|
113
118
|
gem 'sqlite3', '~> 1.3.6'
|
119
|
+
elsif RUBY_VERSION < '2.7'
|
120
|
+
gem 'sqlite3', '~> 1.4.4'
|
114
121
|
else
|
115
122
|
gem 'sqlite3'
|
116
123
|
end
|
117
124
|
|
118
|
-
#
|
119
|
-
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('2.5.0')
|
125
|
+
# sneakers main only supports >=2.5.0
|
126
|
+
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('2.5.0') && !defined?(JRUBY_VERSION)
|
120
127
|
gem 'sneakers', github: 'jondot/sneakers', ref: 'd761dfe1493', require: nil
|
121
128
|
end
|
122
129
|
|
data/bench/report.rb
CHANGED
@@ -11,7 +11,7 @@ git_date = `git log -n 1 --pretty="format:%ai"`
|
|
11
11
|
platform = Gem::Platform.local
|
12
12
|
|
13
13
|
def doc(payload)
|
14
|
-
puts({ index: { _index: "benchmark-ruby"
|
14
|
+
puts({ index: { _index: "benchmark-ruby" } }.to_json)
|
15
15
|
puts(payload.to_json)
|
16
16
|
end
|
17
17
|
|
data/docker-compose.yml
CHANGED
@@ -6,6 +6,8 @@ services:
|
|
6
6
|
image: mongo:latest
|
7
7
|
volumes: ['mongodata:/data/db']
|
8
8
|
ports: ['27017:27017']
|
9
|
+
security_opt:
|
10
|
+
- no-new-privileges
|
9
11
|
|
10
12
|
specs:
|
11
13
|
build:
|
@@ -27,12 +29,16 @@ services:
|
|
27
29
|
depends_on:
|
28
30
|
- mongodb
|
29
31
|
user: ${USER_ID}
|
32
|
+
security_opt:
|
33
|
+
- no-new-privileges
|
30
34
|
|
31
35
|
ruby_rspec:
|
32
36
|
image: apm-agent-ruby:${RUBY_VERSION}
|
33
37
|
environment:
|
34
38
|
MONGODB_URL: 'mongodb:27017'
|
35
39
|
user: ${USER_ID}
|
40
|
+
security_opt:
|
41
|
+
- no-new-privileges
|
36
42
|
|
37
43
|
volumes:
|
38
44
|
vendor:
|