You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/03/07 01:07:28 UTC
[1/8] incubator-usergrid git commit: Added timer to elasticsearch
index addition.
Repository: incubator-usergrid
Updated Branches:
refs/heads/USERGRID-454 [created] d54290986
Added timer to elasticsearch index addition.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/00e7ca4b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/00e7ca4b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/00e7ca4b
Branch: refs/heads/USERGRID-454
Commit: 00e7ca4b599e14953e01dc608f90de7a4cdcbd9f
Parents: c1f5b78
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 4 15:03:15 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 4 15:03:15 2015 -0800
----------------------------------------------------------------------
.../persistence/index/impl/EsEntityIndexImpl.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/00e7ca4b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 49026e2..4200d13 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -18,6 +18,8 @@
package org.apache.usergrid.persistence.index.impl;
+import com.codahale.metrics.Meter;
+import com.codahale.metrics.Timer;
import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
@@ -26,6 +28,7 @@ import com.google.inject.assistedinject.Assisted;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.usergrid.persistence.core.future.BetterFuture;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.core.util.Health;
import org.apache.usergrid.persistence.core.util.ValidationUtils;
@@ -121,9 +124,16 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
private EsIndexCache aliasCache;
+ private final Timer flushTimer;
+
+ //private final Meter flushMeter;
+
+
@Inject
- public EsEntityIndexImpl( @Assisted final ApplicationScope appScope, final IndexFig config, final IndexBufferProducer indexBatchBufferProducer, final EsProvider provider, final EsIndexCache indexCache) {
+ public EsEntityIndexImpl( @Assisted final ApplicationScope appScope, final IndexFig config,
+ final IndexBufferProducer indexBatchBufferProducer, final EsProvider provider,
+ final EsIndexCache indexCache, final MetricsFactory metricsFactory) {
this.indexBatchBufferProducer = indexBatchBufferProducer;
ValidationUtils.validateApplicationScope( appScope );
this.applicationScope = appScope;
@@ -134,6 +144,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
this.alias = indexIdentifier.getAlias();
this.failureMonitor = new FailureMonitorImpl( config, provider );
this.aliasCache = indexCache;
+ this.flushTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "entity.index.flush" );
}
@Override
@@ -163,10 +174,13 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
.put("index.number_of_replicas", numberOfReplicas)
.put("action.write_consistency", writeConsistency )
.build();
+
+ Timer.Context timeNewIndexCreation = flushTimer.time();
final CreateIndexResponse cir = admin.indices().prepareCreate(indexName)
.setSettings(settings)
.execute()
.actionGet();
+ timeNewIndexCreation.stop();
logger.info("Created new Index Name [{}] ACK=[{}]", indexName, cir.isAcknowledged());
} catch (IndexAlreadyExistsException e) {
logger.info("Index Name [{}] already exists", indexName);
[2/8] incubator-usergrid git commit: Added ES query and index metrics.
Posted by sf...@apache.org.
Added ES query and index metrics.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/8d378683
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/8d378683
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/8d378683
Branch: refs/heads/USERGRID-454
Commit: 8d37868338b67a6d4e22d96d7316b1b94bc61837
Parents: 00e7ca4
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 4 15:45:57 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 4 15:45:57 2015 -0800
----------------------------------------------------------------------
.../index/impl/EsEntityIndexImpl.java | 82 ++++++++++++++------
1 file changed, 59 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/8d378683/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 4200d13..4d4dce9 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -109,6 +109,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
private final IndexFig config;
+ private final MetricsFactory metricsFactory;
+
//number of times to wait for the index to refresh properly.
private static final int MAX_WAITS = 10;
@@ -126,9 +128,6 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
private final Timer flushTimer;
- //private final Meter flushMeter;
-
-
@Inject
public EsEntityIndexImpl( @Assisted final ApplicationScope appScope, final IndexFig config,
@@ -144,6 +143,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
this.alias = indexIdentifier.getAlias();
this.failureMonitor = new FailureMonitorImpl( config, provider );
this.aliasCache = indexCache;
+ this.metricsFactory = metricsFactory;
this.flushTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "entity.index.flush" );
}
@@ -175,6 +175,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
.put("action.write_consistency", writeConsistency )
.build();
+ //Added For Graphite Metrics
Timer.Context timeNewIndexCreation = flushTimer.time();
final CreateIndexResponse cir = admin.indices().prepareCreate(indexName)
.setSettings(settings)
@@ -207,20 +208,28 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
String[] indexNames = getIndexes(AliasType.Write);
for (String currentIndex : indexNames){
+ //Added For Graphite Metrics
+ Timer.Context timeRemoveAlias = flushTimer.time();
isAck = adminClient.indices().prepareAliases().removeAlias(currentIndex,
alias.getWriteAlias()).execute().actionGet().isAcknowledged();
-
+ timeRemoveAlias.stop();
logger.info("Removed Index Name [{}] from Alias=[{}] ACK=[{}]", currentIndex, alias, isAck);
}
+ //Added For Graphite Metrics
+ Timer.Context timeAddReadAlias = flushTimer.time();
// add read alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getReadAlias()).execute().actionGet().isAcknowledged();
+ timeAddReadAlias.stop();
logger.info("Created new read Alias Name [{}] ACK=[{}]", alias.getReadAlias(), isAck);
- // add write alias
+ //Added For Graphite Metrics
+ Timer.Context timeAddWriteAlias = flushTimer.time();
+ //add write alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getWriteAlias()).execute().actionGet().isAcknowledged();
+ timeAddWriteAlias.stop();
logger.info("Created new write Alias Name [{}] ACK=[{}]", alias.getWriteAlias(), isAck);
aliasCache.invalidate(alias);
@@ -286,12 +295,14 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
XContentBuilder xcb = IndexingUtils.createDoubleStringIndexMapping(
XContentFactory.jsonBuilder(), "_default_");
+ //Added For Graphite Metrics
+ Timer.Context timePutIndex = flushTimer.time();
PutIndexTemplateResponse pitr = esProvider.getClient().admin().indices()
.preparePutTemplate("usergrid_template")
// set mapping as the default for all types
.setTemplate(config.getIndexPrefix() + "*").addMapping( "_default_", xcb )
.execute().actionGet();
-
+ timePutIndex.stop();
if ( !pitr.isAcknowledged() ) {
throw new IndexException( "Unable to create default mappings" );
}
@@ -301,7 +312,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
@Override
public EntityIndexBatch createBatch() {
EntityIndexBatch batch = new EsEntityIndexBatchImpl(
- applicationScope, esProvider.getClient(),indexBatchBufferProducer, config, this );
+ applicationScope, esProvider.getClient(),indexBatchBufferProducer, config, this, metricsFactory );
return batch;
}
@@ -377,7 +388,10 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
}
try {
+ //Added For Graphite Metrics
+ Timer.Context timeSearch = flushTimer.time();
searchResponse = srb.execute().actionGet();
+ timeSearch.stop();
}
catch ( Throwable t ) {
logger.error( "Unable to communicate with Elasticsearch", t );
@@ -402,7 +416,10 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
.prepareSearchScroll(scrollId).setScroll( cursorTimeout + "m" );
try {
+ //Added For Graphite Metrics
+ Timer.Context timeSearchCursor = flushTimer.time();
searchResponse = ssrb.execute().actionGet();
+ timeSearchCursor.stop();
}
catch ( Throwable t ) {
logger.error( "Unable to communicate with elasticsearch", t );
@@ -471,7 +488,10 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
applicationScope.getApplication().getUuid() );
return true;
}
+ //Added For Graphite Metrics
+ Timer.Context timeRefreshIndex = flushTimer.time();
esProvider.getClient().admin().indices().prepareRefresh( indexes ).execute().actionGet();
+ timeRefreshIndex.stop();
logger.debug("Refreshed indexes: {}", StringUtils.join(indexes, ", "));
return true;
}
@@ -514,7 +534,10 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final SearchResponse searchResponse;
try {
+ //Added For Graphite Metrics
+ Timer.Context timeEntityIndex = flushTimer.time();
searchResponse = srb.execute().actionGet();
+ timeEntityIndex.stop();
}
catch ( Throwable t ) {
logger.error( "Unable to communicate with elasticsearch" );
@@ -536,22 +559,28 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final TermQueryBuilder tqb = QueryBuilders.termQuery( ENTITYID_ID_FIELDNAME, idString );
+ //Added For Graphite Metrics
+ final Timer.Context timeDeleteAllVersions = flushTimer.time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery( alias.getWriteAlias() ).setQuery( tqb ).execute();
- response.addListener(new ActionListener<DeleteByQueryResponse>() {
+ response.addListener( new ActionListener<DeleteByQueryResponse>() {
+
@Override
- public void onResponse(DeleteByQueryResponse response) {
- logger.debug( "Deleted entity {}:{} from all index scopes with response status = {}",
- entityId.getType(), entityId.getUuid(), response.status().toString());
+ public void onResponse( DeleteByQueryResponse response ) {
+ timeDeleteAllVersions.stop();
+ logger
+ .debug( "Deleted entity {}:{} from all index scopes with response status = {}", entityId.getType(),
+ entityId.getUuid(), response.status().toString() );
checkDeleteByQueryResponse( tqb, response );
}
+
@Override
- public void onFailure(Throwable e) {
- logger.error("Deleted entity {}:{} from all index scopes with error {}",
- entityId.getType(), entityId.getUuid(), e);
+ public void onFailure( Throwable e ) {
+ logger.error( "Deleted entity {}:{} from all index scopes with error {}", entityId.getType(),
+ entityId.getUuid(), e);
}
@@ -570,26 +599,33 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
FilterBuilders.rangeFilter(ENTITY_VERSION_FIELDNAME).lt(version.timestamp())
);
+ //Added For Graphite Metrics
+ //Checks the time from the execute to the response below
+ final Timer.Context timeDeletePreviousVersions = flushTimer.time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery(alias.getWriteAlias()).setQuery(fqb).execute();
- response.addListener(new ActionListener<DeleteByQueryResponse>() {
+ //Added For Graphite Metrics
+ response.addListener( new ActionListener<DeleteByQueryResponse>() {
@Override
- public void onResponse(DeleteByQueryResponse response) {
+ public void onResponse( DeleteByQueryResponse response ) {
+ timeDeletePreviousVersions.stop();
//error message needs to be retooled so that it describes the entity more throughly
- logger.debug( "Deleted entity {}:{} with version {} from all "
- + "index scopes with response status = {}",
- entityId.getType(), entityId.getUuid(), version, response.status().toString() );
+ logger
+ .debug( "Deleted entity {}:{} with version {} from all " + "index scopes with response status = {}",
+ entityId.getType(), entityId.getUuid(), version, response.status().toString() );
checkDeleteByQueryResponse( fqb, response );
}
+
@Override
- public void onFailure(Throwable e) {
- logger.error("Deleted entity {}:{} from all index scopes with error {}",
- entityId.getType(), entityId.getUuid(), e);
+ public void onFailure( Throwable e ) {
+ logger.error( "Deleted entity {}:{} from all index scopes with error {}", entityId.getType(),
+ entityId.getUuid(), e );
}
- });
+ } );
+
return response;
}
[7/8] incubator-usergrid git commit: Fixed wiring issues present when
running tests.
Posted by sf...@apache.org.
Fixed wiring issues present when running tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/cb35127f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/cb35127f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/cb35127f
Branch: refs/heads/USERGRID-454
Commit: cb35127f30ea4d155ce93577b8a27547f93223fd
Parents: d3b469e
Author: GERey <gr...@apigee.com>
Authored: Thu Mar 5 12:32:07 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Thu Mar 5 12:32:07 2015 -0800
----------------------------------------------------------------------
.../org/apache/usergrid/corepersistence/CpEntityManager.java | 6 +++---
.../usergrid/corepersistence/CpEntityManagerFactory.java | 6 +++---
.../org/apache/usergrid/corepersistence/CpRelationManager.java | 6 ++++--
3 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cb35127f/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 4355638..e7efa6f 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -189,14 +189,13 @@ public class CpEntityManager implements EntityManager {
private boolean skipAggregateCounters;
- private final Timer corePersistanceTimer;
+ private Timer corePersistanceTimer;
// /** Short-term cache to keep us from reloading same Entity during single request. */
// private LoadingCache<EntityScope, org.apache.usergrid.persistence.model.entity.Entity> entityCache;
public CpEntityManager() {
- corePersistanceTimer = emf.getMetricsFactory().getTimer( CpEntityManager.class, "cp.entity.manager.timer" );
}
@@ -207,6 +206,7 @@ public class CpEntityManager implements EntityManager {
Preconditions.checkNotNull( applicationId, "applicationId must not be null" );
this.emf = ( CpEntityManagerFactory ) emf;
+ corePersistanceTimer = this.emf.getMetricsFactory().getTimer( CpEntityManager.class, "cp.entity.manager.timer" );
this.managerCache = this.emf.getManagerCache();
this.applicationId = applicationId;
@@ -689,7 +689,7 @@ public class CpEntityManager implements EntityManager {
@Override
public RelationManager getRelationManager( EntityRef entityRef ) {
CpRelationManager rmi = new CpRelationManager();
- rmi.init( this, emf, applicationId, entityRef, null );
+ rmi.init( this, emf, applicationId, entityRef, null, emf.getMetricsFactory() );
return rmi;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cb35127f/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index b247eae..3f439e6 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -18,6 +18,7 @@ package org.apache.usergrid.corepersistence;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
+import com.google.inject.Guice;
import com.google.inject.Injector;
import com.yammer.metrics.annotation.Metered;
import static java.lang.String.CASE_INSENSITIVE_ORDER;
@@ -109,15 +110,14 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
private final MetricsFactory metricsFactory;
public CpEntityManagerFactory(
- final CassandraService cassandraService, final CounterUtils counterUtils, final Injector injector,
- final MetricsFactory metricsFactory) {
+ final CassandraService cassandraService, final CounterUtils counterUtils, final Injector injector) {
this.cassandraService = cassandraService;
this.counterUtils = counterUtils;
this.injector = injector;
this.managerCache = injector.getInstance( ManagerCache.class );
this.dataMigrationManager = injector.getInstance( DataMigrationManager.class );
- this.metricsFactory = metricsFactory;
+ this.metricsFactory = injector.getInstance( MetricsFactory.class );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cb35127f/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index 786b0f5..499f841 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -192,6 +192,8 @@ public class CpRelationManager implements RelationManager {
private Timer cpRelationTimer;
+ private MetricsFactory metricsFactory;
+
public CpRelationManager() {}
@@ -221,7 +223,7 @@ public class CpRelationManager implements RelationManager {
this.cass = em.getCass(); // TODO: eliminate need for this via Core Persistence
this.indexBucketLocator = indexBucketLocator; // TODO: this also
-
+ this.metricsFactory = metricsFactory;
this.cpRelationTimer = metricsFactory.getTimer( CpRelationManager.class, "relation.manager.timer" );
// load the Core Persistence version of the head entity as well
@@ -1541,7 +1543,7 @@ public class CpRelationManager implements RelationManager {
private CpRelationManager getRelationManager( EntityRef headEntity ) {
CpRelationManager rmi = new CpRelationManager();
- rmi.init( em, emf, applicationId, headEntity, null );
+ rmi.init( em, emf, applicationId, headEntity, null, metricsFactory);
return rmi;
}
[4/8] incubator-usergrid git commit: Added metrics for the deindex
operation.
Posted by sf...@apache.org.
Added metrics for the deindex operation.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ff46465d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ff46465d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ff46465d
Branch: refs/heads/USERGRID-454
Commit: ff46465d2fee3907ee41f47ad83e5244f85e514d
Parents: 0f203b6
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 4 15:54:49 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 4 15:54:49 2015 -0800
----------------------------------------------------------------------
.../index/impl/EsEntityIndexBatchImpl.java | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ff46465d/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
index c2a3fdc..d987b29 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
@@ -21,6 +21,7 @@ package org.apache.usergrid.persistence.index.impl;
import java.util.*;
import org.apache.usergrid.persistence.core.future.BetterFuture;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.index.*;
import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.index.IndexRequestBuilder;
@@ -49,6 +50,9 @@ import org.apache.usergrid.persistence.model.field.StringField;
import org.apache.usergrid.persistence.model.field.UUIDField;
import org.apache.usergrid.persistence.model.field.value.EntityObject;
+import com.codahale.metrics.*;
+import com.codahale.metrics.Timer;
+
import rx.Observable;
import rx.functions.Func1;
@@ -81,9 +85,12 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
private final AliasedEntityIndex entityIndex;
private IndexOperationMessage container;
+ private final Timer batchTimer;
+
- public EsEntityIndexBatchImpl(final ApplicationScope applicationScope, final Client client,final IndexBufferProducer indexBatchBufferProducer,
- final IndexFig config, final AliasedEntityIndex entityIndex ) {
+ public EsEntityIndexBatchImpl(final ApplicationScope applicationScope, final Client client,
+ final IndexBufferProducer indexBatchBufferProducer,final IndexFig config,
+ final AliasedEntityIndex entityIndex,final MetricsFactory metricsFactory ) {
this.applicationScope = applicationScope;
this.client = client;
@@ -92,6 +99,7 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
this.indexIdentifier = IndexingUtils.createIndexIdentifier(config, applicationScope);
this.alias = indexIdentifier.getAlias();
this.refresh = config.isForcedRefresh();
+ this.batchTimer = metricsFactory.getTimer( EsEntityIndexBatchImpl.class, "entity.index.batch.timer" );
//constrained
this.container = new IndexOperationMessage();
}
@@ -167,6 +175,7 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
indexes = new String[]{indexIdentifier.getIndex(null)};
}
//get all indexes then flush everyone
+ Timer.Context timeDeindex = batchTimer.time();
Observable.from(indexes)
.map(new Func1<String, Object>() {
@Override
@@ -181,7 +190,7 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
return index;
}
}).toBlocking().last();
-
+ timeDeindex.stop();
log.debug("Deindexed Entity with index id " + indexId);
return this;
[5/8] incubator-usergrid git commit: Added Metrics factory to
CpEntityManager and its corresponding factory.
Posted by sf...@apache.org.
Added Metrics factory to CpEntityManager and its corresponding factory.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/b3d4eb2b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/b3d4eb2b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/b3d4eb2b
Branch: refs/heads/USERGRID-454
Commit: b3d4eb2b50336307fdece0fc2edc390c4b658fcd
Parents: ff46465
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 4 16:06:17 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 4 16:06:17 2015 -0800
----------------------------------------------------------------------
.../apache/usergrid/corepersistence/CpEntityManager.java | 10 +++++++++-
.../usergrid/corepersistence/CpEntityManagerFactory.java | 11 ++++++++---
2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b3d4eb2b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 5619382..10e7926 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -72,6 +72,7 @@ import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntityCollectionManager;
import org.apache.usergrid.persistence.collection.exception.WriteOptimisticVerifyException;
import org.apache.usergrid.persistence.collection.exception.WriteUniqueVerifyException;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.core.util.Health;
import org.apache.usergrid.persistence.entities.Application;
@@ -103,6 +104,7 @@ import org.apache.usergrid.utils.CompositeUtils;
import org.apache.usergrid.utils.StringUtils;
import org.apache.usergrid.utils.UUIDUtils;
+import com.codahale.metrics.Timer;
import com.google.common.base.Preconditions;
import com.netflix.hystrix.exception.HystrixRuntimeException;
import com.yammer.metrics.annotation.Metered;
@@ -187,12 +189,16 @@ public class CpEntityManager implements EntityManager {
private boolean skipAggregateCounters;
+ private final Timer corePersistanceTimer;
+
// /** Short-term cache to keep us from reloading same Entity during single request. */
// private LoadingCache<EntityScope, org.apache.usergrid.persistence.model.entity.Entity> entityCache;
- public CpEntityManager() {}
+ public CpEntityManager() {
+ corePersistanceTimer = emf.getMetricsFactory().getTimer( CpEntityManager.class, "cp.entity.manager.timer" );
+ }
@Override
public void init( EntityManagerFactory emf, UUID applicationId ) {
@@ -303,7 +309,9 @@ public class CpEntityManager implements EntityManager {
Entity entity = batchCreate( m, entityType, null, properties, importId, timestampUuid );
+ Timer.Context timeCassCreation = corePersistanceTimer.time();
m.execute();
+ timeCassCreation.stop();
return entity;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b3d4eb2b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index 9aa36a0..b247eae 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -44,6 +44,7 @@ import org.apache.usergrid.persistence.cassandra.Setup;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntityCollectionManager;
import org.apache.usergrid.persistence.collection.impl.CollectionScopeImpl;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.core.migration.data.DataMigrationManager;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
@@ -105,17 +106,18 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
private CassandraService cassandraService;
private CounterUtils counterUtils;
private Injector injector;
-
+ private final MetricsFactory metricsFactory;
public CpEntityManagerFactory(
- final CassandraService cassandraService, final CounterUtils counterUtils, final Injector injector) {
+ final CassandraService cassandraService, final CounterUtils counterUtils, final Injector injector,
+ final MetricsFactory metricsFactory) {
this.cassandraService = cassandraService;
this.counterUtils = counterUtils;
this.injector = injector;
this.managerCache = injector.getInstance( ManagerCache.class );
this.dataMigrationManager = injector.getInstance( DataMigrationManager.class );
-
+ this.metricsFactory = metricsFactory;
}
@@ -194,6 +196,9 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
return em;
}
+ public MetricsFactory getMetricsFactory(){
+ return metricsFactory;
+ }
@Override
public UUID createApplication(String organizationName, String name) throws Exception {
[8/8] incubator-usergrid git commit: Added unique timers for each
method. Also added TODO for places where I was unsure if a graphite timer was
needed.
Posted by sf...@apache.org.
Added unique timers for each method. Also added TODO for places where I was unsure if a graphite timer was needed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d5429098
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d5429098
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d5429098
Branch: refs/heads/USERGRID-454
Commit: d54290986f8eacf3e7415223ebd7ab239f7e9715
Parents: cb35127
Author: GERey <gr...@apigee.com>
Authored: Thu Mar 5 15:57:24 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Thu Mar 5 15:57:24 2015 -0800
----------------------------------------------------------------------
.../corepersistence/CpEntityManager.java | 83 ++++++++++++++------
.../corepersistence/CpRelationManager.java | 15 ++--
.../index/impl/EsEntityIndexImpl.java | 38 +++++----
3 files changed, 90 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d5429098/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index e7efa6f..fa16f07 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -189,8 +189,6 @@ public class CpEntityManager implements EntityManager {
private boolean skipAggregateCounters;
- private Timer corePersistanceTimer;
-
// /** Short-term cache to keep us from reloading same Entity during single request. */
// private LoadingCache<EntityScope, org.apache.usergrid.persistence.model.entity.Entity> entityCache;
@@ -206,7 +204,6 @@ public class CpEntityManager implements EntityManager {
Preconditions.checkNotNull( applicationId, "applicationId must not be null" );
this.emf = ( CpEntityManagerFactory ) emf;
- corePersistanceTimer = this.emf.getMetricsFactory().getTimer( CpEntityManager.class, "cp.entity.manager.timer" );
this.managerCache = this.emf.getManagerCache();
this.applicationId = applicationId;
@@ -310,7 +307,7 @@ public class CpEntityManager implements EntityManager {
Entity entity = batchCreate( m, entityType, null, properties, importId, timestampUuid );
//Adding graphite metrics
- Timer.Context timeCassCreation = corePersistanceTimer.time();
+ Timer.Context timeCassCreation = this.emf.getMetricsFactory().getTimer( CpEntityManager.class, "cp.entity.create.timer" ).time();
m.execute();
timeCassCreation.stop();
@@ -344,7 +341,9 @@ public class CpEntityManager implements EntityManager {
A entity = batchCreate( m, entityType, entityClass, properties, importId, timestampUuid );
//Adding graphite metrics
- Timer.Context timeEntityCassCreation = corePersistanceTimer.time();
+ Timer.Context timeEntityCassCreation = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.create.batch.timer" ).time();
m.execute();
timeEntityCassCreation.stop();
@@ -987,6 +986,7 @@ public class CpEntityManager implements EntityManager {
cpEntity.getId().getType(), cpEntity.getId().getUuid(), cpEntity.getVersion()
} );
+ //TODO: does this call and others like it need a graphite reporter?
cpEntity = ecm.write( cpEntity ).toBlockingObservable().last();
logger.debug( "Wrote {}:{} version {}", new Object[] {
@@ -994,7 +994,9 @@ public class CpEntityManager implements EntityManager {
} );
//Adding graphite metrics
- Timer.Context timeESBatch = corePersistanceTimer.time();
+ Timer.Context timeESBatch = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.es.delete.property.timer" ).time();
BetterFuture future = ei.createBatch().index( defaultIndexScope, cpEntity ).execute();
timeESBatch.stop();
// update in all containing collections and connection indexes
@@ -1034,7 +1036,9 @@ public class CpEntityManager implements EntityManager {
batch = batchUpdateDictionary( batch, entity, dictionaryName, elementName, elementValue, false, timestampUuid );
//Adding graphite metrics
- Timer.Context timeDictionaryCreation = corePersistanceTimer.time();
+ Timer.Context timeDictionaryCreation = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.add.dictionary.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeDictionaryCreation.stop();
}
@@ -1058,7 +1062,9 @@ public class CpEntityManager implements EntityManager {
}
//Adding graphite metrics
- Timer.Context timeAddingSetDictionary = corePersistanceTimer.time();
+ Timer.Context timeAddingSetDictionary = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.add.dictionary.set.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeAddingSetDictionary.stop();
}
@@ -1083,7 +1089,9 @@ public class CpEntityManager implements EntityManager {
}
//Adding graphite metrics
- Timer.Context timeMapDictionary = corePersistanceTimer.time();
+ Timer.Context timeMapDictionary = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.add.dictionary.map.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeMapDictionary.stop();
}
@@ -1263,7 +1271,9 @@ public class CpEntityManager implements EntityManager {
batch = batchUpdateDictionary( batch, entity, dictionaryName, elementName, true, timestampUuid );
//Adding graphite metrics
- Timer.Context timeRemoveDictionary = corePersistanceTimer.time();
+ Timer.Context timeRemoveDictionary = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.remove.dictionary.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeRemoveDictionary.stop();
@@ -1602,7 +1612,9 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.key( ownerId, DICTIONARY_SETS ), Schema.DICTIONARY_ROLENAMES, null,
timestamp );
//Adding graphite metrics
- Timer.Context timeCreateBatchRole= corePersistanceTimer.time();
+ Timer.Context timeCreateBatchRole= this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.create.role.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeCreateBatchRole.stop();
@@ -1619,7 +1631,9 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( roleName ), permission, ByteBuffer.allocate( 0 ), timestamp );
//Adding graphite metrics
- Timer.Context timeGrantRolePermission = corePersistanceTimer.time();
+ Timer.Context timeGrantRolePermission = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.create.role.permission.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeGrantRolePermission.stop();
}
@@ -1637,7 +1651,9 @@ public class CpEntityManager implements EntityManager {
getRolePermissionsKey( roleName ), permission, ByteBuffer.allocate( 0 ), timestamp);
}
//Adding graphite metrics
- Timer.Context timeGrantRolePermissions = corePersistanceTimer.time();
+ Timer.Context timeGrantRolePermissions = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.create.role.permissions.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeGrantRolePermissions.stop();
@@ -1671,12 +1687,14 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.addDeleteToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( roleName ), permission, timestamp );
//Adding graphite metrics
- Timer.Context timeRevokeRolePermission = corePersistanceTimer.time();
+ Timer.Context timeRevokeRolePermission = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.revoke.role.permissions.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeRevokeRolePermission.stop();
}
-
+//TODO: does this need graphite monitoring
@Override
public Set<String> getRolePermissions( String roleName ) throws Exception {
roleName = roleName.toLowerCase();
@@ -1684,7 +1702,7 @@ public class CpEntityManager implements EntityManager {
ApplicationCF.ENTITY_DICTIONARIES, getRolePermissionsKey( roleName ) );
}
-
+//TODO: does this need graphite monitoring
@Override
public void deleteRole( String roleName ) throws Exception {
roleName = roleName.toLowerCase();
@@ -1739,7 +1757,9 @@ public class CpEntityManager implements EntityManager {
getRolePermissionsKey( groupId, roleName ), permission, ByteBuffer.allocate( 0 ), timestamp );
//Adding graphite metrics
- Timer.Context timeGroupRolePermission = corePersistanceTimer.time();
+ Timer.Context timeGroupRolePermission = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.grant.group.permission.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeGroupRolePermission.stop();
}
@@ -1754,7 +1774,9 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.addDeleteToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( groupId, roleName ), permission, timestamp );
//Adding graphite metrics
- Timer.Context timeRevokeGroupRolePermission = corePersistanceTimer.time();
+ Timer.Context timeRevokeGroupRolePermission = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.revoke.group.permission.timer" ).time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
timeRevokeGroupRolePermission.stop();
}
@@ -1906,7 +1928,10 @@ public class CpEntityManager implements EntityManager {
category, counterName, value, cassandraTimestamp / 1000, cassandraTimestamp );
//Adding graphite metrics
- Timer.Context timeIncrementAggregateCounters = corePersistanceTimer.time();
+ Timer.Context timeIncrementAggregateCounters = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.increment.aggregate.counters.timer" )
+ .time();
CassandraPersistenceUtils.batchExecute( m, CassandraService.RETRY_COUNT );
timeIncrementAggregateCounters.stop();
}
@@ -1934,7 +1959,9 @@ public class CpEntityManager implements EntityManager {
q.setRange( start, finish, false, ALL_COUNT );
//Adding graphite metrics
- Timer.Context timeGetAggregateCounters = corePersistanceTimer.time();
+ Timer.Context timeGetAggregateCounters = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.get.aggregate.counters.timer" ).time();
QueryResult<CounterSlice<Long>> r = q.setKey(
counterUtils.getAggregateCounterRow( counterName, userId, groupId, queueId, category, resolution ) )
.execute();
@@ -2009,7 +2036,9 @@ public class CpEntityManager implements EntityManager {
q.setColumnFamily( APPLICATION_AGGREGATE_COUNTERS.toString() );
q.setRange( start, finish, false, ALL_COUNT );
//Adding graphite metrics
- Timer.Context timeGetAggregateCounters = corePersistanceTimer.time();
+ Timer.Context timeGetAggregateCounters = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.get.aggregate.counters.query.timer" ).time();
QueryResult<CounterRows<String, Long>> rows = q.setKeys( selections.keySet() ).execute();
timeGetAggregateCounters.stop();
@@ -2136,7 +2165,9 @@ public class CpEntityManager implements EntityManager {
q.setColumnFamily( ENTITY_COUNTERS.toString() );
q.setRange( null, null, false, ALL_COUNT );
//Adding graphite metrics
- Timer.Context timeEntityCounters = corePersistanceTimer.time();
+ Timer.Context timeEntityCounters = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.get.entity.counters.timer" ).time();
QueryResult<CounterSlice<String>> r = q.setKey( entityId ).execute();
timeEntityCounters.stop();
for ( HCounterColumn<String> column : r.get().getColumns() ) {
@@ -2163,7 +2194,9 @@ public class CpEntityManager implements EntityManager {
m, applicationId, userId, groupId, null, category, counters, timestamp );
//Adding graphite metrics
- Timer.Context timeIncrementCounters = corePersistanceTimer.time();
+ Timer.Context timeIncrementCounters = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.increment.aggregate.counters.timer" ).time();
CassandraPersistenceUtils.batchExecute( m, CassandraService.RETRY_COUNT );
timeIncrementCounters.stop();
}
@@ -2897,7 +2930,9 @@ public class CpEntityManager implements EntityManager {
// batch.index(appAllTypesScope, memberEntity);
//Adding graphite metrics
- Timer.Context timeIndexEntityCollection = corePersistanceTimer.time();
+ Timer.Context timeIndexEntityCollection = this.emf.getMetricsFactory()
+ .getTimer( CpEntityManager.class,
+ "cp.entity.es.index.entity.to.collection.timer" ).time();
batch.execute();
timeIndexEntityCollection.stop();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d5429098/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index 499f841..f5d59d9 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -121,7 +121,6 @@ import rx.functions.Func1;
import static java.util.Arrays.asList;
import static me.prettyprint.hector.api.factory.HFactory.createMutator;
-import static org.apache.usergrid.corepersistence.util.CpEntityMapUtils.entityToCpEntity;
import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getCollectionScopeNameFromEntityType;
import static org.apache.usergrid.persistence.Schema.COLLECTION_ROLES;
import static org.apache.usergrid.persistence.Schema.DICTIONARY_CONNECTED_ENTITIES;
@@ -190,8 +189,6 @@ public class CpRelationManager implements RelationManager {
private ResultsLoaderFactory resultsLoaderFactory;
- private Timer cpRelationTimer;
-
private MetricsFactory metricsFactory;
public CpRelationManager() {}
@@ -224,7 +221,6 @@ public class CpRelationManager implements RelationManager {
this.cass = em.getCass(); // TODO: eliminate need for this via Core Persistence
this.indexBucketLocator = indexBucketLocator; // TODO: this also
this.metricsFactory = metricsFactory;
- this.cpRelationTimer = metricsFactory.getTimer( CpRelationManager.class, "relation.manager.timer" );
// load the Core Persistence version of the head entity as well
this.headEntityScope = getCollectionScopeNameFromEntityType(
@@ -449,7 +445,8 @@ public class CpRelationManager implements RelationManager {
} ).count().toBlocking().lastOrDefault( 0 );
//Adding graphite metrics
- Timer.Context timeElasticIndexBatch = cpRelationTimer.time();
+ Timer.Context timeElasticIndexBatch = metricsFactory
+ .getTimer( CpRelationManager.class, "relation.manager.es.update.collection" ).time();
entityIndexBatch.execute();
timeElasticIndexBatch.stop();
@@ -1075,7 +1072,8 @@ public class CpRelationManager implements RelationManager {
Mutator<ByteBuffer> m = createMutator( ko, be );
batchUpdateEntityConnection( m, false, connection, UUIDGenerator.newTimeUUID() );
//Added Graphite Metrics
- Timer.Context timeElasticIndexBatch = cpRelationTimer.time();
+ Timer.Context timeElasticIndexBatch = metricsFactory
+ .getTimer( CpRelationManager.class, "relation.manager.es.create.connection.timer" ).time();
batchExecute( m, CassandraService.RETRY_COUNT );
timeElasticIndexBatch.stop();
@@ -1251,7 +1249,8 @@ public class CpRelationManager implements RelationManager {
m, true, ( ConnectionRefImpl ) connectionRef, UUIDGenerator.newTimeUUID() );
//Added Graphite Metrics
- Timer.Context timeDeleteConnections = cpRelationTimer.time();
+ Timer.Context timeDeleteConnections = metricsFactory
+ .getTimer( CpRelationManager.class, "relation.manager.cassandra.delete.connection.batch.timer" ).time();
batchExecute( m, CassandraService.RETRY_COUNT );
timeDeleteConnections.stop();
@@ -1309,7 +1308,7 @@ public class CpRelationManager implements RelationManager {
// batch.deindex( allTypesIndexScope, targetEntity );
//Added Graphite Metrics
- Timer.Context timeDeleteConnection = cpRelationTimer.time();
+ Timer.Context timeDeleteConnection = metricsFactory.getTimer( CpRelationManager.class, "relation.manager.es.delete.connection.batch.timer" ).time();
batch.execute();
timeDeleteConnection.stop();
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d5429098/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index f85692f..2cbe51f 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -126,7 +126,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
private EsIndexCache aliasCache;
- private final Timer indexTimer;
+// private final Timer indexTimer;
@Inject
@@ -139,12 +139,11 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
this.esProvider = provider;
this.config = config;
this.cursorTimeout = config.getQueryCursorTimeout();
- this.indexIdentifier = IndexingUtils.createIndexIdentifier(config, appScope);
+ this.indexIdentifier = IndexingUtils.createIndexIdentifier( config, appScope );
this.alias = indexIdentifier.getAlias();
this.failureMonitor = new FailureMonitorImpl( config, provider );
this.aliasCache = indexCache;
this.metricsFactory = metricsFactory;
- this.indexTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "entity.index.timer" );
}
@Override
@@ -176,7 +175,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
.build();
//Added For Graphite Metrics
- Timer.Context timeNewIndexCreation = indexTimer.time();
+ Timer.Context timeNewIndexCreation = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.add.index.timer" ).time();
final CreateIndexResponse cir = admin.indices().prepareCreate(indexName)
.setSettings(settings)
.execute()
@@ -209,7 +209,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
for (String currentIndex : indexNames){
//Added For Graphite Metrics
- Timer.Context timeRemoveAlias = indexTimer.time();
+ Timer.Context timeRemoveAlias = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.remove.index.alias.timer" ).time();
isAck = adminClient.indices().prepareAliases().removeAlias(currentIndex,
alias.getWriteAlias()).execute().actionGet().isAcknowledged();
timeRemoveAlias.stop();
@@ -217,7 +218,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
}
//Added For Graphite Metrics
- Timer.Context timeAddReadAlias = indexTimer.time();
+ Timer.Context timeAddReadAlias = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.add.read.alias.timer" ).time();
// add read alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getReadAlias()).execute().actionGet().isAcknowledged();
@@ -225,7 +227,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
logger.info("Created new read Alias Name [{}] ACK=[{}]", alias.getReadAlias(), isAck);
//Added For Graphite Metrics
- Timer.Context timeAddWriteAlias = indexTimer.time();
+ Timer.Context timeAddWriteAlias = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.add.write.alias.timer" ).time();
//add write alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getWriteAlias()).execute().actionGet().isAcknowledged();
@@ -296,7 +299,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
XContentFactory.jsonBuilder(), "_default_");
//Added For Graphite Metrics
- Timer.Context timePutIndex = indexTimer.time();
+ Timer.Context timePutIndex = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.create.mapping.timer" ).time();
PutIndexTemplateResponse pitr = esProvider.getClient().admin().indices()
.preparePutTemplate("usergrid_template")
// set mapping as the default for all types
@@ -389,7 +393,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
try {
//Added For Graphite Metrics
- Timer.Context timeSearch = indexTimer.time();
+ Timer.Context timeSearch = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.search.timer" ).time();
searchResponse = srb.execute().actionGet();
timeSearch.stop();
}
@@ -417,7 +422,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
try {
//Added For Graphite Metrics
- Timer.Context timeSearchCursor = indexTimer.time();
+ Timer.Context timeSearchCursor = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.search.cursor.timer" ).time();
searchResponse = ssrb.execute().actionGet();
timeSearchCursor.stop();
}
@@ -489,7 +495,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
return true;
}
//Added For Graphite Metrics
- Timer.Context timeRefreshIndex = indexTimer.time();
+ Timer.Context timeRefreshIndex = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.refresh.timer" ).time();
esProvider.getClient().admin().indices().prepareRefresh( indexes ).execute().actionGet();
timeRefreshIndex.stop();
logger.debug("Refreshed indexes: {}", StringUtils.join(indexes, ", "));
@@ -535,7 +542,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final SearchResponse searchResponse;
try {
//Added For Graphite Metrics
- Timer.Context timeEntityIndex = indexTimer.time();
+ Timer.Context timeEntityIndex = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.get.versions.timer" ).time();
searchResponse = srb.execute().actionGet();
timeEntityIndex.stop();
}
@@ -560,7 +568,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final TermQueryBuilder tqb = QueryBuilders.termQuery( ENTITYID_ID_FIELDNAME, idString );
//Added For Graphite Metrics
- final Timer.Context timeDeleteAllVersions = indexTimer.time();
+ final Timer.Context timeDeleteAllVersions = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.delete.all.versions.timer" ).time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery( alias.getWriteAlias() ).setQuery( tqb ).execute();
@@ -601,7 +610,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
//Added For Graphite Metrics
//Checks the time from the execute to the response below
- final Timer.Context timeDeletePreviousVersions = indexTimer.time();
+ final Timer.Context timeDeletePreviousVersions = metricsFactory
+ .getTimer( EsEntityIndexImpl.class, "es.entity.index.delete.previous.versions.timer" ).time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery(alias.getWriteAlias()).setQuery(fqb).execute();
[3/8] incubator-usergrid git commit: Changed timer name to be more
descriptive
Posted by sf...@apache.org.
Changed timer name to be more descriptive
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/0f203b67
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/0f203b67
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/0f203b67
Branch: refs/heads/USERGRID-454
Commit: 0f203b67fb3f0f2d1525ac24ce51b47232931937
Parents: 8d37868
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 4 15:47:01 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 4 15:47:01 2015 -0800
----------------------------------------------------------------------
.../index/impl/EsEntityIndexImpl.java | 26 ++++++++++----------
1 file changed, 13 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/0f203b67/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 4d4dce9..f85692f 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -126,7 +126,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
private EsIndexCache aliasCache;
- private final Timer flushTimer;
+ private final Timer indexTimer;
@Inject
@@ -144,7 +144,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
this.failureMonitor = new FailureMonitorImpl( config, provider );
this.aliasCache = indexCache;
this.metricsFactory = metricsFactory;
- this.flushTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "entity.index.flush" );
+ this.indexTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "entity.index.timer" );
}
@Override
@@ -176,7 +176,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
.build();
//Added For Graphite Metrics
- Timer.Context timeNewIndexCreation = flushTimer.time();
+ Timer.Context timeNewIndexCreation = indexTimer.time();
final CreateIndexResponse cir = admin.indices().prepareCreate(indexName)
.setSettings(settings)
.execute()
@@ -209,7 +209,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
for (String currentIndex : indexNames){
//Added For Graphite Metrics
- Timer.Context timeRemoveAlias = flushTimer.time();
+ Timer.Context timeRemoveAlias = indexTimer.time();
isAck = adminClient.indices().prepareAliases().removeAlias(currentIndex,
alias.getWriteAlias()).execute().actionGet().isAcknowledged();
timeRemoveAlias.stop();
@@ -217,7 +217,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
}
//Added For Graphite Metrics
- Timer.Context timeAddReadAlias = flushTimer.time();
+ Timer.Context timeAddReadAlias = indexTimer.time();
// add read alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getReadAlias()).execute().actionGet().isAcknowledged();
@@ -225,7 +225,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
logger.info("Created new read Alias Name [{}] ACK=[{}]", alias.getReadAlias(), isAck);
//Added For Graphite Metrics
- Timer.Context timeAddWriteAlias = flushTimer.time();
+ Timer.Context timeAddWriteAlias = indexTimer.time();
//add write alias
isAck = adminClient.indices().prepareAliases().addAlias(
indexName, alias.getWriteAlias()).execute().actionGet().isAcknowledged();
@@ -296,7 +296,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
XContentFactory.jsonBuilder(), "_default_");
//Added For Graphite Metrics
- Timer.Context timePutIndex = flushTimer.time();
+ Timer.Context timePutIndex = indexTimer.time();
PutIndexTemplateResponse pitr = esProvider.getClient().admin().indices()
.preparePutTemplate("usergrid_template")
// set mapping as the default for all types
@@ -389,7 +389,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
try {
//Added For Graphite Metrics
- Timer.Context timeSearch = flushTimer.time();
+ Timer.Context timeSearch = indexTimer.time();
searchResponse = srb.execute().actionGet();
timeSearch.stop();
}
@@ -417,7 +417,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
try {
//Added For Graphite Metrics
- Timer.Context timeSearchCursor = flushTimer.time();
+ Timer.Context timeSearchCursor = indexTimer.time();
searchResponse = ssrb.execute().actionGet();
timeSearchCursor.stop();
}
@@ -489,7 +489,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
return true;
}
//Added For Graphite Metrics
- Timer.Context timeRefreshIndex = flushTimer.time();
+ Timer.Context timeRefreshIndex = indexTimer.time();
esProvider.getClient().admin().indices().prepareRefresh( indexes ).execute().actionGet();
timeRefreshIndex.stop();
logger.debug("Refreshed indexes: {}", StringUtils.join(indexes, ", "));
@@ -535,7 +535,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final SearchResponse searchResponse;
try {
//Added For Graphite Metrics
- Timer.Context timeEntityIndex = flushTimer.time();
+ Timer.Context timeEntityIndex = indexTimer.time();
searchResponse = srb.execute().actionGet();
timeEntityIndex.stop();
}
@@ -560,7 +560,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
final TermQueryBuilder tqb = QueryBuilders.termQuery( ENTITYID_ID_FIELDNAME, idString );
//Added For Graphite Metrics
- final Timer.Context timeDeleteAllVersions = flushTimer.time();
+ final Timer.Context timeDeleteAllVersions = indexTimer.time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery( alias.getWriteAlias() ).setQuery( tqb ).execute();
@@ -601,7 +601,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
//Added For Graphite Metrics
//Checks the time from the execute to the response below
- final Timer.Context timeDeletePreviousVersions = flushTimer.time();
+ final Timer.Context timeDeletePreviousVersions = indexTimer.time();
final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient()
.prepareDeleteByQuery(alias.getWriteAlias()).setQuery(fqb).execute();
[6/8] incubator-usergrid git commit: Added timer for cpEntityManager
and CpRelationManager to cover commands made by entity managers.
Posted by sf...@apache.org.
Added timer for cpEntityManager and CpRelationManager to cover commands made by entity managers.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d3b469ea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d3b469ea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d3b469ea
Branch: refs/heads/USERGRID-454
Commit: d3b469eae7047c1cca20ed7c18727ba78f2618b6
Parents: b3d4eb2
Author: GERey <gr...@apigee.com>
Authored: Thu Mar 5 11:28:05 2015 -0800
Committer: GERey <gr...@apigee.com>
Committed: Thu Mar 5 11:28:05 2015 -0800
----------------------------------------------------------------------
.../corepersistence/CpEntityManager.java | 62 +++++++++++++++++++-
.../corepersistence/CpRelationManager.java | 25 +++++++-
.../cassandra/CassandraPersistenceUtils.java | 2 +-
3 files changed, 82 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3b469ea/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 10e7926..4355638 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -309,6 +309,7 @@ public class CpEntityManager implements EntityManager {
Entity entity = batchCreate( m, entityType, null, properties, importId, timestampUuid );
+ //Adding graphite metrics
Timer.Context timeCassCreation = corePersistanceTimer.time();
m.execute();
timeCassCreation.stop();
@@ -342,7 +343,10 @@ public class CpEntityManager implements EntityManager {
A entity = batchCreate( m, entityType, entityClass, properties, importId, timestampUuid );
+ //Adding graphite metrics
+ Timer.Context timeEntityCassCreation = corePersistanceTimer.time();
m.execute();
+ timeEntityCassCreation.stop();
return entity;
}
@@ -989,8 +993,10 @@ public class CpEntityManager implements EntityManager {
cpEntity.getId().getType(), cpEntity.getId().getUuid(), cpEntity.getVersion()
} );
-
+ //Adding graphite metrics
+ Timer.Context timeESBatch = corePersistanceTimer.time();
BetterFuture future = ei.createBatch().index( defaultIndexScope, cpEntity ).execute();
+ timeESBatch.stop();
// update in all containing collections and connection indexes
CpRelationManager rm = ( CpRelationManager ) getRelationManager( entityRef );
rm.updateContainingCollectionAndCollectionIndexes( cpEntity );
@@ -1027,7 +1033,10 @@ public class CpEntityManager implements EntityManager {
batch = batchUpdateDictionary( batch, entity, dictionaryName, elementName, elementValue, false, timestampUuid );
+ //Adding graphite metrics
+ Timer.Context timeDictionaryCreation = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeDictionaryCreation.stop();
}
@@ -1048,7 +1057,10 @@ public class CpEntityManager implements EntityManager {
batch = batchUpdateDictionary( batch, entity, dictionaryName, elementValue, null, false, timestampUuid );
}
+ //Adding graphite metrics
+ Timer.Context timeAddingSetDictionary = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeAddingSetDictionary.stop();
}
@@ -1070,7 +1082,10 @@ public class CpEntityManager implements EntityManager {
elementValue.getValue(), false, timestampUuid );
}
+ //Adding graphite metrics
+ Timer.Context timeMapDictionary = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeMapDictionary.stop();
}
@@ -1247,8 +1262,11 @@ public class CpEntityManager implements EntityManager {
Mutator<ByteBuffer> batch = createMutator( cass.getApplicationKeyspace( applicationId ), be );
batch = batchUpdateDictionary( batch, entity, dictionaryName, elementName, true, timestampUuid );
-
+ //Adding graphite metrics
+ Timer.Context timeRemoveDictionary = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeRemoveDictionary.stop();
+
}
@@ -1583,8 +1601,10 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.addInsertToMutator( batch, ENTITY_DICTIONARIES,
CassandraPersistenceUtils.key( ownerId, DICTIONARY_SETS ), Schema.DICTIONARY_ROLENAMES, null,
timestamp );
-
+ //Adding graphite metrics
+ Timer.Context timeCreateBatchRole= corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeCreateBatchRole.stop();
return get( id, Role.class );
}
@@ -1598,7 +1618,10 @@ public class CpEntityManager implements EntityManager {
Mutator<ByteBuffer> batch = createMutator( cass.getApplicationKeyspace( applicationId ), be );
CassandraPersistenceUtils.addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( roleName ), permission, ByteBuffer.allocate( 0 ), timestamp );
+ //Adding graphite metrics
+ Timer.Context timeGrantRolePermission = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeGrantRolePermission.stop();
}
@@ -1613,7 +1636,11 @@ public class CpEntityManager implements EntityManager {
CassandraPersistenceUtils.addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( roleName ), permission, ByteBuffer.allocate( 0 ), timestamp);
}
+ //Adding graphite metrics
+ Timer.Context timeGrantRolePermissions = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeGrantRolePermissions.stop();
+
}
@@ -1643,7 +1670,10 @@ public class CpEntityManager implements EntityManager {
Mutator<ByteBuffer> batch = createMutator( cass.getApplicationKeyspace( applicationId ), be);
CassandraPersistenceUtils.addDeleteToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( roleName ), permission, timestamp );
+ //Adding graphite metrics
+ Timer.Context timeRevokeRolePermission = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeRevokeRolePermission.stop();
}
@@ -1707,7 +1737,11 @@ public class CpEntityManager implements EntityManager {
Mutator<ByteBuffer> batch = createMutator( cass.getApplicationKeyspace( applicationId ), be );
CassandraPersistenceUtils.addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( groupId, roleName ), permission, ByteBuffer.allocate( 0 ), timestamp );
+
+ //Adding graphite metrics
+ Timer.Context timeGroupRolePermission = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeGroupRolePermission.stop();
}
@@ -1719,7 +1753,10 @@ public class CpEntityManager implements EntityManager {
Mutator<ByteBuffer> batch = createMutator( cass.getApplicationKeyspace( applicationId ), be );
CassandraPersistenceUtils.addDeleteToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES,
getRolePermissionsKey( groupId, roleName ), permission, timestamp );
+ //Adding graphite metrics
+ Timer.Context timeRevokeGroupRolePermission = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( batch, CassandraService.RETRY_COUNT );
+ timeRevokeGroupRolePermission.stop();
}
@@ -1868,7 +1905,10 @@ public class CpEntityManager implements EntityManager {
counterUtils.batchIncrementAggregateCounters( m, applicationId, userId, groupId, null,
category, counterName, value, cassandraTimestamp / 1000, cassandraTimestamp );
+ //Adding graphite metrics
+ Timer.Context timeIncrementAggregateCounters = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( m, CassandraService.RETRY_COUNT );
+ timeIncrementAggregateCounters.stop();
}
}
@@ -1893,9 +1933,12 @@ public class CpEntityManager implements EntityManager {
q.setColumnFamily( APPLICATION_AGGREGATE_COUNTERS.toString() );
q.setRange( start, finish, false, ALL_COUNT );
+ //Adding graphite metrics
+ Timer.Context timeGetAggregateCounters = corePersistanceTimer.time();
QueryResult<CounterSlice<Long>> r = q.setKey(
counterUtils.getAggregateCounterRow( counterName, userId, groupId, queueId, category, resolution ) )
.execute();
+ timeGetAggregateCounters.stop();
List<AggregateCounter> counters = new ArrayList<AggregateCounter>();
for ( HCounterColumn<Long> column : r.get().getColumns() ) {
@@ -1965,7 +2008,11 @@ public class CpEntityManager implements EntityManager {
MultigetSliceCounterQuery<String, Long> q = HFactory.createMultigetSliceCounterQuery( ko, se, le );
q.setColumnFamily( APPLICATION_AGGREGATE_COUNTERS.toString() );
q.setRange( start, finish, false, ALL_COUNT );
+ //Adding graphite metrics
+ Timer.Context timeGetAggregateCounters = corePersistanceTimer.time();
QueryResult<CounterRows<String, Long>> rows = q.setKeys( selections.keySet() ).execute();
+ timeGetAggregateCounters.stop();
+
List<AggregateCounterSet> countSets = new ArrayList<AggregateCounterSet>();
for ( CounterRow<String, Long> r : rows.get() ) {
@@ -2088,7 +2135,10 @@ public class CpEntityManager implements EntityManager {
SliceCounterQuery<UUID, String> q = createCounterSliceQuery( ko, ue, se );
q.setColumnFamily( ENTITY_COUNTERS.toString() );
q.setRange( null, null, false, ALL_COUNT );
+ //Adding graphite metrics
+ Timer.Context timeEntityCounters = corePersistanceTimer.time();
QueryResult<CounterSlice<String>> r = q.setKey( entityId ).execute();
+ timeEntityCounters.stop();
for ( HCounterColumn<String> column : r.get().getColumns() ) {
counters.put( column.getName(), column.getValue() );
}
@@ -2112,7 +2162,10 @@ public class CpEntityManager implements EntityManager {
counterUtils.batchIncrementAggregateCounters(
m, applicationId, userId, groupId, null, category, counters, timestamp );
+ //Adding graphite metrics
+ Timer.Context timeIncrementCounters = corePersistanceTimer.time();
CassandraPersistenceUtils.batchExecute( m, CassandraService.RETRY_COUNT );
+ timeIncrementCounters.stop();
}
}
@@ -2843,7 +2896,10 @@ public class CpEntityManager implements EntityManager {
//
// batch.index(appAllTypesScope, memberEntity);
+ //Adding graphite metrics
+ Timer.Context timeIndexEntityCollection = corePersistanceTimer.time();
batch.execute();
+ timeIndexEntityCollection.stop();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3b469ea/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index 302f18d..786b0f5 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -61,6 +61,7 @@ import org.apache.usergrid.persistence.cassandra.index.IndexBucketScanner;
import org.apache.usergrid.persistence.cassandra.index.IndexScanner;
import org.apache.usergrid.persistence.cassandra.index.NoOpIndexScanner;
import org.apache.usergrid.persistence.collection.CollectionScope;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.entities.Group;
import org.apache.usergrid.persistence.entities.User;
@@ -105,6 +106,7 @@ import org.apache.usergrid.utils.IndexUtils;
import org.apache.usergrid.utils.MapUtils;
import org.apache.usergrid.utils.UUIDUtils;
+import com.codahale.metrics.Timer;
import com.google.common.base.Preconditions;
import com.yammer.metrics.annotation.Metered;
@@ -188,7 +190,7 @@ public class CpRelationManager implements RelationManager {
private ResultsLoaderFactory resultsLoaderFactory;
-
+ private Timer cpRelationTimer;
public CpRelationManager() {}
@@ -198,7 +200,8 @@ public class CpRelationManager implements RelationManager {
CpEntityManagerFactory emf,
UUID applicationId,
EntityRef headEntity,
- IndexBucketLocator indexBucketLocator ) {
+ IndexBucketLocator indexBucketLocator,
+ MetricsFactory metricsFactory) {
Assert.notNull( em, "Entity manager cannot be null" );
Assert.notNull( emf, "Entity manager factory cannot be null" );
@@ -219,6 +222,8 @@ public class CpRelationManager implements RelationManager {
this.cass = em.getCass(); // TODO: eliminate need for this via Core Persistence
this.indexBucketLocator = indexBucketLocator; // TODO: this also
+ this.cpRelationTimer = metricsFactory.getTimer( CpRelationManager.class, "relation.manager.timer" );
+
// load the Core Persistence version of the head entity as well
this.headEntityScope = getCollectionScopeNameFromEntityType(
applicationScope.getApplication(), headEntity.getType());
@@ -441,8 +446,10 @@ public class CpRelationManager implements RelationManager {
}
} ).count().toBlocking().lastOrDefault( 0 );
-
+ //Adding graphite metrics
+ Timer.Context timeElasticIndexBatch = cpRelationTimer.time();
entityIndexBatch.execute();
+ timeElasticIndexBatch.stop();
logger.debug( "updateContainingCollectionsAndCollections() updated {} indexes", count );
}
@@ -1065,7 +1072,11 @@ public class CpRelationManager implements RelationManager {
Keyspace ko = cass.getApplicationKeyspace( applicationId );
Mutator<ByteBuffer> m = createMutator( ko, be );
batchUpdateEntityConnection( m, false, connection, UUIDGenerator.newTimeUUID() );
+ //Added Graphite Metrics
+ Timer.Context timeElasticIndexBatch = cpRelationTimer.time();
batchExecute( m, CassandraService.RETRY_COUNT );
+ timeElasticIndexBatch.stop();
+
return connection;
}
@@ -1236,7 +1247,11 @@ public class CpRelationManager implements RelationManager {
Mutator<ByteBuffer> m = createMutator( ko, be );
batchUpdateEntityConnection(
m, true, ( ConnectionRefImpl ) connectionRef, UUIDGenerator.newTimeUUID() );
+
+ //Added Graphite Metrics
+ Timer.Context timeDeleteConnections = cpRelationTimer.time();
batchExecute( m, CassandraService.RETRY_COUNT );
+ timeDeleteConnections.stop();
EntityRef connectingEntityRef = connectionRef.getConnectingEntity(); // source
EntityRef connectedEntityRef = connectionRef.getConnectedEntity(); // target
@@ -1291,7 +1306,11 @@ public class CpRelationManager implements RelationManager {
//
// batch.deindex( allTypesIndexScope, targetEntity );
+ //Added Graphite Metrics
+ Timer.Context timeDeleteConnection = cpRelationTimer.time();
batch.execute();
+ timeDeleteConnection.stop();
+
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3b469ea/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/CassandraPersistenceUtils.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/CassandraPersistenceUtils.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/CassandraPersistenceUtils.java
index 45c9784..174e0a4 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/CassandraPersistenceUtils.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/CassandraPersistenceUtils.java
@@ -327,7 +327,7 @@ public class CassandraPersistenceUtils {
return batch;
}
-
+ //No longer does retries
public static MutationResult batchExecute( Mutator<?> m, int retries ) {
return m.execute();