Skip to content

Commit ea89f0c

Browse files
committed
nightly metadata updater github action
1 parent 3e1647c commit ea89f0c

File tree

4 files changed

+202
-93
lines changed

4 files changed

+202
-93
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Metadata Update
2+
3+
on:
4+
workflow_dispatch: # allow this to be manually triggered
5+
schedule:
6+
- cron: "00 1 * * *" # daily at 1:00 UTC
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
update:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: write
16+
pull-requests: write
17+
18+
steps:
19+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
20+
21+
- name: Free disk space
22+
run: .github/scripts/gha-free-disk-space.sh
23+
24+
- name: Set up JDK for running Gradle
25+
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
26+
with:
27+
distribution: temurin
28+
java-version-file: .java-version
29+
30+
- name: Set up gradle
31+
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
32+
with:
33+
cache-read-only: true
34+
35+
- name: Check out main branch
36+
run: git fetch origin main && git checkout main && git pull origin main
37+
38+
- name: Collect telemetry
39+
run: ./instrumentation-docs/ci-collect.sh
40+
41+
- name: Run documentation analyzer
42+
run: ./gradlew :instrumentation-docs:runAnalysis
43+
44+
- name: Check for diff
45+
id: diffcheck
46+
run: |
47+
git add docs/instrumentation-list.yaml
48+
if ! git diff --cached --quiet; then
49+
echo "::set-output name=has_diff::true"
50+
else
51+
echo "::set-output name=has_diff::false"
52+
fi
53+
54+
- name: Use CLA approved github bot
55+
if: steps.diffcheck.outputs.has_diff == 'true'
56+
# IMPORTANT do not call the .github/scripts/use-cla-approved-bot.sh
57+
# since that script could have been compromised in the PR branch
58+
run: |
59+
git config user.name otelbot
60+
git config user.email [email protected]
61+
62+
- name: Create PR if changes detected
63+
if: steps.diffcheck.outputs.has_diff == 'true'
64+
env:
65+
GH_TOKEN: ${{ steps.otelbot-token.outputs.token }}
66+
run: |
67+
BRANCH_NAME="metadata-update-automation-$(date +%s)-$RANDOM"
68+
git checkout -b "$BRANCH_NAME"
69+
git add docs/instrumentation-list.yaml
70+
git commit -m "chore: update instrumentation list [automated]"
71+
git push origin "$BRANCH_NAME"
72+
gh pr create \
73+
--title "chore: update metadata files [automated]" \
74+
--body "This PR was created automatically by the metadata update workflow." \
75+
--head "$BRANCH_NAME" \
76+
--base main \
77+
--assignee jaydeluca \
78+
--label "automation" || echo "PR already exists or failed to create."

instrumentation-docs/ci-collect.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env bash
2+
3+
# Runs selected Gradle test tasks to regenerate *.telemetry output for
4+
# individual OpenTelemetry Java agent instrumentations.
5+
6+
set -euo pipefail
7+
8+
source "$(dirname "$0")/instrumentations.sh"
9+
10+
ALL_TASKS=()
11+
for task in "${INSTRUMENTATIONS[@]}"; do
12+
ALL_TASKS+=(":instrumentation:${task}")
13+
done
14+
for task in "${COLIMA_INSTRUMENTATIONS[@]}"; do
15+
ALL_TASKS+=(":instrumentation:${task}")
16+
done
17+
18+
echo "Processing instrumentations..."
19+
./gradlew "${ALL_TASKS[@]}" \
20+
-PcollectMetadata=true \
21+
--rerun-tasks --continue
22+
echo "Telemetry file regeneration complete."

instrumentation-docs/collect.sh

Lines changed: 2 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -2,102 +2,11 @@
22

33
# Runs selected Gradle test tasks to regenerate *.telemetry output for
44
# individual OpenTelemetry Java agent instrumentations. Some instrumentation test suites don't run
5-
# on Apple Silicon, so we use colima to run them in an x86_64 container.
5+
# on ARM, so we use colima to run them in an x86_64 container.
66

77
set -euo pipefail
88

