elastic-apm 4.6.0 → 4.7.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 +193 -0
- data/.ci/.main_framework.yml +4 -0
- data/.ci/.ruby.yml +10 -0
- data/.ci/docker/jruby/11-jdk/Dockerfile +8 -3
- data/.ci/docker/jruby/12-jdk/Dockerfile +5 -2
- data/.ci/docker/jruby/13-jdk/Dockerfile +5 -2
- data/.ci/docker/jruby/7-jdk/Dockerfile +6 -3
- data/.ci/docker/jruby/8-jdk/Dockerfile +8 -3
- data/.ci/docker/jruby/README.md +1 -1
- data/.ci/docker/jruby/run.sh +33 -9
- data/.ci/docker/jruby/test.sh +17 -2
- data/.ci/scripts/bench.sh +52 -0
- data/.ci/scripts/install-build-system.sh +5 -0
- data/.ci/snapshoty.yml +33 -0
- data/.ci/updatecli.d/update-gherkin-specs.yml +117 -0
- data/.ci/updatecli.d/update-json-specs.yml +121 -0
- data/.ci/updatecli.d/update-specs.yml +108 -0
- data/.github/workflows/ci-docs.yml +20 -0
- data/.github/workflows/ci.yml +70 -0
- data/.github/workflows/coverage-reporter.yml +34 -0
- data/.github/workflows/microbenchmark.yml +48 -0
- data/.github/workflows/opentelemetry.yml +27 -0
- data/.github/workflows/release.yml +71 -0
- data/.github/workflows/run-matrix.yml +56 -0
- data/.github/workflows/snapshoty.yml +35 -0
- data/.github/workflows/test-reporter.yml +24 -0
- data/.github/workflows/updatecli.yml +28 -0
- data/.pre-commit-config.yaml +0 -2
- data/CHANGELOG.asciidoc +29 -1
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +8 -2
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/bench/rubyprof.rb +1 -0
- data/bin/run-tests +10 -1
- data/docker-compose.yml +10 -1
- data/docs/configuration.asciidoc +6 -5
- data/docs/index.asciidoc +2 -2
- data/docs/{log-correlation.asciidoc → logs.asciidoc} +29 -2
- data/docs/opentracing.asciidoc +1 -1
- data/docs/redirects.asciidoc +9 -0
- data/lib/elastic_apm/context_builder.rb +3 -3
- data/lib/elastic_apm/metrics.rb +24 -20
- data/lib/elastic_apm/span_helpers.rb +6 -6
- data/lib/elastic_apm/spies/faraday.rb +13 -4
- data/lib/elastic_apm/trace_context/tracestate.rb +3 -1
- data/lib/elastic_apm/transport/connection/http.rb +9 -3
- data/lib/elastic_apm/version.rb +1 -1
- metadata +25 -17
- data/.ci/.jenkins_exclude.yml +0 -191
- data/.ci/.jenkins_main_framework.yml +0 -4
- data/.ci/.jenkins_ruby.yml +0 -10
- data/.ci/.jenkins_ruby_benchmarks.yml +0 -6
- data/.ci/Jenkinsfile +0 -419
- data/.ci/jobs/apm-agent-ruby-downstream.yml +0 -38
- data/.ci/jobs/apm-agent-ruby-linting-mbp.yml +0 -39
- data/.ci/jobs/apm-agent-ruby-mbp.yml +0 -43
- data/.ci/jobs/apm-agent-ruby.yml +0 -4
- data/.ci/jobs/defaults.yml +0 -24
- data/.ci/linting.groovy +0 -32
- data/.ci/packer_cache.sh +0 -16
- /data/.ci/{.jenkins_codecov.yml → .codecov.yml} +0 -0
- /data/.ci/{.jenkins_framework.yml → .framework.yml} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cd4366b1660aa74bcabd2f70126ab00d849d6bf326c884ab47d9877564430db
|
|
4
|
+
data.tar.gz: a9c5faf9bc50e3922ac2eb816e85b71c32a946c263c284b5c69675330b262047
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2fb7959b551db2b43453beeef14cf59adf3c9a18fecfe9b54129dbb449d6c7e320bfbf15df0b3e25fbebb8a3d96c59e91df841027c2cb1cefe55d288889738f8
|
|
7
|
+
data.tar.gz: ce91a520a1358d9610b816d1f6a1bf20bb6b270a66c6c6ff0a410af975f1535424b9686f3a958c1e22d1c630a465d7161cabe5fb48ffb17df7e3fe38bb97550e
|
data/.ci/.exclude.yml
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
exclude:
|
|
2
|
+
# Ruby 2.4
|
|
3
|
+
# Only test on rails-4.2, sinatra-1.4
|
|
4
|
+
- VERSION: ruby:2.4
|
|
5
|
+
FRAMEWORK: rails-7.0
|
|
6
|
+
- VERSION: ruby:2.4
|
|
7
|
+
FRAMEWORK: rails-6.1
|
|
8
|
+
- VERSION: ruby:2.4
|
|
9
|
+
FRAMEWORK: rails-6.0
|
|
10
|
+
- VERSION: ruby:2.4
|
|
11
|
+
FRAMEWORK: rails-5.2
|
|
12
|
+
- VERSION: ruby:2.4
|
|
13
|
+
FRAMEWORK: sinatra-2.2
|
|
14
|
+
- VERSION: ruby:2.4
|
|
15
|
+
FRAMEWORK: grape-1.6
|
|
16
|
+
- VERSION: ruby:2.4
|
|
17
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.0
|
|
18
|
+
- VERSION: ruby:2.4
|
|
19
|
+
FRAMEWORK: rails-main
|
|
20
|
+
- VERSION: ruby:2.4
|
|
21
|
+
FRAMEWORK: sinatra-main
|
|
22
|
+
- VERSION: ruby:2.4
|
|
23
|
+
FRAMEWORK: grape-master
|
|
24
|
+
|
|
25
|
+
# rails-4.2 exclusions
|
|
26
|
+
# Only test on ruby 2.4
|
|
27
|
+
- VERSION: ruby:3.1
|
|
28
|
+
FRAMEWORK: rails-4.2
|
|
29
|
+
- VERSION: ruby:3.0
|
|
30
|
+
FRAMEWORK: rails-4.2
|
|
31
|
+
- VERSION: ruby:2.7
|
|
32
|
+
FRAMEWORK: rails-4.2
|
|
33
|
+
- VERSION: ruby:2.6
|
|
34
|
+
FRAMEWORK: rails-4.2
|
|
35
|
+
- VERSION: jruby:9.2
|
|
36
|
+
FRAMEWORK: rails-4.2
|
|
37
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
38
|
+
FRAMEWORK: rails-4.2
|
|
39
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
40
|
+
FRAMEWORK: rails-4.2
|
|
41
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
42
|
+
FRAMEWORK: rails-4.2
|
|
43
|
+
# sinatra-1.4 exclusions
|
|
44
|
+
- VERSION: ruby:3.1
|
|
45
|
+
FRAMEWORK: sinatra-1.4
|
|
46
|
+
- VERSION: ruby:3.0
|
|
47
|
+
FRAMEWORK: sinatra-1.4
|
|
48
|
+
- VERSION: ruby:2.7
|
|
49
|
+
FRAMEWORK: sinatra-1.4
|
|
50
|
+
- VERSION: jruby:9.2
|
|
51
|
+
FRAMEWORK: sinatra-1.4
|
|
52
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
53
|
+
FRAMEWORK: sinatra-1.4
|
|
54
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
55
|
+
FRAMEWORK: sinatra-1.4
|
|
56
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
57
|
+
FRAMEWORK: sinatra-1.4
|
|
58
|
+
|
|
59
|
+
# rails-6.0 and rails-6.1 exclusions
|
|
60
|
+
# Don't test on ruby 2.4
|
|
61
|
+
- VERSION: ruby:2.4
|
|
62
|
+
FRAMEWORK: rails-6.1
|
|
63
|
+
- VERSION: ruby:2.4
|
|
64
|
+
FRAMEWORK: rails-6.0
|
|
65
|
+
|
|
66
|
+
# Only test rails main on ruby 3.1
|
|
67
|
+
- VERSION: ruby:3.0
|
|
68
|
+
FRAMEWORK: rails-main
|
|
69
|
+
- VERSION: ruby:2.7
|
|
70
|
+
FRAMEWORK: rails-main
|
|
71
|
+
- VERSION: ruby:2.6
|
|
72
|
+
FRAMEWORK: rails-main
|
|
73
|
+
- VERSION: ruby:2.5
|
|
74
|
+
FRAMEWORK: rails-main
|
|
75
|
+
- VERSION: ruby:2.4
|
|
76
|
+
FRAMEWORK: rails-main
|
|
77
|
+
- VERSION: jruby:9.2
|
|
78
|
+
FRAMEWORK: rails-main
|
|
79
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
80
|
+
FRAMEWORK: rails-main
|
|
81
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
82
|
+
FRAMEWORK: rails-main
|
|
83
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
84
|
+
FRAMEWORK: rails-main
|
|
85
|
+
|
|
86
|
+
# Only test rails 7.0 on ruby >= 2.7
|
|
87
|
+
- VERSION: ruby:2.6
|
|
88
|
+
FRAMEWORK: rails-7.0
|
|
89
|
+
- VERSION: ruby:2.5
|
|
90
|
+
FRAMEWORK: rails-7.0
|
|
91
|
+
- VERSION: ruby:2.4
|
|
92
|
+
FRAMEWORK: rails-7.0
|
|
93
|
+
- VERSION: jruby:9.2
|
|
94
|
+
FRAMEWORK: rails-7.0
|
|
95
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
96
|
+
FRAMEWORK: rails-7.0
|
|
97
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
98
|
+
FRAMEWORK: rails-7.0
|
|
99
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
100
|
+
FRAMEWORK: rails-7.0
|
|
101
|
+
|
|
102
|
+
# Only test sinatra main on ruby 2.7 and ruby 3.1
|
|
103
|
+
- VERSION: ruby:3.0
|
|
104
|
+
FRAMEWORK: sinatra-main
|
|
105
|
+
- VERSION: ruby:2.6
|
|
106
|
+
FRAMEWORK: sinatra-main
|
|
107
|
+
- VERSION: ruby:2.5
|
|
108
|
+
FRAMEWORK: sinatra-main
|
|
109
|
+
- VERSION: ruby:2.4
|
|
110
|
+
FRAMEWORK: sinatra-main
|
|
111
|
+
- VERSION: jruby:9.2
|
|
112
|
+
FRAMEWORK: sinatra-main
|
|
113
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
114
|
+
FRAMEWORK: sinatra-main
|
|
115
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
116
|
+
FRAMEWORK: sinatra-main
|
|
117
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
118
|
+
FRAMEWORK: sinatra-main
|
|
119
|
+
|
|
120
|
+
# Only test grape master on ruby 2.7 and ruby 3.0
|
|
121
|
+
- VERSION: ruby:2.6
|
|
122
|
+
FRAMEWORK: grape-master
|
|
123
|
+
- VERSION: ruby:2.5
|
|
124
|
+
FRAMEWORK: grape-master
|
|
125
|
+
- VERSION: ruby:2.4
|
|
126
|
+
FRAMEWORK: grape-master
|
|
127
|
+
- VERSION: jruby:9.2
|
|
128
|
+
FRAMEWORK: grape-master
|
|
129
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
130
|
+
FRAMEWORK: grape-master
|
|
131
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
132
|
+
FRAMEWORK: grape-master
|
|
133
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
134
|
+
FRAMEWORK: grape-master
|
|
135
|
+
|
|
136
|
+
# grape 1.5 doesn't support ruby 3.0
|
|
137
|
+
- VERSION: ruby:3.1
|
|
138
|
+
FRAMEWORK: grape-1.6
|
|
139
|
+
- VERSION: ruby:3.1
|
|
140
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
141
|
+
- VERSION: ruby:3.1
|
|
142
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
143
|
+
- VERSION: ruby:3.0
|
|
144
|
+
FRAMEWORK: grape-1.6
|
|
145
|
+
- VERSION: ruby:3.0
|
|
146
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
147
|
+
|
|
148
|
+
# only test ruby >= 3.0 with rails 6.0 and rails 6.1
|
|
149
|
+
- VERSION: ruby:3.1
|
|
150
|
+
FRAMEWORK: rails-5.2
|
|
151
|
+
- VERSION: ruby:3.1
|
|
152
|
+
FRAMEWORK: rails-5.1
|
|
153
|
+
- VERSION: ruby:3.0
|
|
154
|
+
FRAMEWORK: rails-5.2
|
|
155
|
+
- VERSION: ruby:3.0
|
|
156
|
+
FRAMEWORK: rails-5.1
|
|
157
|
+
|
|
158
|
+
# Unsupported
|
|
159
|
+
# Ruby 2.6
|
|
160
|
+
- VERSION: ruby:2.6
|
|
161
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
162
|
+
- VERSION: ruby:2.6
|
|
163
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
164
|
+
# Ruby 2.5
|
|
165
|
+
- VERSION: ruby:2.5
|
|
166
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
167
|
+
- VERSION: ruby:2.5
|
|
168
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
169
|
+
# Ruby 2.4
|
|
170
|
+
- VERSION: ruby:2.4
|
|
171
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
172
|
+
- VERSION: ruby:2.4
|
|
173
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
174
|
+
# JRuby 9.2
|
|
175
|
+
- VERSION: jruby:9.2
|
|
176
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
177
|
+
- VERSION: jruby:9.2
|
|
178
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
179
|
+
# JRuby 9.2-13-jdk
|
|
180
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
181
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
182
|
+
- VERSION: elasticobservability/jruby:9.2-13-jdk
|
|
183
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
184
|
+
# JRuby 9.2-11-jdk
|
|
185
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
186
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
187
|
+
- VERSION: elasticobservability/jruby:9.2-11-jdk
|
|
188
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
|
189
|
+
# JRuby 9.2-8-jdk
|
|
190
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
191
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
|
|
192
|
+
- VERSION: elasticobservability/jruby:9.2-8-jdk
|
|
193
|
+
FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
|
data/.ci/.ruby.yml
ADDED
|
@@ -6,11 +6,11 @@ RUN apt-get update \
|
|
|
6
6
|
&& rm -rf /var/lib/apt/lists/*
|
|
7
7
|
|
|
8
8
|
ENV JRUBY_VERSION 9.2.16.0
|
|
9
|
-
ENV JRUBY_SHA256 9199707712c683c525252ccb1de5cb8e75f53b790c5b57a18f6367039ec79553
|
|
10
9
|
|
|
11
10
|
RUN mkdir -p /opt/jruby \
|
|
11
|
+
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz.sha256 -o /tmp/jruby.sha256 \
|
|
12
12
|
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz -o /tmp/jruby.tar.gz \
|
|
13
|
-
&& echo "$
|
|
13
|
+
&& echo "$(cat /tmp/jruby.sha256) */tmp/jruby.tar.gz" | sha256sum -c - \
|
|
14
14
|
&& tar -zx --strip-components=1 -f /tmp/jruby.tar.gz -C /opt/jruby \
|
|
15
15
|
&& update-alternatives --install /usr/local/bin/ruby ruby /opt/jruby/bin/jruby 1
|
|
16
16
|
|
|
@@ -25,7 +25,9 @@ RUN mkdir -p /opt/jruby/etc \
|
|
|
25
25
|
} >> /opt/jruby/etc/gemrc
|
|
26
26
|
|
|
27
27
|
# install bundler, gem requires bash to work
|
|
28
|
-
|
|
28
|
+
# https://github.com/rubygems/rubygems/issues/2534#issuecomment-448843746
|
|
29
|
+
RUN gem update --system --conservative || (gem i "rubygems-update:~>2.7" --no-document && update_rubygems) \
|
|
30
|
+
&& gem install bundler:2.3.26 rake net-telnet xmlrpc tzinfo-data
|
|
29
31
|
|
|
30
32
|
# install things globally, for great justice
|
|
31
33
|
# and don't create ".bundle" in all our apps
|
|
@@ -38,4 +40,7 @@ ENV PATH $BUNDLE_BIN:$PATH
|
|
|
38
40
|
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \
|
|
39
41
|
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
|
|
40
42
|
|
|
43
|
+
RUN useradd -rm -d /home/jruby -u 1001 jruby
|
|
44
|
+
USER jruby
|
|
45
|
+
WORKDIR /home/jruby
|
|
41
46
|
CMD [ "irb" ]
|
|
@@ -6,11 +6,11 @@ RUN apt-get update \
|
|
|
6
6
|
&& rm -rf /var/lib/apt/lists/*
|
|
7
7
|
|
|
8
8
|
ENV JRUBY_VERSION 9.3.1.0
|
|
9
|
-
ENV JRUBY_SHA256 9199707712c683c525252ccb1de5cb8e75f53b790c5b57a18f6367039ec79553
|
|
10
9
|
|
|
11
10
|
RUN mkdir -p /opt/jruby \
|
|
11
|
+
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz.sha256 -o /tmp/jruby.sha256 \
|
|
12
12
|
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz -o /tmp/jruby.tar.gz \
|
|
13
|
-
&& echo "$
|
|
13
|
+
&& echo "$(cat /tmp/jruby.sha256) */tmp/jruby.tar.gz" | sha256sum -c - \
|
|
14
14
|
&& tar -zx --strip-components=1 -f /tmp/jruby.tar.gz -C /opt/jruby \
|
|
15
15
|
&& update-alternatives --install /usr/local/bin/ruby ruby /opt/jruby/bin/jruby 1
|
|
16
16
|
|
|
@@ -38,4 +38,7 @@ ENV PATH $BUNDLE_BIN:$PATH
|
|
|
38
38
|
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \
|
|
39
39
|
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
|
|
40
40
|
|
|
41
|
+
RUN useradd -rm -d /home/jruby -u 1001 jruby
|
|
42
|
+
USER jruby
|
|
43
|
+
WORKDIR /home/jruby
|
|
41
44
|
CMD [ "irb" ]
|
|
@@ -6,11 +6,11 @@ RUN apt-get update \
|
|
|
6
6
|
&& rm -rf /var/lib/apt/lists/*
|
|
7
7
|
|
|
8
8
|
ENV JRUBY_VERSION 9.3.1.0
|
|
9
|
-
ENV JRUBY_SHA256 9199707712c683c525252ccb1de5cb8e75f53b790c5b57a18f6367039ec79553
|
|
10
9
|
|
|
11
10
|
RUN mkdir -p /opt/jruby \
|
|
11
|
+
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz.sha256 -o /tmp/jruby.sha256 \
|
|
12
12
|
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz -o /tmp/jruby.tar.gz \
|
|
13
|
-
&& echo "$
|
|
13
|
+
&& echo "$(cat /tmp/jruby.sha256) */tmp/jruby.tar.gz" | sha256sum -c - \
|
|
14
14
|
&& tar -zx --strip-components=1 -f /tmp/jruby.tar.gz -C /opt/jruby \
|
|
15
15
|
&& update-alternatives --install /usr/local/bin/ruby ruby /opt/jruby/bin/jruby 1
|
|
16
16
|
|
|
@@ -38,4 +38,7 @@ ENV PATH $BUNDLE_BIN:$PATH
|
|
|
38
38
|
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \
|
|
39
39
|
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
|
|
40
40
|
|
|
41
|
+
RUN useradd -rm -d /home/jruby -u 1001 jruby
|
|
42
|
+
USER jruby
|
|
43
|
+
WORKDIR /home/jruby
|
|
41
44
|
CMD [ "irb" ]
|
|
@@ -2,15 +2,15 @@ FROM openjdk:7-jdk
|
|
|
2
2
|
|
|
3
3
|
RUN apt-get update \
|
|
4
4
|
&& apt-get install -y libc6-dev --no-install-recommends \
|
|
5
|
-
&& apt-get install -y gcc \
|
|
5
|
+
&& apt-get install --force-yes -y gcc \
|
|
6
6
|
&& rm -rf /var/lib/apt/lists/*
|
|
7
7
|
|
|
8
8
|
ENV JRUBY_VERSION 9.3.1.0
|
|
9
|
-
ENV JRUBY_SHA256 6a22f7bf8fef1a52530a9c9781a9d374ad07bbbef0d3d8e2af0ff5cbead0dfd5
|
|
10
9
|
|
|
11
10
|
RUN mkdir -p /opt/jruby \
|
|
11
|
+
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz.sha256 -o /tmp/jruby.sha256 \
|
|
12
12
|
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz -o /tmp/jruby.tar.gz \
|
|
13
|
-
&& echo "$
|
|
13
|
+
&& echo "$(cat /tmp/jruby.sha256) */tmp/jruby.tar.gz" | sha256sum -c - \
|
|
14
14
|
&& tar -zx --strip-components=1 -f /tmp/jruby.tar.gz -C /opt/jruby \
|
|
15
15
|
&& update-alternatives --install /usr/local/bin/ruby ruby /opt/jruby/bin/jruby 1
|
|
16
16
|
|
|
@@ -38,4 +38,7 @@ ENV PATH $BUNDLE_BIN:$PATH
|
|
|
38
38
|
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \
|
|
39
39
|
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
|
|
40
40
|
|
|
41
|
+
RUN useradd -rm -d /home/jruby -u 1001 jruby
|
|
42
|
+
USER jruby
|
|
43
|
+
WORKDIR /home/jruby
|
|
41
44
|
CMD [ "irb" ]
|
|
@@ -6,11 +6,11 @@ RUN apt-get update \
|
|
|
6
6
|
&& rm -rf /var/lib/apt/lists/*
|
|
7
7
|
|
|
8
8
|
ENV JRUBY_VERSION 9.2.14.0
|
|
9
|
-
ENV JRUBY_SHA256 9199707712c683c525252ccb1de5cb8e75f53b790c5b57a18f6367039ec79553
|
|
10
9
|
|
|
11
10
|
RUN mkdir -p /opt/jruby \
|
|
11
|
+
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz.sha256 -o /tmp/jruby.sha256 \
|
|
12
12
|
&& curl -fSL https://repo1.maven.org/maven2/org/jruby/jruby-dist/${JRUBY_VERSION}/jruby-dist-${JRUBY_VERSION}-bin.tar.gz -o /tmp/jruby.tar.gz \
|
|
13
|
-
&& echo "$
|
|
13
|
+
&& echo "$(cat /tmp/jruby.sha256) */tmp/jruby.tar.gz" | sha256sum -c - \
|
|
14
14
|
&& tar -zx --strip-components=1 -f /tmp/jruby.tar.gz -C /opt/jruby \
|
|
15
15
|
&& update-alternatives --install /usr/local/bin/ruby ruby /opt/jruby/bin/jruby 1
|
|
16
16
|
|
|
@@ -25,7 +25,9 @@ RUN mkdir -p /opt/jruby/etc \
|
|
|
25
25
|
} >> /opt/jruby/etc/gemrc
|
|
26
26
|
|
|
27
27
|
# install bundler, gem requires bash to work
|
|
28
|
-
|
|
28
|
+
# https://github.com/rubygems/rubygems/issues/2534#issuecomment-448843746
|
|
29
|
+
RUN gem update --system --conservative || (gem i "rubygems-update:~>2.7" --no-document && update_rubygems) \
|
|
30
|
+
&& gem install bundler:2.3.26 rake net-telnet xmlrpc tzinfo-data
|
|
29
31
|
|
|
30
32
|
# install things globally, for great justice
|
|
31
33
|
# and don't create ".bundle" in all our apps
|
|
@@ -38,4 +40,7 @@ ENV PATH $BUNDLE_BIN:$PATH
|
|
|
38
40
|
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \
|
|
39
41
|
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
|
|
40
42
|
|
|
43
|
+
RUN useradd -rm -d /home/jruby -u 1001 jruby
|
|
44
|
+
USER jruby
|
|
45
|
+
WORKDIR /home/jruby
|
|
41
46
|
CMD [ "irb" ]
|
data/.ci/docker/jruby/README.md
CHANGED
|
@@ -12,7 +12,7 @@ To build the images run
|
|
|
12
12
|
|
|
13
13
|
You can set your own docker registry with the flag `--registry x.y.z/org`
|
|
14
14
|
|
|
15
|
-
You can exclude what images can be built with the flag `--exclude jdk-7`
|
|
15
|
+
You can exclude what images can be built with the flag `--exclude jdk-7`. Multiple usages of `--exclude` are accepted.
|
|
16
16
|
|
|
17
17
|
## Test
|
|
18
18
|
|
data/.ci/docker/jruby/run.sh
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
|
|
3
|
+
set -o pipefail
|
|
4
|
+
|
|
5
|
+
# 7-jdk is excluded by default. See https://github.com/elastic/apm-agent-ruby/pull/1367#issuecomment-1437228929
|
|
6
|
+
EXCLUDE=("7-jdk")
|
|
7
|
+
|
|
3
8
|
while (( "$#" )); do
|
|
4
9
|
case "$1" in
|
|
5
10
|
-r|--registry)
|
|
@@ -7,7 +12,7 @@ while (( "$#" )); do
|
|
|
7
12
|
shift 2
|
|
8
13
|
;;
|
|
9
14
|
-e|--exclude)
|
|
10
|
-
EXCLUDE
|
|
15
|
+
EXCLUDE+=("$2")
|
|
11
16
|
shift 2
|
|
12
17
|
;;
|
|
13
18
|
-a|--action)
|
|
@@ -28,12 +33,13 @@ while (( "$#" )); do
|
|
|
28
33
|
esac
|
|
29
34
|
done
|
|
30
35
|
|
|
36
|
+
function convert_exclude_opts() {
|
|
37
|
+
for val in "${EXCLUDE[@]}"; do
|
|
38
|
+
printf "! -path \"./%s/*\" " $val
|
|
39
|
+
done
|
|
40
|
+
}
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
search=$(find . -path ./$EXCLUDE -prune -o -name 'Dockerfile' -print)
|
|
34
|
-
else
|
|
35
|
-
search=$(find . -name 'Dockerfile' -print)
|
|
36
|
-
fi
|
|
42
|
+
search=$(bash -c "find . -name 'Dockerfile' $(convert_exclude_opts) -print")
|
|
37
43
|
|
|
38
44
|
function report {
|
|
39
45
|
if [ $1 -eq 0 ] ; then
|
|
@@ -43,7 +49,18 @@ function report {
|
|
|
43
49
|
fi
|
|
44
50
|
}
|
|
45
51
|
|
|
52
|
+
function max {
|
|
53
|
+
if [ "$1" -gt "$2" ]; then
|
|
54
|
+
echo "$1"
|
|
55
|
+
else
|
|
56
|
+
echo "$2"
|
|
57
|
+
fi
|
|
58
|
+
}
|
|
59
|
+
|
|
46
60
|
echo "${ACTION} docker images"
|
|
61
|
+
|
|
62
|
+
EXIT_CODE=0
|
|
63
|
+
|
|
47
64
|
for i in ${search}; do
|
|
48
65
|
jdk_image=$(basename `dirname "$i"`)
|
|
49
66
|
jdk_version=$(echo "$jdk_image" | cut -d'-' -f1)
|
|
@@ -63,11 +80,18 @@ for i in ${search}; do
|
|
|
63
80
|
|
|
64
81
|
if [ "${ACTION}" == "build" ] ; then
|
|
65
82
|
docker build --tag "${name}" -< $i >> output.log 2>&1
|
|
66
|
-
|
|
83
|
+
result=$?
|
|
84
|
+
report $result "${name}"
|
|
67
85
|
elif [ "${ACTION}" == "push" ] ; then
|
|
68
86
|
docker push "${name}" >> output.log 2>&1
|
|
69
|
-
|
|
87
|
+
result=$?
|
|
88
|
+
report $result "${name}"
|
|
70
89
|
else
|
|
71
90
|
./test.sh "${name}" $jdk_version
|
|
91
|
+
result=$?
|
|
72
92
|
fi
|
|
73
|
-
|
|
93
|
+
|
|
94
|
+
EXIT_CODE=$(max $EXIT_CODE $result)
|
|
95
|
+
done
|
|
96
|
+
|
|
97
|
+
exit "${EXIT_CODE}"
|
data/.ci/docker/jruby/test.sh
CHANGED
|
@@ -6,8 +6,23 @@ printf '\tTest %-30s %s\n' ${image}
|
|
|
6
6
|
|
|
7
7
|
if [ -n "$version" ] ; then
|
|
8
8
|
test_name="Test java -version '$version'"
|
|
9
|
-
docker run -t --rm $image java -version | grep -q "openjdk version \"$version\|1.$version"
|
|
9
|
+
docker run -t --rm $image java -version | grep -q "openjdk version \"$version\|1.$version"
|
|
10
|
+
TEST_JAVA_VERSION_RESULT=$?
|
|
11
|
+
if [[ $TEST_JAVA_VERSION_RESULT -eq 0 ]]; then
|
|
12
|
+
printf '\t\t%-40s %s\n' "${test_name}" "PASSED"
|
|
13
|
+
else
|
|
14
|
+
printf '\t\t%-40s %s\n' "${test_name}" "FAILED"
|
|
15
|
+
fi
|
|
10
16
|
fi
|
|
11
17
|
|
|
12
18
|
test_name="Test Hello World"
|
|
13
|
-
|
|
19
|
+
# random operation to verify that ruby evaluates the passed string correctly
|
|
20
|
+
docker run -t --rm $image jruby -e "foo = 3 * 4; puts foo" | grep -q '12'
|
|
21
|
+
TEST_HELLO_WORLD_RESULT=$?
|
|
22
|
+
if [[ $TEST_HELLO_WORLD_RESULT -eq 0 ]]; then
|
|
23
|
+
printf '\t\t%-40s %s\n' "${test_name}" "PASSED"
|
|
24
|
+
else
|
|
25
|
+
printf '\t\t%-40s %s\n' "${test_name}" "FAILED"
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
! (( $TEST_JAVA_VERSION_RESULT || $TEST_HELLO_WORLD_RESULT ))
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Bash strict mode
|
|
4
|
+
set -eo pipefail
|
|
5
|
+
|
|
6
|
+
# Found current script directory
|
|
7
|
+
RELATIVE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
8
|
+
|
|
9
|
+
# Found project directory
|
|
10
|
+
BASE_PROJECT="$(dirname "$(dirname "${RELATIVE_DIR}")")"
|
|
11
|
+
|
|
12
|
+
## Buildkite specific configuration
|
|
13
|
+
if [ "$CI" == "true" ] ; then
|
|
14
|
+
# If HOME is not set then use the Buildkite workspace
|
|
15
|
+
# that's normally happening when running in the CI
|
|
16
|
+
# owned by Elastic.
|
|
17
|
+
if [ -z "$HOME" ] ; then
|
|
18
|
+
HOME=$BUILDKITE_BUILD_CHECKOUT_PATH
|
|
19
|
+
export HOME
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# required when running the benchmark
|
|
23
|
+
PATH=$PATH:$HOME/.local/bin
|
|
24
|
+
export PATH
|
|
25
|
+
|
|
26
|
+
echo 'Docker login is done in the Buildkite hooks'
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# It does not fail so it runs for every single version and then we report the error at the end.
|
|
30
|
+
set +e
|
|
31
|
+
status=0
|
|
32
|
+
|
|
33
|
+
for VERSION in "ruby:3.1" "ruby:3.0" "ruby:2.7" "ruby:2.6" "jruby:9.2" ; do
|
|
34
|
+
## Transform the versions like:
|
|
35
|
+
## jruby:9.1 to jruby-9.1
|
|
36
|
+
echo "--- Benchmark for :ruby: ${VERSION}"
|
|
37
|
+
OUTPUT_NAME=benchmark-$(echo "${VERSION//:/-}")
|
|
38
|
+
|
|
39
|
+
# TBC, maybe a timeout could help so it can run the other versions?
|
|
40
|
+
${BASE_PROJECT}/spec/scripts/benchmarks.sh "${VERSION}" "${OUTPUT_NAME}"
|
|
41
|
+
|
|
42
|
+
# Gather error if any
|
|
43
|
+
if [ $? -gt 0 ] ; then
|
|
44
|
+
status=1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# Then we ship the data using the helper
|
|
48
|
+
sendBenchmark "${ES_USER_SECRET}" "${ES_PASS_SECRET}" "${ES_URL_SECRET}" "${BASE_PROJECT}/spec/${OUTPUT_NAME}.bulk"
|
|
49
|
+
done
|
|
50
|
+
|
|
51
|
+
# Report status
|
|
52
|
+
exit $status
|
data/.ci/snapshoty.yml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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}/{github_branch_name}/elastic-apm-ruby-{app_version}-{github_sha_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
|
+
- name: 'github_actions'
|