Skip to content

Commit 3d88362

Browse files
author
Ben Kempe
committed
show table name in case of provisioned throughput exception
1 parent d86d659 commit 3d88362

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/main/scala/asyncdynamo/TracingAmazonDynamoDB.scala

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,43 +25,43 @@ protected class TracingAmazonDynamoDB(delegate : AmazonDynamoDB, eventStream :
2525

2626
def deleteItem(deleteItemRequest: DeleteItemRequest) = {
2727
deleteItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
28-
val (res, duration) = time (delegate.deleteItem(deleteItemRequest))
28+
val (res, duration) = time (delegate.deleteItem(deleteItemRequest), deleteItemRequest.getTableName)
2929
pub(DynamoRequestExecuted(Operation(deleteItemRequest.getTableName, Write, "DeleteItem"), writeUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
3030
res
3131
}
3232

3333
def getItem(getItemRequest: GetItemRequest) = {
3434
getItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
35-
val (res, duration) = time(delegate.getItem(getItemRequest))
35+
val (res, duration) = time(delegate.getItem(getItemRequest), getItemRequest.getTableName)
3636
pub(DynamoRequestExecuted(Operation(getItemRequest.getTableName, Read, "GetItem"), readUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
3737
res
3838
}
3939

4040
def scan(scanRequest: ScanRequest) = {
4141
scanRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
42-
val (res, duration) = time(delegate.scan(scanRequest))
42+
val (res, duration) = time(delegate.scan(scanRequest), scanRequest.getTableName)
4343
pub(DynamoRequestExecuted(Operation(scanRequest.getTableName, Read, "Scan"), readUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
4444
res
4545
}
4646

4747

4848
def updateItem(updateItemRequest: UpdateItemRequest) = {
4949
updateItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
50-
val (res, duration) = time(delegate.updateItem(updateItemRequest))
50+
val (res, duration) = time(delegate.updateItem(updateItemRequest), updateItemRequest.getTableName)
5151
pub(DynamoRequestExecuted(Operation(updateItemRequest.getTableName, Write, "UpdateItem"), writeUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
5252
res
5353
}
5454

5555
def query(queryRequest: QueryRequest) = {
5656
queryRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
57-
val (res, duration) = time(delegate.query(queryRequest))
57+
val (res, duration) = time(delegate.query(queryRequest), queryRequest.getTableName)
5858
pub(DynamoRequestExecuted(Operation(queryRequest.getTableName, Read, "Query"), readUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
5959
res
6060
}
6161

6262
def putItem(putItemRequest: PutItemRequest) = {
6363
putItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
64-
val (res, duration) = time(delegate.putItem(putItemRequest))
64+
val (res, duration) = time(delegate.putItem(putItemRequest), putItemRequest.getTableName)
6565
pub(DynamoRequestExecuted(Operation(putItemRequest.getTableName, Write, "PutItem"), writeUnits = Option(scala.Double.unbox(res.getConsumedCapacity.getCapacityUnits)), duration = duration))
6666
res
6767
}
@@ -70,30 +70,34 @@ protected class TracingAmazonDynamoDB(delegate : AmazonDynamoDB, eventStream :
7070

7171
def batchGetItem(batchGetItemRequest: BatchGetItemRequest) = {
7272
batchGetItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
73-
val (res, duration) = time(delegate.batchGetItem(batchGetItemRequest))
73+
val (res, duration) = time(delegate.batchGetItem(batchGetItemRequest), batchGetItemRequest.getRequestItems.keySet().mkString(","))
7474

7575
res.getConsumedCapacity foreach {
76-
case consumedCapacity =>
76+
case consumedCapacity =>
7777
pub(DynamoRequestExecuted(Operation(consumedCapacity.getTableName(), Read, "BatchGetItem"), readUnits = Option(scala.Double.unbox(consumedCapacity.getCapacityUnits)), duration = duration))
7878
}
7979
res
8080
}
8181

8282
def batchWriteItem(batchWriteItemRequest: BatchWriteItemRequest) = {
8383
batchWriteItemRequest.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
84-
val (res, duration) = time(delegate.batchWriteItem(batchWriteItemRequest))
84+
val (res, duration) = time(delegate.batchWriteItem(batchWriteItemRequest),batchWriteItemRequest.getRequestItems.keySet().mkString(","))
8585
res.getConsumedCapacity foreach {
86-
case consumedCapacity =>
86+
case consumedCapacity =>
8787
pub(DynamoRequestExecuted(Operation(consumedCapacity.getTableName(), Write, "BatchWriteItem"), writeUnits = Option(scala.Double.unbox(consumedCapacity.getCapacityUnits)), duration = duration))
8888
}
8989
res
9090
}
9191

9292
private def pub(op:DynamoRequestExecuted) = eventStream.publish(op)
9393

94-
def time[T](f: => T): (T, Long) = {
94+
def time[T](f: => T, tables: => String): (T, Long) = {
9595
val start = System.currentTimeMillis()
96-
val res = f
96+
val res = try {
97+
f
98+
} finally {
99+
case ptee: ProvisionedThroughputExceededException => new ProvisionedThroughputExceededException(s"provisioned throughput for the table(s) was exceeded: $tables", ptee)
100+
}
97101
(res, System.currentTimeMillis() - start)
98102
}
99103

0 commit comments

Comments
 (0)