From 7ad1a34601ba514babdad7327aa0476cda8cbfcb Mon Sep 17 00:00:00 2001 From: Vladislav Polyakov Date: Tue, 15 Jul 2025 13:32:10 +0300 Subject: [PATCH 1/5] ci: switch to 2dc slo action branch Signed-off-by: Vladislav Polyakov --- .github/workflows/slo.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/slo.yml b/.github/workflows/slo.yml index 174e56c51..47fbc82f8 100644 --- a/.github/workflows/slo.yml +++ b/.github/workflows/slo.yml @@ -90,12 +90,11 @@ jobs: chmod +x .bin/${{matrix.sdk.id}}_linux_amd64 - name: Inititialize YDB SLO - uses: ydb-platform/ydb-slo-action/init@main + uses: ydb-platform/ydb-slo-action/init@2dc with: github_pull_request_number: ${{ github.event.inputs.github_pull_request_number }} github_token: ${{ secrets.GITHUB_TOKEN }} - sdk_name: ${{ matrix.sdk.name }} - ydb_database_node_count: 5 + workload_name: ${{ matrix.sdk.name }} - name: Prepare SLO Database run: | From 06021c9fe2969c5e498e74330fba0a1392492290 Mon Sep 17 00:00:00 2001 From: Vladislav Polyakov Date: Tue, 15 Jul 2025 14:13:02 +0300 Subject: [PATCH 2/5] fix: update SLO database connection port from 2135 to 2136 Signed-off-by: Vladislav Polyakov --- .github/workflows/slo.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/slo.yml b/.github/workflows/slo.yml index 47fbc82f8..28c247d19 100644 --- a/.github/workflows/slo.yml +++ b/.github/workflows/slo.yml @@ -98,11 +98,11 @@ jobs: - name: Prepare SLO Database run: | - ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 create grpc://localhost:2135 /Root/testdb + ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 create grpc://localhost:2136 /Root/testdb - name: Run SLO Tests run: | - ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 run grpc://localhost:2135 /Root/testdb \ + ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 run grpc://localhost:2136 /Root/testdb \ -prom-pgw localhost:9091 \ -report-period 250 \ -time ${{inputs.slo_workload_duration_seconds || 600}} \ @@ -126,4 +126,4 @@ jobs: - if: always() name: Cleanup SLO Database run: | - ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 cleanup grpc://localhost:2135 /Root/testdb || true + ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 cleanup grpc://localhost:2136 /Root/testdb || true From d008c9eaf242ce58e7bf4f16054e45ee85f5ca46 Mon Sep 17 00:00:00 2001 From: Vladislav Polyakov Date: Tue, 15 Jul 2025 14:19:35 +0300 Subject: [PATCH 3/5] fix: update chaos testing log storage to include docker compose logs Signed-off-by: Vladislav Polyakov --- .github/workflows/slo.yml | 35 ++++++++++++++++++++++++++++++++++- tests/slo/go.sum | 14 ++++++++++---- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/.github/workflows/slo.yml b/.github/workflows/slo.yml index 28c247d19..1f23dbf82 100644 --- a/.github/workflows/slo.yml +++ b/.github/workflows/slo.yml @@ -96,6 +96,15 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} workload_name: ${{ matrix.sdk.name }} + - name: List containers + run: | + docker ps -a + + - name: List containers after 30 seconds + run: | + sleep 30 + docker ps -a + - name: Prepare SLO Database run: | ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 create grpc://localhost:2136 /Root/testdb @@ -111,6 +120,30 @@ jobs: -read-timeout 1000 \ -write-timeout 1000 || true + - if: always() + name: Store ydb healthcheck + run: | + curl -ik http://localhost:8765/healthcheck > ydb-healthcheck.log + + - if: always() + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.sdk.name}}-ydb-healthcheck.log + path: ./ydb-healthcheck.log + retention-days: 1 + + - if: always() + name: Store ydb logs + run: | + docker compose -f .slo/compose.ydb.yaml logs > ydb.log + + - if: always() + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.sdk.name}}-ydb.log + path: ./ydb.log + retention-days: 1 + - if: always() name: Store ydb chaos testing logs run: | @@ -123,7 +156,7 @@ jobs: path: ./chaos-ydb.log retention-days: 1 - - if: always() + - if: success() name: Cleanup SLO Database run: | ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 cleanup grpc://localhost:2136 /Root/testdb || true diff --git a/tests/slo/go.sum b/tests/slo/go.sum index 32d0dbf51..437318b88 100644 --- a/tests/slo/go.sum +++ b/tests/slo/go.sum @@ -2008,8 +2008,9 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/substrait-io/substrait-go v0.4.2/go.mod h1:qhpnLmrcvAnlZsUyPXZRqldiHapPTXC3t7xFgDi3aQg= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= @@ -2106,11 +2107,12 @@ go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -2150,7 +2152,7 @@ golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2303,6 +2305,7 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -2369,6 +2372,7 @@ golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2492,6 +2496,7 @@ golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= @@ -2520,7 +2525,7 @@ golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2546,6 +2551,7 @@ golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 9e79a8dd054df173a5997ec862569c6fd16b9ccf Mon Sep 17 00:00:00 2001 From: Vladislav Polyakov Date: Tue, 15 Jul 2025 16:19:33 +0300 Subject: [PATCH 4/5] feat: add artifact upload for YDB configuration files in SLO workflow Signed-off-by: Vladislav Polyakov --- .github/workflows/slo.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/slo.yml b/.github/workflows/slo.yml index 1f23dbf82..a42438b29 100644 --- a/.github/workflows/slo.yml +++ b/.github/workflows/slo.yml @@ -156,6 +156,26 @@ jobs: path: ./chaos-ydb.log retention-days: 1 + - if: always() + name: List .slo files + run: | + ls -lR .slo + + - if: always() + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.sdk.name}}-slo-output + path: | + .slo/ydb-config.yml + .slo/compose.ydb.yaml + .slo/Dockerfile + .slo/entrypoint.sh + .slo/prometheus.yml + .slo/compose.prometheus.yaml + .slo/run-chaos.sh + .slo/compose.chaos.yaml + retention-days: 1 + - if: success() name: Cleanup SLO Database run: | From f9bc5397de42dbaad4cd62ca5fa5f8e9eefa1dd3 Mon Sep 17 00:00:00 2001 From: Vladislav Polyakov Date: Wed, 16 Jul 2025 12:55:12 +0300 Subject: [PATCH 5/5] fix: source bashrc before discovering YDB nodes in SLO workflow Signed-off-by: Vladislav Polyakov --- .github/workflows/slo.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/slo.yml b/.github/workflows/slo.yml index a42438b29..c2d218ddf 100644 --- a/.github/workflows/slo.yml +++ b/.github/workflows/slo.yml @@ -89,6 +89,23 @@ jobs: go build -o .bin/${{matrix.sdk.id}}_linux_amd64 -ldflags "-X \"main.ref=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}\" -X \"main.label=${{matrix.sdk.label}}\" -X \"main.jobName=${{matrix.sdk.name}}\"" ${{matrix.sdk.path}} chmod +x .bin/${{matrix.sdk.id}}_linux_amd64 + - name: Update dependencies + run: | + for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done + sudo apt-get update + sudo apt-get install ca-certificates curl + sudo install -m 0755 -d /etc/apt/keyrings + sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + sudo chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + - name: Inititialize YDB SLO uses: ydb-platform/ydb-slo-action/init@2dc with: @@ -105,6 +122,15 @@ jobs: sleep 30 docker ps -a + - name: List ports + run: | + netstat -tuln + + - name: Discovery nodes + run: | + curl -sSL https://install.ydb.tech/cli | bash + ${HOME}/ydb/bin/ydb -e grpc://localhost:2136 -d /Root/testdb discovery list + - name: Prepare SLO Database run: | ./tests/slo/.bin/${{matrix.sdk.id}}_linux_amd64 create grpc://localhost:2136 /Root/testdb