You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by ha...@apache.org on 2017/01/10 22:31:47 UTC
sentry git commit: SENTRY-1581: Provide Log4J metrics reporter
(Alexander Kolbasov, Reviewed by: Hao Hao, Vamsee Yarlagadda)
Repository: sentry
Updated Branches:
refs/heads/master 854934cb2 -> 2a89d2bfe
SENTRY-1581: Provide Log4J metrics reporter (Alexander Kolbasov, Reviewed by: Hao Hao, Vamsee Yarlagadda)
Change-Id: I6f157bba9a35610f5d4e5e032f24f09a12624239
Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/2a89d2bf
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/2a89d2bf
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/2a89d2bf
Branch: refs/heads/master
Commit: 2a89d2bfe33eff2d861469caf9058b4062c85d98
Parents: 854934c
Author: hahao <ha...@cloudera.com>
Authored: Tue Jan 10 14:30:30 2017 -0800
Committer: hahao <ha...@cloudera.com>
Committed: Tue Jan 10 14:30:30 2017 -0800
----------------------------------------------------------------------
.../db/service/thrift/SentryMetrics.java | 42 +++++++++++---------
.../thrift/SentryPolicyStoreProcessor.java | 14 +------
2 files changed, 25 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sentry/blob/2a89d2bf/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java
----------------------------------------------------------------------
diff --git a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java
index c477f24..9d09971 100644
--- a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java
+++ b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java
@@ -17,16 +17,10 @@
*/
package org.apache.sentry.provider.db.service.thrift;
-import com.codahale.metrics.ConsoleReporter;
-import com.codahale.metrics.Counter;
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.Histogram;
-import com.codahale.metrics.JmxReporter;
-import com.codahale.metrics.Metric;
-import com.codahale.metrics.MetricRegistry;
+import com.codahale.metrics.*;
+
import static com.codahale.metrics.MetricRegistry.name;
-import com.codahale.metrics.MetricSet;
-import com.codahale.metrics.Timer;
+
import com.codahale.metrics.jvm.BufferPoolMetricSet;
import com.codahale.metrics.jvm.GarbageCollectorMetricSet;
import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
@@ -136,6 +130,7 @@ public final class SentryMetrics {
* Available reporters:
* <ul>
* <li>console</li>
+ * <li>log</li>
* <li>jmx</li>
* </ul>
*
@@ -144,18 +139,19 @@ public final class SentryMetrics {
* <p>
* Method is thread safe.
*/
- void initReporting(Reporting reporting, Configuration conf) {
- if (reportingInitialized.getAndSet(true)) {
+ void initReporting(Configuration conf) {
+ final String reporter = conf.get(ServerConfig.SENTRY_REPORTER);
+ if (reporter == null || reporter.isEmpty() || reportingInitialized.getAndSet(true)) {
// Nothing to do, just return
return;
}
- switch(reporting) {
- case CONSOLE:
- final int reportInterval =
- conf.getInt(ServerConfig.SENTRY_REPORTER_INTERVAL_SEC,
- ServerConfig.SENTRY_REPORTER_INTERVAL_DEFAULT);
+ final int reportInterval =
+ conf.getInt(ServerConfig.SENTRY_REPORTER_INTERVAL_SEC,
+ ServerConfig.SENTRY_REPORTER_INTERVAL_DEFAULT);
+ switch(SentryMetrics.Reporting.valueOf(reporter.toUpperCase())) {
+ case CONSOLE:
LOGGER.info(String.format("Enabled console metrics reporter with %d seconds interval",
reportInterval));
final ConsoleReporter consoleReporter =
@@ -173,8 +169,17 @@ public final class SentryMetrics {
.build();
jmxReporter.start();
break;
+ case LOG:
+ LOGGER.info(String.format("Enabled Log4J metrics reporter with %d seconds interval",
+ reportInterval));
+ final Slf4jReporter logReporter = Slf4jReporter.forRegistry(METRIC_REGISTRY)
+ .outputTo(LOGGER)
+ .convertRatesTo(TimeUnit.SECONDS)
+ .convertDurationsTo(TimeUnit.MILLISECONDS)
+ .build();
+ logReporter.start(reportInterval, TimeUnit.SECONDS);
default:
- LOGGER.warn("Invalid metrics reporter " + reporting.toString());
+ LOGGER.warn("Invalid metrics reporter " + reporter);
break;
}
}
@@ -196,6 +201,7 @@ public final class SentryMetrics {
public enum Reporting {
JMX,
- CONSOLE
+ CONSOLE,
+ LOG,
}
}
http://git-wip-us.apache.org/repos/asf/sentry/blob/2a89d2bf/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
----------------------------------------------------------------------
diff --git a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
index 898632d..b10c2f2 100644
--- a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
+++ b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
@@ -130,19 +130,7 @@ public class SentryPolicyStoreProcessor implements SentryPolicyService.Iface {
private void initMetrics() {
sentryMetrics = SentryMetrics.getInstance();
sentryMetrics.addSentryStoreGauges(sentryStore);
-
- String sentryReporting = conf.get(ServerConfig.SENTRY_REPORTER);
- if (sentryReporting != null) {
- SentryMetrics.Reporting reporting;
- try {
- reporting = SentryMetrics.Reporting.valueOf(sentryReporting.toUpperCase());
- sentryMetrics.initReporting(reporting, conf);
-
- } catch (IllegalArgumentException e) {
- LOGGER.warn("Metrics reporting not configured correctly, please set " + ServerConfig.SENTRY_REPORTER +
- " to: " + SentryMetrics.Reporting.CONSOLE.name() + "/" + SentryMetrics.Reporting.JMX.name());
- }
- }
+ sentryMetrics.initReporting(conf);
}
public void stop() {