elastic-apm 4.6.2 → 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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.exclude.yml +193 -0
  3. data/.ci/.ruby.yml +10 -0
  4. data/.ci/scripts/bench.sh +52 -0
  5. data/.ci/scripts/install-build-system.sh +5 -0
  6. data/.ci/snapshoty.yml +2 -3
  7. data/.ci/updatecli.d/update-gherkin-specs.yml +117 -0
  8. data/.ci/updatecli.d/update-json-specs.yml +121 -0
  9. data/.github/workflows/ci-docs.yml +20 -0
  10. data/.github/workflows/ci.yml +70 -0
  11. data/.github/workflows/coverage-reporter.yml +34 -0
  12. data/.github/workflows/microbenchmark.yml +48 -0
  13. data/.github/workflows/opentelemetry.yml +27 -0
  14. data/.github/workflows/release.yml +71 -0
  15. data/.github/workflows/run-matrix.yml +56 -0
  16. data/.github/workflows/snapshoty.yml +35 -0
  17. data/.github/workflows/test-reporter.yml +24 -0
  18. data/.github/workflows/{update-specs.yml → updatecli.yml} +2 -4
  19. data/.pre-commit-config.yaml +0 -2
  20. data/CHANGELOG.asciidoc +12 -0
  21. data/Gemfile +4 -0
  22. data/README.md +1 -1
  23. data/bench/rubyprof.rb +1 -0
  24. data/bin/run-tests +10 -1
  25. data/docker-compose.yml +4 -1
  26. data/docs/configuration.asciidoc +6 -5
  27. data/docs/index.asciidoc +2 -2
  28. data/docs/{log-correlation.asciidoc → logs.asciidoc} +29 -2
  29. data/docs/opentracing.asciidoc +1 -1
  30. data/docs/redirects.asciidoc +9 -0
  31. data/lib/elastic_apm/context_builder.rb +3 -3
  32. data/lib/elastic_apm/metrics.rb +24 -20
  33. data/lib/elastic_apm/span_helpers.rb +6 -6
  34. data/lib/elastic_apm/spies/faraday.rb +1 -1
  35. data/lib/elastic_apm/version.rb +1 -1
  36. metadata +24 -19
  37. data/.ci/.jenkins_exclude.yml +0 -191
  38. data/.ci/.jenkins_ruby.yml +0 -10
  39. data/.ci/.jenkins_ruby_benchmarks.yml +0 -6
  40. data/.ci/Jenkinsfile +0 -450
  41. data/.ci/jobs/apm-agent-ruby-downstream.yml +0 -38
  42. data/.ci/jobs/apm-agent-ruby-linting-mbp.yml +0 -39
  43. data/.ci/jobs/apm-agent-ruby-mbp.yml +0 -43
  44. data/.ci/jobs/apm-agent-ruby.yml +0 -4
  45. data/.ci/jobs/defaults.yml +0 -24
  46. data/.ci/linting.groovy +0 -32
  47. data/.ci/packer_cache.sh +0 -16
  48. /data/.ci/{.jenkins_codecov.yml → .codecov.yml} +0 -0
  49. /data/.ci/{.jenkins_framework.yml → .framework.yml} +0 -0
  50. /data/.ci/{.jenkins_main_framework.yml → .main_framework.yml} +0 -0
  51. /data/.ci/{update-specs.yml → updatecli.d/update-specs.yml} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7c28585ab44cfdb7a4eb8c32b8dd60e1ecb10c091357c25a6b13f35a0fe2ffc
4
- data.tar.gz: 3aad55a03f8c2a4d824ea09731be304e7712ee306dc4e585c5cc29ba11e25413
3
+ metadata.gz: 0cd4366b1660aa74bcabd2f70126ab00d849d6bf326c884ab47d9877564430db
4
+ data.tar.gz: a9c5faf9bc50e3922ac2eb816e85b71c32a946c263c284b5c69675330b262047
5
5
  SHA512:
