Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public class ClientRequestMetrics
public final Meter timeouts;
public final Meter unavailables;
public final Meter failures;
public final Meter invalid;

/**
* this is the metric that measures the actual execution time of a certain request;
Expand All @@ -54,6 +55,7 @@ public ClientRequestMetrics(String scope, String prefix)
timeouts = Metrics.meter(factory.createMetricName(namePrefix + "Timeouts"));
unavailables = Metrics.meter(factory.createMetricName(namePrefix + "Unavailables"));
failures = Metrics.meter(factory.createMetricName(namePrefix + "Failures"));
invalid = Metrics.meter(factory.createMetricName(namePrefix + "Invalid"));
executionTimeMetrics = new LatencyMetrics(factory, namePrefix);
serviceTimeMetrics = new LatencyMetrics(factory, namePrefix + "ServiceTime");
}
Expand All @@ -63,6 +65,7 @@ public void release()
Metrics.remove(factory.createMetricName(namePrefix + "Timeouts"));
Metrics.remove(factory.createMetricName(namePrefix + "Unavailables"));
Metrics.remove(factory.createMetricName(namePrefix + "Failures"));
Metrics.remove(factory.createMetricName(namePrefix + "Invalid"));
executionTimeMetrics.release();
serviceTimeMetrics.release();
}
Expand Down
38 changes: 38 additions & 0 deletions src/java/org/apache/cassandra/service/StorageProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,14 @@ public void mutateAtomically(Collection<Mutation> mutations, ConsistencyLevel co
writeTracker.onError(e);
throw e;
}
catch (InvalidRequestException e)
{
metrics.writeMetrics.invalid.mark();
metrics.writeMetricsForLevel(consistencyLevel).invalid.mark();
Tracing.trace("Invalid request: {}", e.getMessage());
writeTracker.onError(e);
throw e;
}
finally
{
long endTime = System.nanoTime();
Expand Down Expand Up @@ -595,6 +603,13 @@ public static RowIterator cas(String keyspaceName,
lwtTracker.onError(e);
throw e;
}
catch (InvalidRequestException e)
{
metrics.casWriteMetrics.invalid.mark();
metrics.writeMetricsForLevel(consistencyForPaxos).invalid.mark();
lwtTracker.onError(e);
throw e;
}
finally
{
final long endTime = System.nanoTime();
Expand Down Expand Up @@ -1165,6 +1180,14 @@ public static void mutate(List<? extends IMutation> mutations,
writeTracker.onError(e);
throw e;
}
catch (InvalidRequestException e)
{
metrics.writeMetrics.invalid.mark();
metrics.writeMetricsForLevel(consistencyLevel).invalid.mark();
Tracing.trace("Invalid request: {}", e.getMessage());
writeTracker.onError(e);
throw e;
}
finally
{
long endTime = System.nanoTime();
Expand Down Expand Up @@ -2101,6 +2124,14 @@ private static PartitionIterator readWithPaxos(SinglePartitionReadCommand.Group
readTracker.onError(e);
throw e;
}
catch (InvalidRequestException e)
{
metrics.readMetrics.invalid.mark();
metrics.casReadMetrics.invalid.mark();
metrics.readMetricsForLevel(consistencyLevel).invalid.mark();
readTracker.onError(e);
throw e;
}
finally
{
long endTime = System.nanoTime();
Expand Down Expand Up @@ -2158,6 +2189,13 @@ private static PartitionIterator readRegular(SinglePartitionReadCommand.Group gr
readTracker.onError(e);
throw e;
}
catch (InvalidRequestException e)
{
metrics.readMetrics.invalid.mark();
metrics.readMetricsForLevel(consistencyLevel).invalid.mark();
readTracker.onError(e);
throw e;
}
finally
{
long endTime = System.nanoTime();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ private void updateClientRequestMetrics(ClientRequestMetrics metrics)
metrics.timeouts.mark();
metrics.failures.mark();
metrics.unavailables.mark();
metrics.invalid.mark();
updateLatencyMetrics(metrics.executionTimeMetrics);
updateLatencyMetrics(metrics.serviceTimeMetrics);
}
Expand Down Expand Up @@ -297,6 +298,7 @@ private void verifyClientRequestMetrics(ClientRequestMetrics metrics, int value)
assertEquals(value, metrics.timeouts.getCount());
assertEquals(value, metrics.failures.getCount());
assertEquals(value, metrics.unavailables.getCount());
assertEquals(value, metrics.invalid.getCount());
verifyLatencyMetrics(metrics.executionTimeMetrics, value);
verifyLatencyMetrics(metrics.serviceTimeMetrics, value);
}
Expand Down
Loading