1
0
Fork 1
mirror of https://gitlab.com/mangadex-pub/mangadex_at_home.git synced 2024-01-19 02:48:37 +00:00

Fix metrics

This commit is contained in:
carbotaniuman 2021-03-27 22:50:25 -05:00
parent f62eb0db00
commit 58df77bac7
4 changed files with 20 additions and 8 deletions

View file

@ -18,6 +18,8 @@ along with this MangaDex@Home. If not, see <http://www.gnu.org/licenses/>.
*/
package mdnet
import io.micrometer.core.instrument.Gauge
import io.micrometer.core.instrument.binder.BaseUnits
import io.micrometer.prometheus.PrometheusConfig
import io.micrometer.prometheus.PrometheusMeterRegistry
import mdnet.cache.ImageStorage
@ -105,7 +107,19 @@ class ServerManager(
fun start() {
LOGGER.info { "Image server starting" }
DefaultMicrometerMetrics(registry, storage.cacheDirectory)
DefaultMicrometerMetrics(registry)
Gauge.builder(
"cache.used",
storage,
{ it.size.toDouble() }
).baseUnit(BaseUnits.BYTES).register(registry)
Gauge.builder(
"cache.size",
storage,
{ it.size.toDouble() }
).baseUnit(BaseUnits.BYTES).register(registry)
loginAndStartServer()
var lastBytesSent = statistics.bytesSent.get()

View file

@ -55,7 +55,7 @@ data class Image(val data: ImageMetadata, val stream: InputStream)
*/
class ImageStorage(
var maxSize: Long,
val cacheDirectory: Path,
private val cacheDirectory: Path,
private val database: Database,
autoPrune: Boolean = true
) {

View file

@ -19,7 +19,6 @@ along with this MangaDex@Home. If not, see <http://www.gnu.org/licenses/>.
package mdnet.metrics
import io.micrometer.core.instrument.Tag
import io.micrometer.core.instrument.binder.jvm.DiskSpaceMetrics
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
@ -30,9 +29,8 @@ import io.micrometer.core.instrument.binder.system.ProcessorMetrics
import io.micrometer.core.instrument.binder.system.UptimeMetrics
import io.micrometer.prometheus.PrometheusMeterRegistry
import mdnet.BuildInfo
import java.nio.file.Path
class DefaultMicrometerMetrics(registry: PrometheusMeterRegistry, cacheDirectory: Path) {
class DefaultMicrometerMetrics(registry: PrometheusMeterRegistry) {
init {
UptimeMetrics(
mutableListOf(
@ -47,6 +45,5 @@ class DefaultMicrometerMetrics(registry: PrometheusMeterRegistry, cacheDirectory
JvmHeapPressureMetrics().bindTo(registry)
FileDescriptorMetrics().bindTo(registry)
LogbackMetrics().bindTo(registry)
DiskSpaceMetrics(cacheDirectory.toFile()).bindTo(registry)
}
}

View file

@ -22,6 +22,7 @@ import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry
import io.github.resilience4j.micrometer.tagged.TaggedCircuitBreakerMetrics
import io.micrometer.core.instrument.FunctionCounter
import io.micrometer.core.instrument.binder.BaseUnits
import io.micrometer.prometheus.PrometheusMeterRegistry
import mdnet.cache.ImageStorage
import mdnet.data.Statistics
@ -98,10 +99,10 @@ fun getServer(
)
FunctionCounter.builder(
"client_sent_bytes",
"client.sent.bytes",
statistics,
{ it.bytesSent.get().toDouble() }
).register(registry)
).baseUnit(BaseUnits.BYTES).register(registry)
val verifier = TokenVerifier(
tokenKey = remoteSettings.tokenKey,