Skip to content

Commit bb2ad1c

Browse files
committed
Merge remote-tracking branch 'origin/main' into refactor/span-sampling
2 parents 1f572f9 + 2694fc9 commit bb2ad1c

File tree

275 files changed

+6949
-3447
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

275 files changed

+6949
-3447
lines changed

.github/workflows/all-green.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: All Green
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- main
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
all-green:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
checks: read
17+
contents: read
18+
steps:
19+
- uses: wechuli/allcheckspassed@e22f45a4f25f4cf821d1273705ac233355400db1
20+
with:
21+
delay: 10 # wait for this delay before starting
22+
polling_interval: 1 # after a failure, how long do it wait before checking again
23+
retries: 60 # how many retries before stopping
24+
checks_exclude: 'Bootstrap import analysis,require-checklist,Validate changelog'
25+
26+
# Why some checks are excluded?
27+
#
28+
# - Bootstrap import analysis: TO BE ADDED (Success rate of 88% as of 2025-04-17)
29+
# - require-checklist: this job is triggered by a change on PR description, and already explcititly required
30+
# - Validate changelog: this job is triggered by a change on labels, and already explcititly required

.github/workflows/build_python_3.yml

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
MATRIX_INCLUDE=$(
3434
{
3535
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,i686 | jq -cR '{only: ., os: "ubuntu-latest"}' \
36-
&& cibuildwheel --print-build-identifiers --platform linux --arch aarch64 | jq -cR '{only: ., os: "arm-4core-linux"}' \
36+
&& cibuildwheel --print-build-identifiers --platform linux --arch aarch64 | jq -cR '{only: ., os: "arm-4core-linux-ubuntu24.04"}' \
3737
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64,x86 | grep -v 313 | jq -cR '{only: ., os: "windows-latest"}' \
3838
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64 | jq -cR '{only: ., os: "macos-13"}' \
3939
&& cibuildwheel --print-build-identifiers --platform macos --arch arm64 | jq -cR '{only: ., os: "macos-latest"}'
@@ -59,33 +59,20 @@ jobs:
5959
fetch-depth: 0
6060

6161
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
62-
if: matrix.os != 'arm-4core-linux'
62+
if: matrix.os != 'arm-4core-linux-ubuntu24.04'
6363
name: Install Python
6464
with:
6565
python-version: '3.8'
6666

67-
- name: Install docker and pipx
68-
if: matrix.os == 'arm-4core-linux'
69-
# The ARM64 Ubuntu has less things installed by default
70-
# We need docker, pip and venv for cibuildwheel
71-
# acl allows us to use docker in the same session
72-
run: |
73-
curl -fsSL https://get.docker.com -o get-docker.sh
74-
sudo sh get-docker.sh
75-
sudo usermod -a -G docker $USER
76-
sudo apt install -y acl python3.10-venv python3-pip
77-
sudo setfacl --modify user:runner:rw /var/run/docker.sock
78-
python3 -m pip install pipx
79-
8067
- name: Set up QEMU
81-
if: runner.os == 'Linux' && matrix.os != 'arm-4core-linux'
68+
if: runner.os == 'Linux' && matrix.os != 'arm-4core-linux-ubuntu24.04'
8269
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
8370
with:
8471
platforms: all
8572

8673
- name: Build wheels arm64
87-
if: always() && matrix.os == 'arm-4core-linux'
88-
run: /home/runner/.local/bin/pipx run cibuildwheel==2.22.0 --only ${{ matrix.only }}
74+
if: always() && matrix.os == 'arm-4core-linux-ubuntu24.04'
75+
run: pipx run cibuildwheel==2.22.0 --only ${{ matrix.only }}
8976
env:
9077
CIBW_SKIP: ${{ inputs.cibw_skip }}
9178
CIBW_PRERELEASE_PYTHONS: ${{ inputs.cibw_prerelease_pythons }}
@@ -119,7 +106,7 @@ jobs:
119106
# CIBW_BUILD_VERBOSITY_MACOS: 3
120107

121108
- name: Build wheels
122-
if: always() && matrix.os != 'arm-4core-linux'
109+
if: always() && matrix.os != 'arm-4core-linux-ubuntu24.04'
123110
uses: pypa/cibuildwheel@d04cacbc9866d432033b1d09142936e6a0e2121a # v2.23.2
124111
with:
125112
only: ${{ matrix.only }}

.github/workflows/stale.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: 'Close stale issues and PRs'
22
on:
3+
workflow_dispatch:
34
schedule:
45
# 00:00:000 UTC
56
- cron: '0 0 * * *'
@@ -17,7 +18,10 @@ jobs:
1718
# DEV: GitHub Actions have an API rate limit of 1000 operations per hour per repository
1819
# This limit is shared across all actions
1920
operations-per-run: 200
20-
days-before-pr-close: 30
21+
# DEV: Mark PR as stale after 30 days
22+
days-before-pr-stale: 30
23+
# DEV: Close stale PR after 1 day of no activity
24+
days-before-pr-close: 1
2125
days-before-issue-close: 90
2226
exempt-issue-labels: 'proposal'
2327
exempt-pr-labels: 'proposal'

.gitlab-ci.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ stages:
88
variables:
99
REPO_LANG: python # "python" is used everywhere rather than "py"
1010
REPO_NOTIFICATION_CHANNEL: "#apm-python-release"
11+
RELEASE_ALLOW_TEST_FAILURES: false
12+
RELEASE_ALLOW_BENCHMARK_FAILURES: false
1113
# CI_DEBUG_SERVICES: "true"
1214

1315
default:
@@ -49,6 +51,11 @@ tests-gen:
4951
run-tests-trigger:
5052
stage: tests
5153
needs: [ tests-gen ]
54+
# Allow the child job to fail if explicitly asked
55+
rules:
56+
- if: $RELEASE_ALLOW_TEST_FAILURES == "true"
57+
allow_failure: true
58+
- allow_failure: false
5259
trigger:
5360
include:
5461
- artifact: .gitlab/tests-gen.yml
@@ -58,6 +65,10 @@ run-tests-trigger:
5865
microbenchmarks:
5966
stage: benchmarks
6067
needs: [ "download_ddtrace_artifacts" ]
68+
rules:
69+
- if: $RELEASE_ALLOW_BENCHMARK_FAILURES == "true"
70+
allow_failure: true
71+
- allow_failure: false
6172
trigger:
6273
include: .gitlab/benchmarks/microbenchmarks.yml
6374
strategy: depend
@@ -158,7 +169,7 @@ publish-lib-init-pinned-tags:
158169
configure_system_tests:
159170
variables:
160171
SYSTEM_TESTS_SCENARIOS_GROUPS: "simple_onboarding,simple_onboarding_profiling,docker-ssi,lib-injection"
161-
172+
162173
deploy_to_reliability_env:
163174
needs: []
164175

.gitlab/benchmarks/microbenchmarks.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ variables:
1616
tags: ["runner:apm-k8s-tweaked-metal"]
1717
image: $MICROBENCHMARKS_CI_IMAGE
1818
interruptible: true
19-
timeout: 1h
19+
timeout: 30m
2020
dependencies: [ "baseline:build", "candidate" ]
2121
script: |
2222
export REPORTS_DIR="$(pwd)/reports/" && (mkdir "${REPORTS_DIR}" || :)
@@ -149,7 +149,8 @@ microbenchmarks:
149149
- "appsec_iast_aspects_ospath"
150150
- "appsec_iast_aspects_re_module"
151151
- "appsec_iast_aspects_split"
152-
- "appsec_iast_django_startup"
152+
# Flaky timeouts on starting up
153+
# - "appsec_iast_django_startup"
153154
- "appsec_iast_propagation"
154155
# Flaky. Timeout errors
155156
# - "encoder"
@@ -162,6 +163,15 @@ microbenchmarks:
162163
- "startup"
163164
- "ddtrace_run"
164165

166+
"microbenchmarks flaky":
167+
extends: .benchmarks
168+
allow_failure: true
169+
parallel:
170+
matrix:
171+
- SCENARIO:
172+
# Flaky timeouts on starting up
173+
- "appsec_iast_django_startup"
174+
165175
benchmarks-pr-comment:
166176
image: $MICROBENCHMARKS_CI_IMAGE
167177
tags: ["arch:amd64"]

.gitlab/benchmarks/serverless.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ benchmark-serverless:
77
project: DataDog/serverless-tools
88
strategy: depend
99
needs: []
10-
# TODO: Revert this once the build issue has been resolved
11-
allow_failure: true
10+
rules:
11+
- if: $RELEASE_ALLOW_BENCHMARK_FAILURES == "true"
12+
allow_failure: true
13+
- allow_failure: false
1214
variables:
1315
UPSTREAM_PIPELINE_ID: $CI_PIPELINE_ID
1416
UPSTREAM_PROJECT_URL: $CI_PROJECT_URL

.gitlab/tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
stages:
2-
- precheck
2+
- setup
33
- riot
44
- hatch
55

@@ -17,7 +17,7 @@ include:
1717
extends: .testrunner
1818
stage: hatch
1919
# Hatch doesn't use pre-built wheels or venvs so we can start them right away
20-
needs: []
20+
needs: [ prechecks ]
2121
parallel: 4
2222
# DEV: This is the max retries that GitLab currently allows for
2323
before_script:
@@ -58,7 +58,7 @@ include:
5858
.test_base_riot:
5959
extends: .testrunner
6060
stage: riot
61-
needs: [ build_base_venvs ]
61+
needs: [ build_base_venvs, prechecks ]
6262
parallel: 4
6363
services:
6464
- !reference [.services, ddagent]

.riot/requirements/d449a90.txt renamed to .riot/requirements/10ba61c.txt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,30 @@
22
# This file is autogenerated by pip-compile with Python 3.13
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/d449a90.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/10ba61c.in
66
#
7-
attrs==25.1.0
8-
coverage[toml]==7.6.12
7+
attrs==25.3.0
8+
coverage[toml]==7.8.0
99
gunicorn==23.0.0
1010
hypothesis==6.45.0
11-
iniconfig==2.0.0
12-
lz4==4.4.3
11+
iniconfig==2.1.0
12+
jsonschema==4.23.0
13+
jsonschema-specifications==2024.10.1
14+
lz4==4.4.4
1315
mock==5.2.0
1416
opentracing==2.4.0
1517
packaging==24.2
1618
pluggy==1.5.0
17-
protobuf==6.30.0
19+
protobuf==6.30.2
1820
py-cpuinfo==8.0.0
1921
pytest==8.3.5
2022
pytest-asyncio==0.21.1
2123
pytest-benchmark==5.1.0
22-
pytest-cov==6.0.0
24+
pytest-cov==6.1.1
2325
pytest-cpp==2.6.0
2426
pytest-mock==3.14.0
2527
pytest-randomly==3.16.0
28+
referencing==0.36.2
29+
rpds-py==0.24.0
2630
sortedcontainers==2.4.0
27-
uwsgi==2.0.28
31+
uwsgi==2.0.29

.riot/requirements/cb9a5da.txt renamed to .riot/requirements/137ea60.txt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22
# This file is autogenerated by pip-compile with Python 3.13
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/cb9a5da.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/137ea60.in
66
#
7-
attrs==25.1.0
8-
coverage[toml]==7.6.12
7+
attrs==25.3.0
8+
coverage[toml]==7.8.0
99
gunicorn==23.0.0
1010
hypothesis==6.45.0
11-
iniconfig==2.0.0
12-
lz4==4.4.3
11+
iniconfig==2.1.0
12+
jsonschema==4.23.0
13+
jsonschema-specifications==2024.10.1
14+
lz4==4.4.4
1315
mock==5.2.0
1416
opentracing==2.4.0
1517
packaging==24.2
@@ -19,9 +21,11 @@ py-cpuinfo==8.0.0
1921
pytest==8.3.5
2022
pytest-asyncio==0.21.1
2123
pytest-benchmark==5.1.0
22-
pytest-cov==6.0.0
24+
pytest-cov==6.1.1
2325
pytest-cpp==2.6.0
2426
pytest-mock==3.14.0
2527
pytest-randomly==3.16.0
28+
referencing==0.36.2
29+
rpds-py==0.24.0
2630
sortedcontainers==2.4.0
27-
uwsgi==2.0.28
31+
uwsgi==2.0.29

.riot/requirements/b83f7ca.txt renamed to .riot/requirements/1387420.txt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,41 @@
22
# This file is autogenerated by pip-compile with Python 3.9
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/b83f7ca.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1387420.in
66
#
7-
attrs==24.3.0
8-
coverage[toml]==7.6.10
7+
attrs==25.3.0
8+
coverage[toml]==7.8.0
99
exceptiongroup==1.2.2
1010
gevent==24.11.1
1111
greenlet==3.1.1
1212
gunicorn[gevent]==23.0.0
1313
hypothesis==6.45.0
14-
importlib-metadata==8.5.0
15-
iniconfig==2.0.0
16-
lz4==4.3.3
17-
mock==5.1.0
14+
importlib-metadata==8.6.1
15+
iniconfig==2.1.0
16+
jsonschema==4.23.0
17+
jsonschema-specifications==2024.10.1
18+
lz4==4.4.4
19+
mock==5.2.0
1820
opentracing==2.4.0
1921
packaging==24.2
2022
pluggy==1.5.0
2123
py-cpuinfo==8.0.0
22-
pytest==8.3.4
24+
pytest==8.3.5
2325
pytest-asyncio==0.21.1
2426
pytest-benchmark==5.1.0
25-
pytest-cov==6.0.0
27+
pytest-cov==6.1.1
2628
pytest-cpp==2.6.0
2729
pytest-mock==3.14.0
2830
pytest-randomly==3.16.0
31+
referencing==0.36.2
32+
rpds-py==0.24.0
2933
sortedcontainers==2.4.0
3034
tomli==2.2.1
31-
uwsgi==2.0.28
35+
typing-extensions==4.13.2
36+
uwsgi==2.0.29
3237
zipp==3.21.0
3338
zope-event==5.0
3439
zope-interface==7.2
3540

3641
# The following packages are considered to be unsafe in a requirements file:
37-
setuptools==75.7.0
42+
setuptools==78.1.0

0 commit comments

Comments
 (0)