|
2 | 2 | # |
3 | 3 | # |
4 | 4 |
|
5 | | -# Bootstrap EC2 instance (Ubuntu 18.04) for soak client use |
| 5 | +# Bootstrap EC2 instance (Ubuntu) for soak client use |
6 | 6 | # |
7 | 7 | # Usage: |
8 | 8 | # $0 <python-branch/tag> <librdkafka-branch/tag> |
9 | 9 |
|
10 | 10 | set -e |
11 | 11 |
|
12 | 12 | if [[ $# != 2 ]]; then |
13 | | - echo "Usage: $0 <python-client-branch/tag> <librdkafka-branch/tag>" |
| 13 | + echo "Usage: $0 <librdkafka-branch/tag> <python-client-branch/tag>" |
14 | 14 | exit 1 |
15 | 15 | fi |
16 | 16 |
|
17 | | -python_branch=$1 |
18 | | -librdkafka_branch=$2 |
19 | | -venv=$PWD/venv |
| 17 | +librdkafka_branch=$1 |
| 18 | +python_branch=$2 |
| 19 | +otel_collector_version=0.130.0 |
| 20 | +otel_collector_package_url="https://github.com/open-telemetry/"\ |
| 21 | +"opentelemetry-collector-releases/releases/download/"\ |
| 22 | +"v${otel_collector_version}/otelcol-contrib_${otel_collector_version}_linux_amd64.deb" |
| 23 | + |
| 24 | +validate_config() { |
| 25 | + local errors=0 |
| 26 | + |
| 27 | + if grep -q "FILL_IN_REGION_HERE" otel-config.yaml; then |
| 28 | + echo "ERROR: AWS region not configured in otel-config.yaml" |
| 29 | + echo "Please set AWS_REGION in the file" |
| 30 | + errors=$((errors + 1)) |
| 31 | + fi |
| 32 | + |
| 33 | + if grep -q "FILL_IN_ROLE_ARN_HERE" otel-config.yaml; then |
| 34 | + echo "ERROR: AWS Role ARN not configured in otel-config.yaml" |
| 35 | + echo "Please set AWS_ROLE_ARN in the file" |
| 36 | + errors=$((errors + 1)) |
| 37 | + fi |
| 38 | + |
| 39 | + if grep -q "FILL_IN_REMOTE_WRITE_ENDPOINT_HERE" otel-config.yaml; then |
| 40 | + echo "ERROR: Prometheus endpoint not configured" |
| 41 | + echo "Please set PROMETHEUS_ENDPOINT in the file" |
| 42 | + errors=$((errors + 1)) |
| 43 | + fi |
| 44 | + |
| 45 | + if [[ $errors -gt 0 ]]; then |
| 46 | + echo "Configuration validation failed. Please fix the above errors." |
| 47 | + exit 1 |
| 48 | + fi |
| 49 | + |
| 50 | + echo "Configuration validation passed." |
| 51 | +} |
| 52 | +validate_config |
20 | 53 |
|
21 | 54 | sudo apt update |
22 | | -sudo apt install -y git curl make gcc g++ zlib1g-dev libssl-dev libzstd-dev \ |
23 | | - python3-dev python3-pip python3-venv |
24 | | - |
25 | | -if [[ ! -d confluent-kafka-python ]]; then |
26 | | - git clone https://github.com/confluentinc/confluent-kafka-python |
27 | | -fi |
28 | | - |
29 | | -pushd confluent-kafka-python |
30 | | - |
31 | | -git checkout $python_branch |
32 | | - |
33 | | -echo "Installing librdkafka $librdkafka_branch" |
34 | | -tools/bootstrap-librdkafka.sh --require-ssl $librdkafka_branch /usr |
35 | | -rm -rf tmp-build |
36 | | - |
37 | | -# echo "Installing interceptors" |
38 | | -# tools/install-interceptors.sh |
39 | | - |
40 | | -echo "Setting up virtualenv in $venv" |
41 | | -if [[ ! -d $venv ]]; then |
42 | | - python3 -m venv $venv |
43 | | -fi |
44 | | -source $venv/bin/activate |
45 | | - |
46 | | -pip install -U pip |
47 | | - |
48 | | -pip install -v .[soaktest] |
49 | | - |
50 | | -popd # ..python |
51 | | - |
52 | | -echo "Verifying python client installation" |
53 | | -python -c "import confluent_kafka; print(confluent_kafka.version(), confluent_kafka.libversion())" |
54 | | - |
55 | | -deactivate |
| 55 | +sudo apt install -y git curl wget make gcc g++ zlib1g-dev libssl-dev \ |
| 56 | + libzstd-dev python3-dev python3-pip python3-venv |
| 57 | +wget -O otel_collector_package.deb $otel_collector_package_url |
| 58 | +sudo dpkg -i otel_collector_package.deb |
| 59 | +rm otel_collector_package.deb |
| 60 | +sudo cp otel-config.yaml /etc/otelcol-contrib/config.yaml |
| 61 | +sudo systemctl restart otelcol-contrib |
| 62 | +cp setup_all_versions.py $HOME/setup_all_versions.py |
| 63 | +chmod +x $HOME/setup_all_versions.py |
| 64 | + |
| 65 | +./build.sh $librdkafka_branch $python_branch |
56 | 66 |
|
| 67 | +venv=$PWD/venv |
57 | 68 | echo "All done, activate the virtualenv in $venv before running the client:" |
58 | 69 | echo "source $venv/bin/activate" |
59 | 70 |
|
0 commit comments