mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
[ci] Simplify monitoring configuration (#1440)
Signed-off-by: maru <[email protected]> Co-authored-by: Darioush Jalali <[email protected]>
This commit is contained in:
committed by
GitHub
co-authored by
Darioush Jalali
parent
5c8e4d7afe
commit
a7cf34ae78
@@ -0,0 +1,10 @@
|
||||
# - Will execute on entry to the containing directory only if authorized with `direnv allow`
|
||||
# - Requires a recent version of direnv (https://direnv.net/)
|
||||
# - For quieter direnv output, set `export DIRENV_LOG_FORMAT=`
|
||||
|
||||
# Determine AVALANCHE_VERSION
|
||||
source ./scripts/versions.sh
|
||||
|
||||
# - Starts an avalanchego dev shell
|
||||
# - Requires nix (https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#install-nix)
|
||||
use flake "github:ava-labs/avalanchego?ref=${AVALANCHE_VERSION}"
|
||||
+17
-18
@@ -38,6 +38,11 @@ jobs:
|
||||
run: |
|
||||
go mod tidy
|
||||
git diff --exit-code
|
||||
- name: Ensure consistent avalanchego version
|
||||
shell: bash
|
||||
run: |
|
||||
bash -x ./scripts/update_avalanchego_version.sh
|
||||
git diff --exit-code
|
||||
|
||||
unit_test:
|
||||
name: Golang Unit Tests (${{ matrix.os }})
|
||||
@@ -146,18 +151,15 @@ jobs:
|
||||
shell: bash
|
||||
run: ./scripts/build.sh
|
||||
- name: Run Warp E2E Tests
|
||||
uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@v1.11.13
|
||||
uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@50f1601bf39a106d066012b4ef470c1058f5005a
|
||||
with:
|
||||
run: AVALANCHEGO_BUILD_PATH=/tmp/e2e-test/avalanchego ./scripts/run_ginkgo_warp.sh
|
||||
prometheus_id: ${{ secrets.PROMETHEUS_ID || '' }}
|
||||
run: ./scripts/run_ginkgo_warp.sh
|
||||
run_env: AVALANCHEGO_BUILD_PATH=/tmp/e2e-test/avalanchego
|
||||
artifact_prefix: warp
|
||||
prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }}
|
||||
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
|
||||
loki_id: ${{ secrets.LOKI_ID || '' }}
|
||||
loki_username: ${{ secrets.LOKI_ID || '' }}
|
||||
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
|
||||
- name: Upload tmpnet network dir for warp testing
|
||||
uses: ava-labs/avalanchego/.github/actions/upload-tmpnet-artifact@v1-actions
|
||||
if: always()
|
||||
with:
|
||||
name: warp-tmpnet-data
|
||||
e2e_load:
|
||||
name: e2e load tests
|
||||
runs-on: ubuntu-latest
|
||||
@@ -177,18 +179,15 @@ jobs:
|
||||
shell: bash
|
||||
run: ./scripts/build.sh
|
||||
- name: Run E2E Load Tests
|
||||
uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@v1.11.13
|
||||
uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@50f1601bf39a106d066012b4ef470c1058f5005a
|
||||
with:
|
||||
run: AVALANCHEGO_BUILD_PATH=/tmp/e2e-test/avalanchego ./scripts/run_ginkgo_load.sh
|
||||
prometheus_id: ${{ secrets.PROMETHEUS_ID || '' }}
|
||||
run: ./scripts/run_ginkgo_load.sh
|
||||
run_env: AVALANCHEGO_BUILD_PATH=/tmp/e2e-test/avalanchego
|
||||
artifact_prefix: load
|
||||
prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }}
|
||||
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
|
||||
loki_id: ${{ secrets.LOKI_ID || '' }}
|
||||
loki_username: ${{ secrets.LOKI_ID || '' }}
|
||||
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
|
||||
- name: Upload tmpnet network dir for load testing
|
||||
uses: ava-labs/avalanchego/.github/actions/upload-tmpnet-artifact@v1-actions
|
||||
if: always()
|
||||
with:
|
||||
name: load-tmpnet-data
|
||||
test_build_image:
|
||||
name: Image build
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -58,3 +58,5 @@ diffs/
|
||||
|
||||
# clone used for antithesis image builds
|
||||
avalanchego/
|
||||
|
||||
.direnv
|
||||
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Ensure the go command is run from the root of the repository
|
||||
REPO_ROOT=$(cd "$( dirname "${BASH_SOURCE[0]}" )"; cd .. && pwd )
|
||||
cd "${REPO_ROOT}"
|
||||
|
||||
# Set AVALANCHE_VERSION
|
||||
. ./scripts/versions.sh
|
||||
|
||||
echo "Running tmpnetctl @ ${AVALANCHE_VERSION}"
|
||||
go run github.com/ava-labs/avalanchego/tests/fixture/tmpnet/tmpnetctl@"${AVALANCHE_VERSION}" "${@}"
|
||||
@@ -5,7 +5,7 @@ go 1.23.6
|
||||
require (
|
||||
github.com/VictoriaMetrics/fastcache v1.12.1
|
||||
github.com/antithesishq/antithesis-sdk-go v0.3.8
|
||||
github.com/ava-labs/avalanchego v1.12.3-rc.1
|
||||
github.com/ava-labs/avalanchego v1.12.3-0.20250321175346-50f1601bf39a
|
||||
github.com/cespare/cp v0.1.0
|
||||
github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233
|
||||
github.com/davecgh/go-spew v1.1.1
|
||||
@@ -42,12 +42,12 @@ require (
|
||||
go.uber.org/goleak v1.3.0
|
||||
go.uber.org/mock v0.5.0
|
||||
go.uber.org/zap v1.26.0
|
||||
golang.org/x/crypto v0.31.0
|
||||
golang.org/x/crypto v0.35.0
|
||||
golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e
|
||||
golang.org/x/mod v0.22.0
|
||||
golang.org/x/sync v0.10.0
|
||||
golang.org/x/sys v0.28.0
|
||||
golang.org/x/text v0.21.0
|
||||
golang.org/x/sync v0.11.0
|
||||
golang.org/x/sys v0.30.0
|
||||
golang.org/x/text v0.22.0
|
||||
golang.org/x/time v0.3.0
|
||||
golang.org/x/tools v0.28.0
|
||||
google.golang.org/protobuf v1.35.2
|
||||
@@ -57,8 +57,8 @@ require (
|
||||
require (
|
||||
github.com/DataDog/zstd v1.5.2 // indirect
|
||||
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
||||
github.com/StephenButtolph/canoto v0.10.0 // indirect
|
||||
github.com/ava-labs/coreth v0.14.1-rc.3 // indirect
|
||||
github.com/StephenButtolph/canoto v0.15.0 // indirect
|
||||
github.com/ava-labs/coreth v0.15.0-rc.0.0.20250321001337-7fa47ba3fa18 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bits-and-blooms/bitset v1.10.0 // indirect
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
|
||||
@@ -103,6 +103,7 @@ require (
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/compress v1.15.15 // indirect
|
||||
@@ -153,9 +154,9 @@ require (
|
||||
go.opentelemetry.io/otel/trace v1.22.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/net v0.33.0 // indirect
|
||||
golang.org/x/net v0.36.0 // indirect
|
||||
golang.org/x/oauth2 v0.21.0 // indirect
|
||||
golang.org/x/term v0.27.0 // indirect
|
||||
golang.org/x/term v0.29.0 // indirect
|
||||
gonum.org/v1/gonum v0.11.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect
|
||||
|
||||
@@ -49,8 +49,8 @@ github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKz
|
||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0=
|
||||
github.com/StephenButtolph/canoto v0.10.0 h1:KdW85TYQXH+gwR8vOxfOUf28TRpkLU+X06Kycg1IR7s=
|
||||
github.com/StephenButtolph/canoto v0.10.0/go.mod h1:MxppdgKRApRBvIg4ZgO2e14m/NSBjFMuydy97OB/gYY=
|
||||
github.com/StephenButtolph/canoto v0.15.0 h1:3iGdyTSQZ7/y09WaJCe0O/HIi53ZyTrnmVzfCqt64mM=
|
||||
github.com/StephenButtolph/canoto v0.15.0/go.mod h1:IcnAHC6nJUfQFVR9y60ko2ecUqqHHSB6UwI9NnBFZnE=
|
||||
github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40=
|
||||
github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o=
|
||||
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
|
||||
@@ -62,10 +62,10 @@ github.com/antithesishq/antithesis-sdk-go v0.3.8/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl
|
||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||
github.com/ava-labs/avalanchego v1.12.3-rc.1 h1:p56A8bzbSCzz1OvXkIuGSyHsCj5MAzRMH6U4VNME/cQ=
|
||||
github.com/ava-labs/avalanchego v1.12.3-rc.1/go.mod h1:odvg1kVIdtPBFE5LRzwdPhGC16TnkOGVO4k8sZlDs6E=
|
||||
github.com/ava-labs/coreth v0.14.1-rc.3 h1:4MXKCgW7kUuKsssRiN9Pl8hWFRKuanD13/v1OtpQJPw=
|
||||
github.com/ava-labs/coreth v0.14.1-rc.3/go.mod h1:gIGr+5WDNX1DrFvUMy53AtTpkxlM/8cNOD/PDIChKfM=
|
||||
github.com/ava-labs/avalanchego v1.12.3-0.20250321175346-50f1601bf39a h1:KSpG4lheMcV3oWrJJQyDyzx+JqSzjJPZEpi7UkSvE8I=
|
||||
github.com/ava-labs/avalanchego v1.12.3-0.20250321175346-50f1601bf39a/go.mod h1:fpV/GmbfIB3P53gkq6zFpyeQtyAsJIuZCCKnm7TJ4sQ=
|
||||
github.com/ava-labs/coreth v0.15.0-rc.0.0.20250321001337-7fa47ba3fa18 h1:OKWMFJZEalp9Kdw0tsKVU6Ky0inxqW/Wt0qCWQIxkZc=
|
||||
github.com/ava-labs/coreth v0.15.0-rc.0.0.20250321001337-7fa47ba3fa18/go.mod h1:2DHfOrbTkZiTyWG5xyZW/4zGV0+hnk92Fsbpfk6AJeg=
|
||||
github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
|
||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
@@ -369,6 +369,8 @@ github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:q
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
||||
github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
|
||||
github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
|
||||
github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI=
|
||||
@@ -677,8 +679,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm
|
||||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
||||
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -763,8 +765,8 @@ golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
|
||||
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
|
||||
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
|
||||
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -788,8 +790,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -857,12 +859,12 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
|
||||
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
|
||||
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
|
||||
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=
|
||||
@@ -873,8 +875,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Requires nix to be installed. The determinate systems installer is recommended:
|
||||
#
|
||||
# https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#install-nix
|
||||
#
|
||||
|
||||
# Load AVALANCHE_VERSION
|
||||
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
# shellcheck source=/scripts/versions.sh
|
||||
source "$SCRIPT_DIR"/versions.sh
|
||||
|
||||
# Start a dev shell with the avalanchego flake
|
||||
FLAKE="github:ava-labs/avalanchego?ref=${AVALANCHE_VERSION}"
|
||||
echo "Starting nix shell for ${FLAKE}"
|
||||
nix develop "${FLAKE}" "${@}"
|
||||
@@ -1,120 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Starts a prometheus instance in agent-mode, forwarding to a central
|
||||
# instance. Intended to enable metrics collection from temporary networks running
|
||||
# locally and in CI.
|
||||
#
|
||||
# The prometheus instance will remain running in the background and will forward
|
||||
# metrics to the central instance for all tmpnet networks.
|
||||
#
|
||||
# To stop it:
|
||||
#
|
||||
# $ kill -9 `cat ~/.tmpnet/prometheus/run.pid` && rm ~/.tmpnet/prometheus/run.pid
|
||||
#
|
||||
|
||||
# e.g.,
|
||||
# PROMETHEUS_ID=<id> PROMETHEUS_PASSWORD=<password> ./scripts/run_prometheus.sh
|
||||
if ! [[ "$0" =~ scripts/run_prometheus.sh ]]; then
|
||||
echo "must be run from repository root"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
PROMETHEUS_WORKING_DIR="${HOME}/.tmpnet/prometheus"
|
||||
PIDFILE="${PROMETHEUS_WORKING_DIR}"/run.pid
|
||||
|
||||
# First check if an agent-mode prometheus is already running. A single instance can collect
|
||||
# metrics from all local temporary networks.
|
||||
if pgrep --pidfile="${PIDFILE}" -f 'prometheus.*enable-feature=agent' &> /dev/null; then
|
||||
echo "prometheus is already running locally with --enable-feature=agent"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
PROMETHEUS_URL="${PROMETHEUS_URL:-https://prometheus-poc.avax-dev.network}"
|
||||
if [[ -z "${PROMETHEUS_URL}" ]]; then
|
||||
echo "Please provide a value for PROMETHEUS_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROMETHEUS_ID="${PROMETHEUS_ID:-}"
|
||||
if [[ -z "${PROMETHEUS_ID}" ]]; then
|
||||
echo "Please provide a value for PROMETHEUS_ID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROMETHEUS_PASSWORD="${PROMETHEUS_PASSWORD:-}"
|
||||
if [[ -z "${PROMETHEUS_PASSWORD}" ]]; then
|
||||
echo "Plase provide a value for PROMETHEUS_PASSWORD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# This was the LTS version when this script was written. Probably not
|
||||
# much reason to update it unless something breaks since the usage
|
||||
# here is only to collect metrics from temporary networks.
|
||||
VERSION="2.45.3"
|
||||
|
||||
# Ensure the prometheus command is locally available
|
||||
CMD=prometheus
|
||||
if ! command -v "${CMD}" &> /dev/null; then
|
||||
# Try to use a local version
|
||||
CMD="${PWD}/bin/prometheus"
|
||||
if ! command -v "${CMD}" &> /dev/null; then
|
||||
echo "prometheus not found, attempting to install..."
|
||||
|
||||
# Determine the arch
|
||||
if which sw_vers &> /dev/null; then
|
||||
echo "on macos, only amd64 binaries are available so rosetta is required on apple silicon machines."
|
||||
echo "to avoid using rosetta, install via homebrew: brew install prometheus"
|
||||
DIST=darwin
|
||||
else
|
||||
ARCH="$(uname -i)"
|
||||
if [[ "${ARCH}" != "x86_64" ]]; then
|
||||
echo "on linux, only amd64 binaries are available. manual installation of prometheus is required."
|
||||
exit 1
|
||||
else
|
||||
DIST="linux"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install the specified release
|
||||
PROMETHEUS_FILE="prometheus-${VERSION}.${DIST}-amd64"
|
||||
URL="https://github.com/prometheus/prometheus/releases/download/v${VERSION}/${PROMETHEUS_FILE}.tar.gz"
|
||||
curl -s -L "${URL}" | tar zxv -C /tmp > /dev/null
|
||||
mkdir -p "$(dirname "${CMD}")"
|
||||
cp /tmp/"${PROMETHEUS_FILE}/prometheus" "${CMD}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Configure prometheus
|
||||
FILE_SD_PATH="${PROMETHEUS_WORKING_DIR}/file_sd_configs"
|
||||
mkdir -p "${FILE_SD_PATH}"
|
||||
|
||||
echo "writing configuration..."
|
||||
cat >"${PROMETHEUS_WORKING_DIR}"/prometheus.yaml <<EOL
|
||||
# my global config
|
||||
global:
|
||||
# Make sure this value takes into account the network-shutdown-delay in tests/fixture/e2e/env.go
|
||||
scrape_interval: 10s # Default is every 1 minute.
|
||||
evaluation_interval: 10s # The default is every 1 minute.
|
||||
scrape_timeout: 5s # The default is every 10s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: "avalanchego"
|
||||
metrics_path: "/ext/metrics"
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- '${FILE_SD_PATH}/*.json'
|
||||
|
||||
remote_write:
|
||||
- url: "${PROMETHEUS_URL}/api/v1/write"
|
||||
basic_auth:
|
||||
username: "${PROMETHEUS_ID}"
|
||||
password: "${PROMETHEUS_PASSWORD}"
|
||||
EOL
|
||||
|
||||
echo "starting prometheus..."
|
||||
cd "${PROMETHEUS_WORKING_DIR}"
|
||||
nohup "${CMD}" --config.file=prometheus.yaml --web.listen-address=localhost:0 --enable-feature=agent > prometheus.log 2>&1 &
|
||||
echo $! > "${PIDFILE}"
|
||||
echo "running with pid $(cat "${PIDFILE}")"
|
||||
@@ -1,115 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Starts a promtail instance to collect logs from temporary networks
|
||||
# running locally and in CI.
|
||||
#
|
||||
# The promtail instance will remain running in the background and will forward
|
||||
# logs to the central instance for all tmpnet networks.
|
||||
#
|
||||
# To stop it:
|
||||
#
|
||||
# $ kill -9 `cat ~/.tmpnet/promtail/run.pid` && rm ~/.tmpnet/promtail/run.pid
|
||||
#
|
||||
|
||||
# e.g.,
|
||||
# LOKI_ID=<id> LOKI_PASSWORD=<password> ./scripts/run_promtail.sh
|
||||
if ! [[ "$0" =~ scripts/run_promtail.sh ]]; then
|
||||
echo "must be run from repository root"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
PROMTAIL_WORKING_DIR="${HOME}/.tmpnet/promtail"
|
||||
PIDFILE="${PROMTAIL_WORKING_DIR}"/run.pid
|
||||
|
||||
# First check if promtail is already running. A single instance can
|
||||
# collect logs from all local temporary networks.
|
||||
if pgrep --pidfile="${PIDFILE}" &> /dev/null; then
|
||||
echo "promtail is already running"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOKI_URL="${LOKI_URL:-https://loki-poc.avax-dev.network}"
|
||||
if [[ -z "${LOKI_URL}" ]]; then
|
||||
echo "Please provide a value for LOKI_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOKI_ID="${LOKI_ID:-}"
|
||||
if [[ -z "${LOKI_ID}" ]]; then
|
||||
echo "Please provide a value for LOKI_ID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOKI_PASSWORD="${LOKI_PASSWORD:-}"
|
||||
if [[ -z "${LOKI_PASSWORD}" ]]; then
|
||||
echo "Plase provide a value for LOKI_PASSWORD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Version as of this writing
|
||||
VERSION="v2.9.5"
|
||||
|
||||
# Ensure the promtail command is locally available
|
||||
CMD=promtail
|
||||
if ! command -v "${CMD}" &> /dev/null; then
|
||||
# Try to use a local version
|
||||
CMD="${PWD}/bin/promtail"
|
||||
if ! command -v "${CMD}" &> /dev/null; then
|
||||
echo "promtail not found, attempting to install..."
|
||||
# Determine the arch
|
||||
if which sw_vers &> /dev/null; then
|
||||
DIST="darwin-$(uname -m)"
|
||||
else
|
||||
ARCH="$(uname -i)"
|
||||
if [[ "${ARCH}" == "aarch64" ]]; then
|
||||
ARCH="arm64"
|
||||
elif [[ "${ARCH}" == "x86_64" ]]; then
|
||||
ARCH="amd64"
|
||||
fi
|
||||
DIST="linux-${ARCH}"
|
||||
fi
|
||||
|
||||
# Install the specified release
|
||||
PROMTAIL_FILE="promtail-${DIST}"
|
||||
ZIP_PATH="/tmp/${PROMTAIL_FILE}.zip"
|
||||
BIN_DIR="$(dirname "${CMD}")"
|
||||
URL="https://github.com/grafana/loki/releases/download/${VERSION}/promtail-${DIST}.zip"
|
||||
curl -L -o "${ZIP_PATH}" "${URL}"
|
||||
unzip "${ZIP_PATH}" -d "${BIN_DIR}"
|
||||
mv "${BIN_DIR}/${PROMTAIL_FILE}" "${CMD}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Configure promtail
|
||||
FILE_SD_PATH="${PROMTAIL_WORKING_DIR}/file_sd_configs"
|
||||
mkdir -p "${FILE_SD_PATH}"
|
||||
|
||||
echo "writing configuration..."
|
||||
cat >"${PROMTAIL_WORKING_DIR}"/promtail.yaml <<EOL
|
||||
server:
|
||||
http_listen_port: 0
|
||||
grpc_listen_port: 0
|
||||
|
||||
positions:
|
||||
filename: "${PROMTAIL_WORKING_DIR}/positions.yaml"
|
||||
|
||||
client:
|
||||
url: "${LOKI_URL}/api/prom/push"
|
||||
basic_auth:
|
||||
username: "${LOKI_ID}"
|
||||
password: "${LOKI_PASSWORD}"
|
||||
|
||||
scrape_configs:
|
||||
- job_name: "avalanchego"
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- '${FILE_SD_PATH}/*.json'
|
||||
EOL
|
||||
|
||||
echo "starting promtail..."
|
||||
cd "${PROMTAIL_WORKING_DIR}"
|
||||
nohup "${CMD}" -config.file=promtail.yaml > promtail.log 2>&1 &
|
||||
echo $! > "${PIDFILE}"
|
||||
echo "running with pid $(cat "${PIDFILE}")"
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if ! [[ "$0" =~ scripts/update_avalanchego_version.sh ]]; then
|
||||
echo "must be run from repository root, but got $0"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# If version is not provided, the existing version in go.mod is assumed
|
||||
VERSION="${1:-}"
|
||||
|
||||
if [[ -n "${VERSION}" ]]; then
|
||||
echo "Ensuring AvalancheGo version $VERSION in go.mod"
|
||||
go get "github.com/ava-labs/avalanchego@${VERSION}"
|
||||
go mod tidy
|
||||
fi
|
||||
|
||||
# Discover AVALANCHE_VERSION
|
||||
. scripts/versions.sh
|
||||
|
||||
# The full SHA is required for versioning custom actions.
|
||||
CURL_ARGS=(curl -s)
|
||||
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
|
||||
# Using an auth token avoids being rate limited when run in CI
|
||||
CURL_ARGS+=(-H "Authorization: token ${GITHUB_TOKEN}")
|
||||
fi
|
||||
CURL_URL="https://api.github.com/repos/ava-labs/avalanchego/commits/${AVALANCHE_VERSION}"
|
||||
FULL_AVALANCHE_VERSION="$("${CURL_ARGS[@]}" "${CURL_URL}" | grep '"sha":' | head -n1 | cut -d'"' -f4)"
|
||||
|
||||
# Ensure the custom action version matches the avalanche version
|
||||
WORKFLOW_PATH=".github/workflows/tests.yml"
|
||||
CUSTOM_ACTION="ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd"
|
||||
echo "Ensuring AvalancheGo version ${FULL_AVALANCHE_VERSION} for ${CUSTOM_ACTION} custom action in ${WORKFLOW_PATH} "
|
||||
sed -i.bak "s|\(uses: ${CUSTOM_ACTION}\)@.*|\1@${FULL_AVALANCHE_VERSION}|g" "${WORKFLOW_PATH}" && rm -f "${WORKFLOW_PATH}.bak"
|
||||
@@ -35,3 +35,20 @@ viewed in grafana. The details of configuration and usage for
|
||||
subnet-evm mirror those of avalanchego and the same
|
||||
[documentation](https://github.com/ava-labs/avalanchego/blob/master/tests/fixture/tmpnet/README.md#Monitoring)
|
||||
applies.
|
||||
|
||||
## Optional Dev Shell
|
||||
|
||||
Some activities, such as collecting metrics and logs from the nodes targeted by an e2e
|
||||
test run, require binary dependencies. One way of making these dependencies available is
|
||||
to use a nix shell which will give access to the dependencies expected by the test
|
||||
tooling:
|
||||
|
||||
- Install [nix](https://nixos.org/). The [determinate systems
|
||||
installer](https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#install-nix)
|
||||
is recommended.
|
||||
- Use ./scripts/dev_shell.sh to start a nix shell
|
||||
- Execute the dependency-requiring command (e.g. `ginkgo -v ./tests/warp -- --start-collectors`)
|
||||
|
||||
This repo also defines a `.envrc` file to configure [devenv](https://direnv.net/). With `devenv`
|
||||
and `nix` installed, a shell at the root of the repo will automatically start a nix dev
|
||||
shell.
|
||||
|
||||
Reference in New Issue
Block a user