6
- metadata.gz: eb6480a61567bd000e5325e12702c46882a42a9c452a60bd7af997b7138b076cd332d853f101b694af30d120bdd3b48f1b911feb6ecf12e94cdfc58ba096855c
7
- data.tar.gz: e626d4a1cb9370780d764385585fb4c4025d612a84b7ef36ae0525f6d6f6a83ddf7d5aa670ccf2610bf10f9e2c2d9a87f2f97818cc9e8de27153c3a85cd34875
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
@@ -0,0 +1,10 @@
1
+ VERSION:
2
+ - ruby:3.1
3
+ - ruby:3.0
4
+ - ruby:2.7
5
+ - ruby:2.6
6
+ - ruby:2.4
7
+ - jruby:9.2
8
+ - elasticobservability/jruby:9.2-13-jdk
9
+ - elasticobservability/jruby:9.2-11-jdk
10
+ - elasticobservability/jruby:9.2-8-jdk
@@ -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
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -euxo pipefail
4
+
5
+ gem install rake yard rspec
data/.ci/snapshoty.yml CHANGED
@@ -23,12 +23,11 @@ artifacts:
23
23
  # Files pattern to match
24
24
  files_pattern: 'elastic-apm-(?P<app_version>\d+\.\d+\.\d+)\.gem'
25
25
  # File layout on GCS bucket
26
- output_pattern: '{project}/{jenkins_branch_name}/elastic-apm-ruby-{app_version}-{jenkins_git_commit_short}.gem'
26
+ output_pattern: '{project}/{github_branch_name}/elastic-apm-ruby-{app_version}-{github_sha_short}.gem'
27
27
  # List of metadata processors to use.
28
28
  metadata:
29
29
  # Define static custom metadata
30
30
  - name: 'custom'
31
31
  data:
32
32
  project: 'apm-agent-ruby'
