improve monitoring

pull/5761/head
Thibault Duplessis 2019-12-14 21:09:55 -06:00
parent 6e0d9f8302
commit 5808b76f2c
5 changed files with 29 additions and 14 deletions

View File

@ -85,6 +85,8 @@ final class ChatApi(
}
}
publish(chatId, actorApi.ChatLine(chatId, line))
val parentName = publicSource.fold("player")(_.parentName)
lila.mon.chat.message(parentName, line.troll).increment()
}
}
}
@ -201,8 +203,10 @@ final class ChatApi(
def write(chatId: Chat.Id, color: Color, text: String): Funit =
makeLine(chatId, color, text) ?? { line =>
pushLine(chatId, line) >>-
pushLine(chatId, line) >>- {
publish(chatId, actorApi.ChatLine(chatId, line))
lila.mon.chat.message("anonPlayer", false).increment()
}
}
private def makeLine(chatId: Chat.Id, color: Color, t1: String): Option[Line] =
@ -233,7 +237,7 @@ final class ChatApi(
),
upsert = true
)
.void >>- lila.mon.chat.message(line.troll).increment()
.void
private object Writer {

View File

@ -395,8 +395,14 @@ object mon {
val idCollision = counter("game.idCollision").withoutTags
}
object chat {
def message(troll: Boolean) = counter("chat.message").withTag("troll", troll)
def fetch(parent: String) = timer("chat.fetch").withTag("parent", parent)
def message(parent: String, troll: Boolean) =
counter("chat.message").withTags(
Map(
"parent" -> parent,
"troll" -> troll
)
)
def fetch(parent: String) = timer("chat.fetch").withTag("parent", parent)
}
object push {
object register {

View File

@ -13,7 +13,8 @@ final class Env(
appConfig: Configuration,
userRepo: lila.user.UserRepo,
db: lila.db.Db,
asyncCache: lila.memo.AsyncCache.Builder
asyncCache: lila.memo.AsyncCache.Builder,
scheduler: akka.actor.Scheduler
)(implicit ec: scala.concurrent.ExecutionContext) {
private lazy val coll = db(appConfig.get[CollName]("evalCache.collection.evalCache"))

View File

@ -13,7 +13,9 @@ import lila.memo.ExpireCallbackMemo
* by remembering the last evalGet of each socket member,
* and listening to new evals stored.
*/
final private class EvalCacheUpgrade {
final private class EvalCacheUpgrade(scheduler: akka.actor.Scheduler)(
implicit ec: scala.concurrent.ExecutionContext
) {
import EvalCacheUpgrade._
private val members = AnyRefMap.empty[SriString, WatchingMember]
@ -43,9 +45,6 @@ final private class EvalCacheUpgrade {
wm.push(json + ("path" -> JsString(wm.path)))
}
upgradeMon.count.increment(wms.size)
upgradeMon.members.increment(members.size)
upgradeMon.evals.increment(evals.size)
upgradeMon.expirable.increment(expirableSris.count)
}
}
}
@ -63,6 +62,11 @@ final private class EvalCacheUpgrade {
else evals += (setupId -> newSris)
}
scheduler.scheduleWithFixedDelay(1 minute, 1 minute) { () =>
upgradeMon.members.update(members.size)
upgradeMon.evals.update(evals.size)
upgradeMon.expirable.update(expirableSris.count)
}
}
private object EvalCacheUpgrade {

View File

@ -63,12 +63,12 @@ package shutup {
case class RecordPrivateChat(chatId: String, userId: String, text: String)
case class RecordPublicChat(userId: String, text: String, source: PublicSource)
sealed trait PublicSource
sealed abstract class PublicSource(val parentName: String)
object PublicSource {
case class Tournament(id: String) extends PublicSource
case class Simul(id: String) extends PublicSource
case class Study(id: String) extends PublicSource
case class Watcher(gameId: String) extends PublicSource
case class Tournament(id: String) extends PublicSource("tournament")
case class Simul(id: String) extends PublicSource("simul")
case class Study(id: String) extends PublicSource("study")
case class Watcher(gameId: String) extends PublicSource("watcher")
}
}