elastic-apm 4.6.0 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|