33
- # Add jenkins metadata
34
- - name: 'jenkins'
33
+ - name: 'github_actions'
@@ -0,0 +1,117 @@
1
+ name: update-gherkin-specs
2
+ pipelineid: update-gherkin-specs
3
+ title: synchronize gherkin 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/commit/main.patch'
22
+ matchpattern: "^From\\s([0-9a-f]{40})\\s"
23
+ transformers:
24
+ - findsubmatch:
25
+ pattern: "[0-9a-f]{40}"
26
+
27
+ api_key.feature:
28
+ kind: file
29
+ spec:
30
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/api_key.feature
31
+ azure_app_service_metadata.feature:
32
+ kind: file
33
+ spec:
34
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/azure_app_service_metadata.feature
35
+ azure_functions_metadata.feature:
36
+ kind: file
37
+ spec:
38
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/azure_functions_metadata.feature
39
+ otel_bridge.feature:
40
+ kind: file
41
+ spec:
42
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/otel_bridge.feature
43
+ outcome.feature:
44
+ kind: file
45
+ spec:
46
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/outcome.feature
47
+ user_agent.feature:
48
+ kind: file
49
+ spec:
50
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/gherkin-specs/user_agent.feature
51
+
52
+ actions:
53
+ pr:
54
+ kind: "github/pullrequest"
55
+ scmid: default
56
+ title: '[Automation] Update Gherkin specs'
57
+ spec:
58
+ automerge: false
59
+ draft: false
60
+ labels:
61
+ - "automation"
62
+ description: |-
63
+ ### What
64
+ APM agent Gherkin specs automatic sync
65
+ ### Why
66
+ *Changeset*
67
+ * https://github.com/elastic/apm/commit/{{ source "sha" }}
68
+
69
+ targets:
70
+ api_key.feature:
71
+ name: api_key.feature
72
+ scmid: default
73
+ sourceid: api_key.feature
74
+ kind: file
75
+ spec:
76
+ file: features/api_key.feature
77
+ forcecreate: true
78
+ azure_app_service_metadata.feature:
79
+ name: azure_app_service_metadata.feature
80
+ scmid: default
81
+ sourceid: azure_app_service_metadata.feature
82
+ kind: file
83
+ spec:
84
+ file: features/azure_app_service_metadata.feature
85
+ forcecreate: true
86
+ azure_functions_metadata.feature:
87
+ name: azure_functions_metadata.feature
88
+ scmid: default
89
+ sourceid: azure_functions_metadata.feature
90
+ kind: file
91
+ spec:
92
+ file: features/azure_functions_metadata.feature
93
+ forcecreate: true
94
+ otel_bridge.feature:
95
+ name: otel_bridge.feature
96
+ scmid: default
97
+ sourceid: otel_bridge.feature
98
+ kind: file
99
+ spec:
100
+ file: features/otel_bridge.feature
101
+ forcecreate: true
102
+ outcome.feature:
103
+ name: outcome.feature
104
+ scmid: default
105
+ sourceid: outcome.feature
106
+ kind: file
107
+ spec:
108
+ file: features/outcome.feature
109
+ forcecreate: true
110
+ user_agent.feature:
111
+ name: user_agent.feature
112
+ scmid: default
113
+ sourceid: user_agent.feature
114
+ kind: file
115
+ spec:
116
+ file: features/user_agent.feature
117
+ forcecreate: true
@@ -0,0 +1,121 @@
1
+ name: update-json-specs
2
+ pipelineid: update-json-specs
3
+ title: synchronize json 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/commit/main.patch'
22
+ matchpattern: "^From\\s([0-9a-f]{40})\\s"
23
+ transformers:
24
+ - findsubmatch:
25
+ pattern: "[0-9a-f]{40}"
26
+
27
+ container_metadata_discovery.json:
28
+ kind: file
29
+ spec:
30
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/container_metadata_discovery.json
31
+ service_resource_inference.json:
32
+ kind: file
33
+ spec:
34
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/service_resource_inference.json
35
+ span_types.json:
36
+ kind: file
37
+ spec:
38
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/span_types.json
39
+ sql_signature_examples.json:
40
+ kind: file
41
+ spec:
42
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/sql_signature_examples.json
43
+ sql_token_examples.json:
44
+ kind: file
45
+ spec:
46
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/sql_token_examples.json
47
+ w3c_distributed_tracing.json:
48
+ kind: file
49
+ spec:
50
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/w3c_distributed_tracing.json
51
+ wildcard_matcher_tests.json:
52
+ kind: file
53
+ spec:
54
+ file: https://raw.githubusercontent.com/elastic/apm/main/tests/agents/json-specs/wildcard_matcher_tests.json
55
+ actions:
56
+ pr:
57
+ kind: "github/pullrequest"
58
+ scmid: default
59
+ title: '[Automation] Update JSON specs'
60
+ spec:
61
+ automerge: false
62
+ draft: false
63
+ labels:
64
+ - "automation"
65
+ description: |-
66
+ ### What
67
+ APM agent specs automatic sync
68
+ ### Why
69
+ *Changeset*
70
+ * https://github.com/elastic/apm/commit/{{ source "sha" }}
71
+
72
+ targets:
73
+ container_metadata_discovery.json:
74
+ name: container_metadata_discovery.json
75
+ scmid: default
76
+ sourceid: container_metadata_discovery.json
77
+ kind: file
78
+ spec:
79
+ file: spec/fixtures/container_metadata_discovery.json
80
+ service_resource_inference.json:
81
+ name: service_resource_inference.json
82
+ scmid: default
83
+ sourceid: service_resource_inference.json
84
+ kind: file
85
+ spec:
86
+ file: spec/fixtures/service_resource_inference.json
87
+ span_types.json:
88
+ name: span_types.json
89
+ scmid: default
90
+ sourceid: span_types.json
91
+ kind: file
92
+ spec:
93
+ file: spec/fixtures/span_types.json
94
+ sql_signature_examples.json:
95
+ name: sql_signature_examples.json
96
+ scmid: default
97
+ sourceid: sql_signature_examples.json
98
+ kind: file
99
+ spec:
100
+ file: spec/fixtures/sql_signature_examples.json
101
+ sql_token_examples.json:
102
+ name: sql_token_examples.json
103
+ scmid: default
104
+ sourceid: sql_token_examples.json
105
+ kind: file
106
+ spec:
107
+ file: spec/fixtures/sql_token_examples.json
108
+ w3c_distributed_tracing.json:
109
+ name: w3c_distributed_tracing.json
110
+ scmid: default
111
+ sourceid: w3c_distributed_tracing.json
112
+ kind: file
113
+ spec:
114
+ file: spec/fixtures/w3c_distributed_tracing.json
115
+ wildcard_matcher_tests.json:
116
+ name: wildcard_matcher_tests.json
117
+ scmid: default
118
+ sourceid: wildcard_matcher_tests.json
119
+ kind: file
120
+ spec:
121
+ file: spec/fixtures/wildcard_matcher_tests.json
@@ -0,0 +1,20 @@
1
+ ---
2
+ # This workflow sets the test / all status check to success in case it's a docs only PR and ci.yml is not triggered
3
+ # https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
4
+ name: ci # The name must be the same as in ci.yml
5
+
6
+ on:
7
+ pull_request:
8
+ paths-ignore: # This expression needs to match the paths ignored on ci.yml.
9
+ - '**'
10
+ - '!**/*.md'
11
+ - '!**/*.asciidoc'
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ all:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - run: 'echo "No build required"'
@@ -0,0 +1,70 @@
1
+ name: ci
2
+
3
+ on:
4
+ pull_request:
5
+ paths-ignore:
6
+ - "**/*.asciidoc"
7
+ - "**/*.md"
8
+ push:
9
+ branches:
10
+ - main
11
+ paths-ignore:
12
+ - "**/*.asciidoc"
13
+ - "**/*.md"
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ sanity-checks:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: elastic/apm-pipeline-library/.github/actions/pre-commit@current
23
+
24
+ # Invokes the actual matrix workflow with the provided files.
25
+ matrix:
26
+ uses: ./.github/workflows/run-matrix.yml
27
+ with:
28
+ versionsFile: .ci/.ruby.yml
29
+ frameworksFile: .ci/.framework.yml
30
+ excludedFile: .ci/.exclude.yml
31
+
32
+ # Invokes the actual matrix workflow with the provided files.
33
+ # In this case it's for the main frameworks.
34
+ matrix-main-frameworks:
35
+ uses: ./.github/workflows/run-matrix.yml
36
+ with:
37
+ versionsFile: .ci/.ruby.yml
38
+ frameworksFile: .ci/.main_framework.yml
39
+ excludedFile: .ci/.exclude.yml
40
+
41
+ package:
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v3
45
+ - uses: ruby/setup-ruby@v1
46
+ with:
47
+ ruby-version: 2.6
48
+ - name: Install build system
49
+ run: .ci/scripts/install-build-system.sh
50
+ - name: Create gem
51
+ run: rake build
52
+ - uses: actions/upload-artifact@v3
53
+ with:
54
+ name: package
55
+ path: ./pkg/**/*
56
+
57
+ all:
58
+ if: always()
59
+ runs-on: ubuntu-latest
60
+ needs:
61
+ - sanity-checks
62
+ - matrix
63
+ - matrix-main-frameworks
64
+ - package
65
+ steps:
66
+ - id: check
67
+ uses: elastic/apm-pipeline-library/.github/actions/check-dependent-jobs@current
68
+ with:
69
+ needs: ${{ toJSON(needs) }}
70
+ - run: ${{ steps.check.outputs.isSuccess }}
@@ -0,0 +1,34 @@
1
+ ---
2
+ ## Workflow to process coverage report
3
+ ## For now the coverage is not reported. This workflow is just here as preparation for
4
+ ## https://github.com/elastic/observability-robots/issues/1546
5
+ name: coverage-reporter
6
+ on:
7
+ workflow_run:
8
+ workflows:
9
+ - test
10
+ types:
11
+ - completed
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ report:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v3
21
+ - name: Download artifacts
22
+ run: >
23
+ gh run download ${{ github.event.workflow_run.id }}
24
+ --name coverage
25
+ --repo "${GITHUB_REPOSITORY}"
26
+ --dir coverage
27
+ env:
28
+ GH_TOKEN: ${{ github.token }}
29
+ - run: ls -l coverage/matrix_results
30
+ # - run: ./spec/scripts/coverage_converge.sh
31
+ # - uses: actions/upload-artifact@v3
32
+ # with:
33
+ # name: coverage-report
34
+ # path: coverage/coverage.xml