diff --git a/src/main/scala/Monitor.scala b/src/main/scala/Monitor.scala index a228bb0b..ba4ec78d 100644 --- a/src/main/scala/Monitor.scala +++ b/src/main/scala/Monitor.scala @@ -190,3 +190,4 @@ object Monitor: val maxDelay = Kamon.gauge("connector.flush.config.maxDelay").withoutTags() val qSize = Kamon.histogram("connector.flush.qSize").withoutTags() val channelsToFlush = Kamon.histogram("connector.flush.channelsToFlush").withoutTags() + val scheduledHit = Kamon.counter("connector.scheduledHit").withoutTags() diff --git a/src/main/scala/netty/ActorChannelConnector.scala b/src/main/scala/netty/ActorChannelConnector.scala index 094f19da..66eb9788 100644 --- a/src/main/scala/netty/ActorChannelConnector.scala +++ b/src/main/scala/netty/ActorChannelConnector.scala @@ -82,3 +82,8 @@ final private class ActorChannelConnector( else if flushQ.isEmpty then 1.second // hibernate else 1.millis // interval is 0 but we still need to empty the queue scheduler.scheduleOnce(nextInterval, () => flush()) + + def scheduledHit(): Unit = + Monitor.connector.scheduledHit.increment() + scheduler.scheduleOnce(1 millis, () => scheduledHit()) + scheduledHit()