You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/06/23 12:25:01 UTC
[13/51] [abbrv] incubator-lens git commit: LENS-478 : Add counter for
DatabaseResourceService load errors (Yash Sharma via amareshwari)
LENS-478 : Add counter for DatabaseResourceService load errors (Yash Sharma via amareshwari)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/06e11557
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/06e11557
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/06e11557
Branch: refs/heads/current-release-line
Commit: 06e1155732f963c31c16aa4bf6b3278b6f144952
Parents: 70e4b92
Author: Yash Sharma <ya...@gmail.com>
Authored: Wed Jun 3 16:04:39 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Wed Jun 3 16:04:39 2015 +0530
----------------------------------------------------------------------
.../lens/server/api/metrics/MetricsService.java | 2 +
.../lens/server/metrics/MetricsServiceImpl.java | 12 +++++
.../server/session/DatabaseResourceService.java | 51 ++++++++++++++++++--
3 files changed, 62 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/06e11557/lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java b/lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java
index ffde912..f7a23ab 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java
@@ -133,6 +133,8 @@ public interface MetricsService {
String ACTIVE_SESSIONS = "active-sessions";
+ long getTotalDatabaseResourceLoadErrors();
+
long getQueuedQueries();
long getRunningQueries();
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/06e11557/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
index 66beeed..9ae0d66 100644
--- a/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
@@ -42,6 +42,7 @@ import org.apache.lens.server.api.session.SessionEvent;
import org.apache.lens.server.api.session.SessionExpired;
import org.apache.lens.server.api.session.SessionOpened;
import org.apache.lens.server.api.session.SessionService;
+import org.apache.lens.server.session.DatabaseResourceService;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hive.service.AbstractService;
@@ -114,6 +115,9 @@ public class MetricsServiceImpl extends AbstractService implements MetricsServic
/** The total cancelled queries. */
private Counter totalCancelledQueries;
+ /** The total errors while loading database resources */
+ private Counter totalDatabaseResourceLoadErrors;
+
/** The opened sessions */
private Gauge<Integer> activeSessions;
@@ -334,6 +338,9 @@ public class MetricsServiceImpl extends AbstractService implements MetricsServic
}
});
+ totalDatabaseResourceLoadErrors = metricRegistry.counter(MetricRegistry.name(DatabaseResourceService.class,
+ DatabaseResourceService.LOAD_RESOURCES_ERRORS));
+
totalAcceptedQueries = metricRegistry.counter(MetricRegistry.name(QueryExecutionService.class, "total-"
+ ACCEPTED_QUERIES));
@@ -486,6 +493,11 @@ public class MetricsServiceImpl extends AbstractService implements MetricsServic
}
@Override
+ public long getTotalDatabaseResourceLoadErrors() {
+ return totalDatabaseResourceLoadErrors.getCount();
+ }
+
+ @Override
public long getQueuedQueries() {
return queuedQueries.getValue();
}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/06e11557/lens-server/src/main/java/org/apache/lens/server/session/DatabaseResourceService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/session/DatabaseResourceService.java b/lens-server/src/main/java/org/apache/lens/server/session/DatabaseResourceService.java
index 608c679..2a5cce5 100644
--- a/lens-server/src/main/java/org/apache/lens/server/session/DatabaseResourceService.java
+++ b/lens-server/src/main/java/org/apache/lens/server/session/DatabaseResourceService.java
@@ -26,8 +26,10 @@ import java.net.URLClassLoader;
import java.nio.charset.Charset;
import java.util.*;
+import org.apache.lens.server.LensServices;
import org.apache.lens.server.api.LensConfConstants;
import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.metrics.MetricsService;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
@@ -48,6 +50,36 @@ public class DatabaseResourceService extends AbstractService {
private Map<String, ClassLoader> classLoaderCache;
private Map<String, List<LensSessionImpl.ResourceEntry>> dbResEntryMap;
+ /**
+ * The metrics service.
+ */
+ private MetricsService metricsService;
+
+ /**
+ * The Constant LOAD_RESOURCES_ERRORS.
+ */
+ public static final String LOAD_RESOURCES_ERRORS = "total-load-resources-errors";
+
+ /**
+ * Incr counter.
+ *
+ * @param counter the counter
+ */
+ private void incrCounter(String counter) {
+ getMetrics().incrCounter(DatabaseResourceService.class, counter);
+ }
+
+ /**
+ * Gets counter value.
+ *
+ * @param counter the counter
+ */
+ private long getCounter(String counter) {
+ return getMetrics().getCounter(DatabaseResourceService.class, counter);
+ }
+
+
+
public DatabaseResourceService(String name) {
super(name);
}
@@ -68,7 +100,8 @@ public class DatabaseResourceService extends AbstractService {
loadDbResourceEntries();
loadResources();
} catch (LensException e) {
- LOG.warn("Failed to load DB resource mapping, resources must be added explicitly to session");
+ incrCounter(LOAD_RESOURCES_ERRORS);
+ LOG.warn("Failed to load DB resource mapping, resources must be added explicitly to session.");
}
}
@@ -92,6 +125,7 @@ public class DatabaseResourceService extends AbstractService {
Path resTopDirPath = new Path(resTopDir);
serverFs = FileSystem.newInstance(resTopDirPath.toUri(), getHiveConf());
if (!serverFs.exists(resTopDirPath)) {
+ incrCounter(LOAD_RESOURCES_ERRORS);
LOG.warn("Database resource location does not exist - " + resTopDir + ". Database jars will not be available");
return;
}
@@ -190,15 +224,15 @@ public class DatabaseResourceService extends AbstractService {
/**
* Load DB specific resources
- * @throws LensException
*/
- public void loadResources() throws LensException {
+ public void loadResources() {
for (String db : dbResEntryMap.keySet()) {
try {
createClassLoader(db);
loadDBJars(db, dbResEntryMap.get(db), true);
LOG.info("Loaded resources for db " + db + " resources: " + dbResEntryMap.get(db));
} catch (LensException exc) {
+ incrCounter(LOAD_RESOURCES_ERRORS);
LOG.warn("Failed to load resources for db " + db, exc);
classLoaderCache.remove(db);
}
@@ -245,6 +279,7 @@ public class DatabaseResourceService extends AbstractService {
try {
newUrls.add(new URL(res.getLocation()));
} catch (MalformedURLException e) {
+ incrCounter(LOAD_RESOURCES_ERRORS);
LOG.error("Invalid URL " + res.getLocation() + " adding to db " + database, e);
}
}
@@ -292,4 +327,14 @@ public class DatabaseResourceService extends AbstractService {
public Collection<LensSessionImpl.ResourceEntry> getResourcesForDatabase(String database) {
return dbResEntryMap.get(database);
}
+
+ private MetricsService getMetrics() {
+ if (metricsService == null) {
+ metricsService = (MetricsService) LensServices.get().getService(MetricsService.NAME);
+ if (metricsService == null) {
+ throw new NullPointerException("Could not get metrics service");
+ }
+ }
+ return metricsService;
+ }
}