9-
readonly INSTRUMENTATIONS=(
10-
# <module path (colon-separated)> : <javaagent|library> : [ gradle-task-suffix ]
11-
"activej-http-6.0:javaagent:test"
12-
"akka:akka-http-10.0:javaagent:test"
13-
"armeria:armeria-grpc-1.14:javaagent:test"
14-
"apache-httpasyncclient-4.1:javaagent:test"
15-
"alibaba-druid-1.0:javaagent:test"
16-
"alibaba-druid-1.0:javaagent:testStableSemconv"
17-
"apache-dbcp-2.0:javaagent:test"
18-
"apache-dbcp-2.0:javaagent:testStableSemconv"
19-
"apache-httpclient:apache-httpclient-2.0:javaagent:test"
20-
"apache-httpclient:apache-httpclient-4.0:javaagent:test"
21-
"apache-httpclient:apache-httpclient-4.3:library:test"
22-
"apache-httpclient:apache-httpclient-5.0:javaagent:test"
23-
"apache-dubbo-2.7:javaagent:testDubbo"
24-
"c3p0-0.9:javaagent:test"
25-
"c3p0-0.9:javaagent:testStableSemconv"
26-
"clickhouse-client-0.5:javaagent:test"
27-
"clickhouse-client-0.5:javaagent:testStableSemconv"
28-
"aws-sdk:aws-sdk-1.11:javaagent:test"
29-
"google-http-client-1.19:javaagent:test"
30-
"http-url-connection:javaagent:test"
31-
"java-http-client:javaagent:test"
32-
"jetty-httpclient:jetty-httpclient-9.2:javaagent:test"
33-
"jetty-httpclient:jetty-httpclient-12.0:javaagent:test"
34-
"jodd-http-4.2:javaagent:test"
35-
"netty:netty-3.8:javaagent:test"
36-
"netty:netty-4.0:javaagent:test"
37-
"netty:netty-4.1:javaagent:test"
38-
"okhttp:okhttp-2.2:javaagent:test"
39-
"okhttp:okhttp-3.0:javaagent:test"
40-
"pekko:pekko-http-1.0:javaagent:test"
41-
"play:play-ws:play-ws-1.0:javaagent:test"
42-
"play:play-ws:play-ws-2.0:javaagent:test"
43-
"play:play-ws:play-ws-2.1:javaagent:test"
44-
"reactor:reactor-netty:reactor-netty-0.9:javaagent:test"
45-
"reactor:reactor-netty:reactor-netty-1.0:javaagent:test"
46-
"spring:spring-webflux:spring-webflux-5.0:javaagent:test"
47-
"vertx:vertx-http-client:vertx-http-client-3.0:javaagent:test"
48-
"vertx:vertx-http-client:vertx-http-client-4.0:javaagent:test"
49-
"vertx:vertx-http-client:vertx-http-client-5.0:javaagent:test"
50-
"vertx:vertx-redis-client-4.0:javaagent:test"
51-
"vertx:vertx-redis-client-4.0:javaagent:testStableSemconv"
52-
"vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:test"
53-
"vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:testStableSemconv"
54-
"vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:test"
55-
"vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:testStableSemconv"
56-
"aws-sdk:aws-sdk-1.11:javaagent:testStableSemconv"
57-
"aws-sdk:aws-sdk-2.2:javaagent:test"
58-
"aws-sdk:aws-sdk-2.2:javaagent:testStableSemconv"
59-
"aws-sdk:aws-sdk-2.2:javaagent:testBedrockRuntime"
60-
"hikaricp-3.0:javaagent:test"
61-
"hikaricp-3.0:javaagent:testStableSemconv"
62-
"tomcat:tomcat-jdbc:javaagent:test"
63-
"tomcat:tomcat-jdbc:javaagent:testStableSemconv"
64-
"oshi:javaagent:test"
65-
"oshi:javaagent:testExperimental"
66-
"vibur-dbcp-11.0:javaagent:test"
67-
"vibur-dbcp-11.0:javaagent:testStableSemconv"
68-
"elasticsearch:elasticsearch-api-client-7.16:javaagent:test"
69-
"elasticsearch:elasticsearch-api-client-7.16:javaagent:testStableSemconv"
70-
"elasticsearch:elasticsearch-rest-7.0:javaagent:test"
71-
"elasticsearch:elasticsearch-transport-5.0:javaagent:test"
72-
"elasticsearch:elasticsearch-transport-5.0:javaagent:testStableSemconv"
73-
"elasticsearch:elasticsearch-transport-5.0:javaagent:testExperimental"
74-
"elasticsearch:elasticsearch-transport-5.3:javaagent:test"
75-
"elasticsearch:elasticsearch-transport-5.3:javaagent:testStableSemconv"
76-
"elasticsearch:elasticsearch-transport-5.3:javaagent:testExperimental"
77-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6Test"
78-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestStableSemconv"
79-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestExperimental"
80-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65Test"
81-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestStableSemconv"
82-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestExperimental"
83-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7Test"
84-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestStableSemconv"
85-
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestExperimental"
86-
"apache-httpclient:apache-httpclient-5.2:library:test"
87-
"armeria:armeria-1.3:javaagent:test"
88-
"async-http-client:async-http-client-1.9:javaagent:test"
89-
"async-http-client:async-http-client-2.0:javaagent:test"
90-
"apache-dubbo-2.7:javaagent:testDubbo"
91-
"finagle-http-23.11:javaagent:test"
92-
"finatra-2.9:javaagent:test"
93-
)
94-
95-
readonly COLIMA_INSTRUMENTATIONS=(
96-
"elasticsearch:elasticsearch-rest-6.4:javaagent:test"
97-
"elasticsearch:elasticsearch-rest-5.0:javaagent:test"
98-
"oracle-ucp-11.2:javaagent:test"
99-
"oracle-ucp-11.2:javaagent:testStableSemconv"
100-
)
9+
source "$(dirname "$0")/instrumentations.sh"
10110

