monitor duplicate crosstables

pull/5816/head
Thibault Duplessis 2019-12-23 01:23:31 -05:00
parent d78a56ead3
commit 987d5e2bca
2 changed files with 5 additions and 1 deletions

View File

@ -315,6 +315,7 @@ object mon {
object crosstable {
val create = future("crosstable.create.time")
def createOffer(result: String) = counter("crosstable.create.offer").withTag("result", result)
val duplicate = counter("crosstable.create.duplicate").withoutTags
val createNbGames = histogram("crosstable.create.nbGames").withoutTags
}
object relation {

View File

@ -112,7 +112,10 @@ final class CrosstableApi(
.queue[Creation](512, OverflowStrategy.dropNew)
.mapAsyncUnordered(8) {
case ((u1, u2), promise) =>
create(u1, u2) recover {
create(u1, u2) recoverWith lila.db.recoverDuplicateKey { _ =>
lila.mon.crosstable.duplicate.increment()
coll.one[Crosstable](select(u1, u2)) dmap { _ | Crosstable.empty(u1, u2) }
} recover {
case e: Exception =>
logger.error("CrosstableApi.create", e)
Crosstable.empty(u1, u2)