From dddb218edbb5fbdb2e2f5a40ed3e388eca7b8f9d Mon Sep 17 00:00:00 2001 From: "opensearch-trigger-bot[bot]" <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:08:50 -0700 Subject: [PATCH] Add logging for throttling and guardrail in connector (#2725) (#2727) (#3047) Signed-off-by: b4sjoo (cherry picked from commit 8f160805080b4ad2d576f4d4ca48007b73f6297e) Co-authored-by: Sicheng Song (cherry picked from commit ce6b36c563b57beaf3693df283084d2b71bc9905) Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> --- .../ml/engine/algorithms/remote/RemoteConnectorExecutor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/RemoteConnectorExecutor.java b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/RemoteConnectorExecutor.java index 28b7617103..a126153ba5 100644 --- a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/RemoteConnectorExecutor.java +++ b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/RemoteConnectorExecutor.java @@ -196,17 +196,20 @@ default void preparePayloadAndInvoke( .getTransient(ConfigConstants.OPENSEARCH_SECURITY_USER_INFO_THREAD_CONTEXT); User user = User.parse(userStr); if (getRateLimiter() != null && !getRateLimiter().request()) { + getLogger().error("Request is throttled at model level."); throw new OpenSearchStatusException("Request is throttled at model level.", RestStatus.TOO_MANY_REQUESTS); } else if (user != null && getUserRateLimiterMap() != null && getUserRateLimiterMap().get(user.getName()) != null && !getUserRateLimiterMap().get(user.getName()).request()) { + getLogger().error("Request is throttled at user level."); throw new OpenSearchStatusException( "Request is throttled at user level. If you think there's an issue, please contact your cluster admin.", RestStatus.TOO_MANY_REQUESTS ); } else { if (getMlGuard() != null && !getMlGuard().validate(payload, MLGuard.Type.INPUT, parameters)) { + getLogger().error("guardrails triggered for user input"); throw new IllegalArgumentException("guardrails triggered for user input"); } if (getConnectorClientConfig().getMaxRetryTimes() != 0) {