Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The functionality relies on the cats-effect MBeans to collect metrics. There are three different metrics:
1) Compute
Available via
IOMetrics.registerComputeMetrics
:cats.effect.runtime.compute.thread.count
cats.effect.runtime.compute.thread.active.count
cats.effect.runtime.compute.thread.blocked.count
cats.effect.runtime.compute.thread.searching.count
cats.effect.runtime.compute.fiber.enqueued.count
2) CPU starvation
Available via
IOMetrics.registerCpuStarvationMetrics
:cats.effect.runtime.cpu.starvation.count
cats.effect.runtime.cpu.starvation.clock.drift.current
cats.effect.runtime.cpu.starvation.clock.drift.max
3) Local queue
Available via
IOMetrics.registerLocalQueueMetrics
:cats.effect.runtime.local.queue.fiber.enqueued.count
cats.effect.runtime.local.queue.fiber.spillover.count
cats.effect.runtime.local.queue.fiber.steal.attempt.count
cats.effect.runtime.local.queue.fiber.stolen.count
cats.effect.runtime.local.queue.fiber.total.count
cats.effect.runtime.local.queue.head.index
cats.effect.runtime.local.queue.tag.head.real
cats.effect.runtime.local.queue.tag.head.steal
cats.effect.runtime.local.queue.tag.tail
cats.effect.runtime.local.queue.tail.index
Here, I'm a bit skeptical about whether the following metrics are relevant at all:
cats.effect.runtime.local.queue.head.index
cats.effect.runtime.local.queue.tag.head.real
cats.effect.runtime.local.queue.tag.head.steal
cats.effect.runtime.local.queue.tag.tail
cats.effect.runtime.local.queue.tail.index