diff --git a/changelog/unreleased/SOLR-18417-deprecate-pingrequesthandler.yml b/changelog/unreleased/SOLR-18417-deprecate-pingrequesthandler.yml
new file mode 100644
index 00000000000..fb82ab8f6d1
--- /dev/null
+++ b/changelog/unreleased/SOLR-18417-deprecate-pingrequesthandler.yml
@@ -0,0 +1,7 @@
+type: deprecated
+title: Deprecate PingRequestHandler (the "/admin/ping" endpoint), SolrPing, SolrPingResponse, and SolrClient.ping()/ping(String).
+authors:
+ - name: Jason Gerlowski
+links:
+ - name: SOLR-18417
+ url: https://issues.apache.org/jira/browse/SOLR-18417
diff --git a/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
index f7eaa97db78..ee49eed153d 100644
--- a/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
@@ -105,8 +105,12 @@
* healthcheck file exists ("enabled") or not ("disabled")
*
*
+ * @deprecated This handler is deprecated and will be removed in a future release. For load balancer
+ * or orchestration health checks, use {@link org.apache.solr.handler.admin.HealthCheckHandler}
+ * instead. instead.
* @since solr 1.3
*/
+@Deprecated(since = "10.1")
public class PingRequestHandler extends RequestHandlerBase implements SolrCoreAware {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
index 005742a7cec..6adff4771b7 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
@@ -83,6 +83,8 @@ This handler must have a collection name in the path to the endpoint.
Ping:: Health check.
This handler must have a collection name in the path to the endpoint.
+
+CAUTION: `PingRequestHandler` is deprecated and will be removed in a future release. Use the `Health` endpoint below instead.
++
*Documentation*: xref:deployment-guide:ping.adoc[]
+
[cols="3*.",frame=none,grid=cols,options="header"]
diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
index 169fb97e9ab..558dddac292 100644
--- a/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
@@ -16,6 +16,12 @@
// specific language governing permissions and limitations
// under the License.
+[WARNING]
+====
+The `/admin/ping` endpoint (`PingRequestHandler`) is deprecated and will be removed in a future release.
+For load balancer or orchestration health checks, use the `solr/admin/info/health` (v1) or `api/node/health` (v2) endpoint, documented in the "Health" section of xref:configuration-guide:implicit-requesthandlers.adoc[], instead.
+====
+
Choosing Ping under a core name issues a `ping` request to check whether the core is up and responding to requests.
.Ping Option in Core Dropdown
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/SolrClient.java
index 5d54d12155a..fbc5ef6df2b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/SolrClient.java
@@ -895,7 +895,9 @@ public UpdateResponse deleteByQuery(String query, int commitWithinMs)
* response from the server
* @throws IOException If there is a low-level I/O error.
* @throws SolrServerException if there is an error on the server
+ * @deprecated This method is deprecated and will be removed in a future release.
*/
+ @Deprecated(since = "10.1")
public SolrPingResponse ping(String collection) throws SolrServerException, IOException {
return new SolrPing().process(this, collection);
}
@@ -907,7 +909,9 @@ public SolrPingResponse ping(String collection) throws SolrServerException, IOEx
* response from the server
* @throws IOException If there is a low-level I/O error.
* @throws SolrServerException if there is an error on the server
+ * @deprecated This method is deprecated and will be removed in a future release.
*/
+ @Deprecated(since = "10.1")
public SolrPingResponse ping() throws SolrServerException, IOException {
return new SolrPing().process(this, null);
}
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrPing.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrPing.java
index 2b9f9824802..a08d9c89ec1 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrPing.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrPing.java
@@ -26,8 +26,11 @@
* org.apache.solr.client.solrj.SolrClient}. To use this class, the solrconfig.xml for the relevant
* core must include the request handler for /admin/ping.
*
+ * @deprecated PingRequestHandler (the /admin/ping endpoint) is deprecated
+ * and will be removed in a future release. Use {@link HealthCheckRequest} instead.
* @since solr 1.3
*/
+@Deprecated(since = "10.1")
public class SolrPing extends CollectionRequiringSolrRequest {
/** serialVersionUID. */
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/SolrPingResponse.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/SolrPingResponse.java
index da124f13594..6c0d8940712 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/SolrPingResponse.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/SolrPingResponse.java
@@ -17,8 +17,10 @@
package org.apache.solr.client.solrj.response;
/**
+ * @deprecated This class is deprecated and will be removed in a future release.
* @since solr 1.3
*/
+@Deprecated(since = "10.1")
public class SolrPingResponse extends SolrResponseBase {
// nothing special now...
}
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
index 3bed47aac57..31ad4a1e5d7 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
@@ -75,7 +75,13 @@ public interface CommonParams {
String INDENT = "indent";
// SOLR-4228 start
- /** handler value for SolrPing */
+ /**
+ * handler value for SolrPing
+ *
+ * @deprecated PingRequestHandler (the /admin/ping endpoint) is
+ * deprecated and will be removed in a future release.
+ */
+ @Deprecated(since = "10.1")
String PING_HANDLER = "/admin/ping";
/** "action" parameter for SolrPing */