This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch feature/SOLR-17458-rebased
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/feature/SOLR-17458-rebased by
this push:
new 0a84fa5f07c SOLR-17458: Remove prometheus exporter integration tests
(bats & docker)
0a84fa5f07c is described below
commit 0a84fa5f07c5d1b0df4b236f6f4a1ca6019173d3
Author: David Smiley <[email protected]>
AuthorDate: Tue Oct 14 12:37:59 2025 -0400
SOLR-17458: Remove prometheus exporter integration tests
(bats & docker)
---
.../tests/cases/prometheus-exporter-cloud/test.sh | 51 --------------------
.../cases/prometheus-exporter-standalone/test.sh | 54 ---------------------
solr/docker/tests/shared.sh | 19 --------
solr/packaging/build.gradle | 1 -
solr/packaging/test/bats_helper.bash | 7 ---
solr/packaging/test/test_prometheus.bats | 56 ----------------------
6 files changed, 188 deletions(-)
diff --git a/solr/docker/tests/cases/prometheus-exporter-cloud/test.sh
b/solr/docker/tests/cases/prometheus-exporter-cloud/test.sh
deleted file mode 100755
index 137207a8f22..00000000000
--- a/solr/docker/tests/cases/prometheus-exporter-cloud/test.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -euo pipefail
-
-TEST_DIR="${TEST_DIR:-$(dirname -- "${BASH_SOURCE[0]}")}"
-source "${TEST_DIR}/../../shared.sh"
-
-container_cleanup "${container_name}-solr"
-
-echo "Running $container_name"
-docker run --name "${container_name}-solr" -d "$tag" solr-fg
-
-wait_for_container_and_solr "${container_name}-solr"
-
-solr_ip=$(docker inspect --format="{{range
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" "${container_name}-solr")
-
-docker run --name "$container_name" -d \
- --env "ZK_HOST=${solr_ip}:9983" \
- --env "SCRAPE_INTERVAL=1" \
- --env "CLUSTER_ID=myCluster" \
- "$tag" "solr-exporter"
-
-wait_for_container_and_solr_exporter "${container_name}"
-
-echo "Checking prometheus data"
-data=$(docker exec --user=solr "$container_name" wget -q -O -
'http://localhost:8989/metrics')
-
-if ! grep -E -q
"solr_collections_live_nodes{zk_host=\"${solr_ip}:9983\",cluster_id=\"myCluster\",}
1.0" <<<"$data"; then
- echo "Test $TEST_NAME $tag failed; did not find correct data"
- echo "$data"
- exit 1
-fi
-
-container_cleanup "${container_name}-solr"
-container_cleanup "$container_name"
-
-echo "Test $TEST_NAME $tag succeeded"
diff --git a/solr/docker/tests/cases/prometheus-exporter-standalone/test.sh
b/solr/docker/tests/cases/prometheus-exporter-standalone/test.sh
deleted file mode 100755
index d964453170b..00000000000
--- a/solr/docker/tests/cases/prometheus-exporter-standalone/test.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -euo pipefail
-
-TEST_DIR="${TEST_DIR:-$(dirname -- "${BASH_SOURCE[0]}")}"
-source "${TEST_DIR}/../../shared.sh"
-
-container_cleanup "${container_name}-solr"
-
-echo "Running $container_name"
-docker run --name "${container_name}-solr" -d "$tag" "solr-demo"
-
-wait_for_container_and_solr "${container_name}-solr"
-
-solr_ip=$(docker inspect --format="{{range
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" "${container_name}-solr")
-
-docker run --name "$container_name" --add-host "solr-host:${solr_ip}" -d \
- --env "SOLR_URL=http://solr-host:8983/solr" \
- --env "SCRAPE_INTERVAL=1" \
- --env "CLUSTER_ID=myCluster" \
- "$tag" "solr-exporter"
-
-wait_for_container_and_solr_exporter "${container_name}"
-
-echo "Submitting Solr query"
-docker exec --user=solr "${container_name}-solr" wget -q -O -
'http://localhost:8983/solr/demo/select?q=id%3Adell' > /dev/null
-
-echo "Checking prometheus data"
-data=$(docker exec --user=solr "$container_name" wget -q -O -
'http://localhost:8989/metrics')
-
-if ! grep -E -q
'solr_metrics_core_query_requests_total{category="QUERY",searchHandler="/select",internal="false",core="demo",base_url="http://solr-host:8983/solr",cluster_id="myCluster",}
[0-9]+.0' <<<"$data"; then
- echo "Test $TEST_NAME $tag failed; did not find correct data"
- echo "$data"
- exit 1
-fi
-
-container_cleanup "${container_name}-solr"
-container_cleanup "$container_name"
-
-echo "Test $TEST_NAME $tag succeeded"
diff --git a/solr/docker/tests/shared.sh b/solr/docker/tests/shared.sh
index a0dd04c3c9b..08ead0273d8 100755
--- a/solr/docker/tests/shared.sh
+++ b/solr/docker/tests/shared.sh
@@ -51,25 +51,6 @@ function wait_for_container_and_solr {
sleep 4
}
-function wait_for_container_and_solr_exporter {
- local container_name
- container_name=$1
- wait_for_server_started "$container_name" 0
'org.apache.solr.prometheus.exporter.SolrExporter; Solr Prometheus Exporter is
running'
-
- printf '\nWaiting for Solr Prometheus Exporter...\n'
- local status
- status=$(docker exec --env SOLR_PORT=8989 "$container_name" wait-for-solr.sh
--max-attempts 15 --wait-seconds 1)
-# echo "Got status from Solr Prometheus Exporter: $status"
- if ! grep -E -i -q 'Solr is running' <<<"$status"; then
- echo "Solr Prometheus Exporter did not start"
- container_cleanup "$container_name"
- exit 1
- else
- echo "Solr Prometheus Exporter is running"
- fi
- sleep 4
-}
-
function wait_for_server_started {
local container_name
container_name=$1
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index 21f765322b6..2c21f928d0b 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -267,7 +267,6 @@ task integrationTests(type: BatsTask) {
environment SOLR2_PORT: solrPort + 1
environment SOLR3_PORT: solrPort + 2
environment ZK_PORT: solrPort + 1000
- environment SOLR_EXPORTER_PORT: solrPort + 100
environment SOLR_LOGS_DIR: "$solrHome/logs"
environment TEST_OUTPUT_DIR: integrationTestOutput
environment TEST_FAILURE_DIR: solrTestFailuresDir
diff --git a/solr/packaging/test/bats_helper.bash
b/solr/packaging/test/bats_helper.bash
index 23c3629bea6..97c4424821d 100644
--- a/solr/packaging/test/bats_helper.bash
+++ b/solr/packaging/test/bats_helper.bash
@@ -62,13 +62,6 @@ shutdown_all() {
solr stop --all >/dev/null 2>&1
}
-shutdown_exporter(){
- EXPORTER_PID=$(ps auxww | grep
org.apache.solr.prometheus.exporter.SolrExporter | awk "/-classpath/"' {print
$2}' | sort -r)
- if [[ -n $EXPORTER_PID ]]; then
- kill -9 $EXPORTER_PID
- fi
-}
-
delete_all_collections() {
local collection_list="$(solr zk ls /collections -z localhost:${ZK_PORT})"
for collection in $collection_list; do
diff --git a/solr/packaging/test/test_prometheus.bats
b/solr/packaging/test/test_prometheus.bats
deleted file mode 100644
index 3dd39c9ccf3..00000000000
--- a/solr/packaging/test/test_prometheus.bats
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env bats
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-load bats_helper
-
-setup() {
- common_clean_setup
-}
-
-teardown() {
- # save a snapshot of SOLR_HOME for failed tests
- save_home_on_failure
-
- solr stop --all >/dev/null 2>&1
-
- shutdown_exporter
-}
-
-@test "should start solr prometheus exporter that scrapes solr for metrics" {
- solr start --user-managed
- solr assert --started http://localhost:${SOLR_PORT} --timeout 5000
-
- run solr create -c COLL_NAME
- assert_output --partial "Created new core 'COLL_NAME'"
-
- # echo "# starting solr-exporter on ${SOLR_EXPORTER_PORT}" >&3
- run solr-exporter --cluster-id bats-test -p $SOLR_EXPORTER_PORT --solr-url
http://localhost:${SOLR_PORT}/solr >&3 &
-
- sleep 5
-
- run curl "http:/localhost:$SOLR_EXPORTER_PORT/"
-
- assert_output --partial 'solr_metrics_core_query_requests_total'
- assert_output --partial 'core="COLL_NAME"'
- assert_output --partial 'bats-test'
-}
-
-@test "unrecognized option logging" {
- run ! solr-exporter --unknown-option unknown-option
-
- assert_output --partial 'Unrecognized option: --unknown-option'
-}