You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by ag...@apache.org on 2021/08/13 17:07:19 UTC
[storm] branch master updated: STORM-3790 add meter to track
getPassword failures (#3408)
This is an automated email from the ASF dual-hosted git repository.
agresch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new a87172a STORM-3790 add meter to track getPassword failures (#3408)
a87172a is described below
commit a87172a2abf5208e10f85c73dcd13081d79418e6
Author: agresch <ag...@gmail.com>
AuthorDate: Fri Aug 13 12:07:05 2021 -0500
STORM-3790 add meter to track getPassword failures (#3408)
---
docs/ClusterMetrics.md | 1 +
.../storm/security/auth/workertoken/WorkerTokenAuthorizer.java | 8 +++++++-
.../main/java/org/apache/storm/daemon/supervisor/Supervisor.java | 5 ++++-
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/docs/ClusterMetrics.md b/docs/ClusterMetrics.md
index 6aa87eb..6626054 100644
--- a/docs/ClusterMetrics.md
+++ b/docs/ClusterMetrics.md
@@ -218,6 +218,7 @@ Metrics associated with the supervisor, which launches the workers for a topolog
| supervisor:worker-launch-duration | timer | Time taken for a worker to launch. |
| supervisor:worker-per-call-clean-up-duration-ns | meter | how long it takes to cleanup a worker (ns). |
| supervisor:worker-shutdown-duration-ns | meter | how long it takes to shutdown a worker (ns). |
+| supervisor:workerTokenAuthorizer-get-password-failures | meter | Failures getting password for user in WorkerTokenAuthorizer |
## UI Metrics
diff --git a/storm-client/src/jvm/org/apache/storm/security/auth/workertoken/WorkerTokenAuthorizer.java b/storm-client/src/jvm/org/apache/storm/security/auth/workertoken/WorkerTokenAuthorizer.java
index c225e27..80f3d54 100644
--- a/storm-client/src/jvm/org/apache/storm/security/auth/workertoken/WorkerTokenAuthorizer.java
+++ b/storm-client/src/jvm/org/apache/storm/security/auth/workertoken/WorkerTokenAuthorizer.java
@@ -12,8 +12,8 @@
package org.apache.storm.security.auth.workertoken;
+import com.codahale.metrics.Meter;
import java.io.Closeable;
-import java.io.IOException;
import java.util.Base64;
import java.util.Map;
import java.util.Optional;
@@ -45,6 +45,7 @@ public class WorkerTokenAuthorizer implements PasswordProvider, Closeable {
private static final Logger LOG = LoggerFactory.getLogger(WorkerTokenAuthorizer.class);
private final LoadingCache<WorkerTokenInfo, PrivateWorkerKey> keyCache;
private final IStormClusterState state;
+ private static final Meter passwordFailures = new Meter();
/**
* Constructor.
@@ -134,11 +135,16 @@ public class WorkerTokenAuthorizer implements PasswordProvider, Closeable {
byte[] password = getSignedPasswordFor(user, deser);
return Optional.of(Base64.getEncoder().encodeToString(password).toCharArray());
} catch (Exception e) {
+ passwordFailures.mark();
LOG.error("Could not get password for token {}/{}", deser.get_userName(), deser.get_topologyId(), e);
return Optional.empty();
}
}
+ public static Meter getPasswordFailuresMeter() {
+ return passwordFailures;
+ }
+
@Override
public String userName(String userName) {
byte[] user = Base64.getDecoder().decode(userName);
diff --git a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Supervisor.java b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Supervisor.java
index c72b4cb..978cc9b 100644
--- a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Supervisor.java
+++ b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Supervisor.java
@@ -66,6 +66,7 @@ import org.apache.storm.security.auth.IAuthorizer;
import org.apache.storm.security.auth.ReqContext;
import org.apache.storm.security.auth.ThriftConnectionType;
import org.apache.storm.security.auth.ThriftServer;
+import org.apache.storm.security.auth.workertoken.WorkerTokenAuthorizer;
import org.apache.storm.shade.com.google.common.annotations.VisibleForTesting;
import org.apache.storm.thrift.TException;
import org.apache.storm.thrift.TProcessor;
@@ -186,7 +187,6 @@ public class Supervisor implements DaemonCommon, AutoCloseable {
this.workerHeartbeatTimer = new StormTimer("WorkerHBTimer", new DefaultUncaughtExceptionHandler());
this.eventTimer = new StormTimer("EventTimer", new DefaultUncaughtExceptionHandler());
-
this.supervisorThriftInterface = createSupervisorIface();
}
@@ -324,6 +324,7 @@ public class Supervisor implements DaemonCommon, AutoCloseable {
ReportWorkerHeartbeats reportWorkerHeartbeats = new ReportWorkerHeartbeats(conf, this);
Integer workerHeartbeatFrequency = ObjectReader.getInt(conf.get(Config.WORKER_HEARTBEAT_FREQUENCY_SECS));
workerHeartbeatTimer.scheduleRecurring(0, workerHeartbeatFrequency, reportWorkerHeartbeats);
+
LOG.info("Starting supervisor with id {} at host {}.", getId(), getHostName());
}
@@ -345,6 +346,8 @@ public class Supervisor implements DaemonCommon, AutoCloseable {
metricsRegistry.registerMeter("supervisor:num-shell-exceptions", ShellUtils.numShellExceptions);
metricsRegistry.registerMeter(Constants.SUPERVISOR_HEALTH_CHECK_TIMEOUTS);
killErrorMeter = metricsRegistry.registerMeter("supervisor:num-kill-worker-errors");
+ metricsRegistry.registerMeter("supervisor:workerTokenAuthorizer-get-password-failures",
+ WorkerTokenAuthorizer.getPasswordFailuresMeter());
metricsRegistry.startMetricsReporters(conf);
Utils.addShutdownHookWithForceKillIn1Sec(() -> {
metricsRegistry.stopMetricsReporters();