10211
readonly TELEMETRY_DIR_NAME=".telemetry"
10312

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
# This file is sourced by collect.sh and ci-collect.sh
6+
7+
readonly INSTRUMENTATIONS=(
8+
# <module path (colon-separated)> : <javaagent|library> : [ gradle-task-suffix ]
9+
"activej-http-6.0:javaagent:test"
10+
"akka:akka-http-10.0:javaagent:test"
11+
"armeria:armeria-grpc-1.14:javaagent:test"
12+
"apache-httpasyncclient-4.1:javaagent:test"
13+
"alibaba-druid-1.0:javaagent:test"
14+
"alibaba-druid-1.0:javaagent:testStableSemconv"
15+
"apache-dbcp-2.0:javaagent:test"
16+
"apache-dbcp-2.0:javaagent:testStableSemconv"
17+
"apache-httpclient:apache-httpclient-2.0:javaagent:test"
18+
"apache-httpclient:apache-httpclient-4.0:javaagent:test"
19+
"apache-httpclient:apache-httpclient-4.3:library:test"
20+
"apache-httpclient:apache-httpclient-5.0:javaagent:test"
21+
"apache-dubbo-2.7:javaagent:testDubbo"
22+
"c3p0-0.9:javaagent:test"
23+
"c3p0-0.9:javaagent:testStableSemconv"
24+
"clickhouse-client-0.5:javaagent:test"
25+
"clickhouse-client-0.5:javaagent:testStableSemconv"
26+
"aws-sdk:aws-sdk-1.11:javaagent:test"
27+
"google-http-client-1.19:javaagent:test"
28+
"http-url-connection:javaagent:test"
29+
"java-http-client:javaagent:test"
30+
"jetty-httpclient:jetty-httpclient-9.2:javaagent:test"
31+
"jetty-httpclient:jetty-httpclient-12.0:javaagent:test"
32+
"jodd-http-4.2:javaagent:test"
33+
"netty:netty-3.8:javaagent:test"
34+
"netty:netty-4.0:javaagent:test"
35+
"netty:netty-4.1:javaagent:test"
36+
"okhttp:okhttp-2.2:javaagent:test"
37+
"okhttp:okhttp-3.0:javaagent:test"
38+
"pekko:pekko-http-1.0:javaagent:test"
39+
"play:play-ws:play-ws-1.0:javaagent:test"
40+
"play:play-ws:play-ws-2.0:javaagent:test"
41+
"play:play-ws:play-ws-2.1:javaagent:test"
42+
"reactor:reactor-netty:reactor-netty-0.9:javaagent:test"
43+
"reactor:reactor-netty:reactor-netty-1.0:javaagent:test"
44+
"spring:spring-webflux:spring-webflux-5.0:javaagent:test"
45+
"vertx:vertx-http-client:vertx-http-client-3.0:javaagent:test"
46+
"vertx:vertx-http-client:vertx-http-client-4.0:javaagent:test"
47+
"vertx:vertx-http-client:vertx-http-client-5.0:javaagent:test"
48+
"vertx:vertx-redis-client-4.0:javaagent:test"
49+
"vertx:vertx-redis-client-4.0:javaagent:testStableSemconv"
50+
"vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:test"
51+
"vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:testStableSemconv"
52+
"vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:test"
53+
"vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:testStableSemconv"
54+
"aws-sdk:aws-sdk-1.11:javaagent:testStableSemconv"
55+
"aws-sdk:aws-sdk-2.2:javaagent:test"
56+
"aws-sdk:aws-sdk-2.2:javaagent:testStableSemconv"
57+
"aws-sdk:aws-sdk-2.2:javaagent:testBedrockRuntime"
58+
"hikaricp-3.0:javaagent:test"
59+
"hikaricp-3.0:javaagent:testStableSemconv"
60+
"tomcat:tomcat-jdbc:javaagent:test"
61+
"tomcat:tomcat-jdbc:javaagent:testStableSemconv"
62+
"oshi:javaagent:test"
63+
"oshi:javaagent:testExperimental"
64+
"vibur-dbcp-11.0:javaagent:test"
65+
"vibur-dbcp-11.0:javaagent:testStableSemconv"
66+
"elasticsearch:elasticsearch-api-client-7.16:javaagent:test"
67+
"elasticsearch:elasticsearch-api-client-7.16:javaagent:testStableSemconv"
68+
"elasticsearch:elasticsearch-rest-7.0:javaagent:test"
69+
"elasticsearch:elasticsearch-transport-5.0:javaagent:test"
70+
"elasticsearch:elasticsearch-transport-5.0:javaagent:testStableSemconv"
71+
"elasticsearch:elasticsearch-transport-5.0:javaagent:testExperimental"
72+
"elasticsearch:elasticsearch-transport-5.3:javaagent:test"
73+
"elasticsearch:elasticsearch-transport-5.3:javaagent:testStableSemconv"
74+
"elasticsearch:elasticsearch-transport-5.3:javaagent:testExperimental"
75+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6Test"
76+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestStableSemconv"
77+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestExperimental"
78+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65Test"
79+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestStableSemconv"
80+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestExperimental"
81+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7Test"
82+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestStableSemconv"
83+
"elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestExperimental"
84+
"apache-httpclient:apache-httpclient-5.2:library:test"
85+
"armeria:armeria-1.3:javaagent:test"
86+
"async-http-client:async-http-client-1.9:javaagent:test"
87+
"async-http-client:async-http-client-2.0:javaagent:test"
88+
"apache-dubbo-2.7:javaagent:testDubbo"
89+
"finagle-http-23.11:javaagent:test"
90+
"finatra-2.9:javaagent:test"
91+
)
92+
93+
# Some instrumentation test suites don't run ARM, so we use colima to run them in an x86_64
94+
# container.
95+
readonly COLIMA_INSTRUMENTATIONS=(
96+
"elasticsearch:elasticsearch-rest-6.4:javaagent:test"
97+
"elasticsearch:elasticsearch-rest-5.0:javaagent:test"
98+
"oracle-ucp-11.2:javaagent:test"
99+
"oracle-ucp-11.2:javaagent:testStableSemconv"
100+
)

0 commit comments

Comments
 (0)