mirror of
https://github.com/gotson/komga.git
synced 2026-04-25 00:13:51 +02:00
fix(api): missing metrics if library name contains specific characters
use library ID instead of name for metrics tags Closes: #1156
This commit is contained in:
parent
a2f0c3dabd
commit
5ec7fa180e
7 changed files with 28 additions and 32 deletions
|
|
@ -44,7 +44,7 @@ interface BookRepository {
|
|||
fun deleteAll()
|
||||
|
||||
fun count(): Long
|
||||
fun countGroupedByLibraryName(): Map<String, Int>
|
||||
fun countGroupedByLibraryId(): Map<String, Int>
|
||||
|
||||
fun getFilesizeGroupedByLibraryName(): Map<String, BigDecimal>
|
||||
fun getFilesizeGroupedByLibraryId(): Map<String, BigDecimal>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@ interface SeriesRepository {
|
|||
fun deleteAll()
|
||||
|
||||
fun count(): Long
|
||||
fun countGroupedByLibraryName(): Map<String, Int>
|
||||
fun countGroupedByLibraryId(): Map<String, Int>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ interface SidecarRepository {
|
|||
fun deleteByLibraryIdAndUrls(libraryId: String, urls: Collection<URL>)
|
||||
fun deleteByLibraryId(libraryId: String)
|
||||
|
||||
fun countGroupedByLibraryName(): Map<String, Int>
|
||||
fun countGroupedByLibraryId(): Map<String, Int>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -316,19 +316,17 @@ class BookDao(
|
|||
|
||||
override fun count(): Long = dsl.fetchCount(b).toLong()
|
||||
|
||||
override fun countGroupedByLibraryName(): Map<String, Int> =
|
||||
dsl.select(l.NAME, DSL.count(b.ID))
|
||||
.from(l)
|
||||
.leftJoin(b).on(l.ID.eq(b.LIBRARY_ID))
|
||||
.groupBy(l.NAME)
|
||||
.fetchMap(l.NAME, DSL.count(b.ID))
|
||||
override fun countGroupedByLibraryId(): Map<String, Int> =
|
||||
dsl.select(b.LIBRARY_ID, DSL.count(b.ID))
|
||||
.from(b)
|
||||
.groupBy(b.LIBRARY_ID)
|
||||
.fetchMap(b.LIBRARY_ID, DSL.count(b.ID))
|
||||
|
||||
override fun getFilesizeGroupedByLibraryName(): Map<String, BigDecimal> =
|
||||
dsl.select(l.NAME, DSL.sum(b.FILE_SIZE))
|
||||
.from(l)
|
||||
.leftJoin(b).on(l.ID.eq(b.LIBRARY_ID))
|
||||
.groupBy(l.NAME)
|
||||
.fetchMap(l.NAME, DSL.sum(b.FILE_SIZE))
|
||||
override fun getFilesizeGroupedByLibraryId(): Map<String, BigDecimal> =
|
||||
dsl.select(b.LIBRARY_ID, DSL.sum(b.FILE_SIZE))
|
||||
.from(b)
|
||||
.groupBy(b.LIBRARY_ID)
|
||||
.fetchMap(b.LIBRARY_ID, DSL.sum(b.FILE_SIZE))
|
||||
|
||||
private fun BookSearch.toCondition(): Condition {
|
||||
var c: Condition = DSL.trueCondition()
|
||||
|
|
|
|||
|
|
@ -137,12 +137,11 @@ class SeriesDao(
|
|||
|
||||
override fun count(): Long = dsl.fetchCount(s).toLong()
|
||||
|
||||
override fun countGroupedByLibraryName(): Map<String, Int> =
|
||||
dsl.select(l.NAME, DSL.count(s.ID))
|
||||
.from(l)
|
||||
.leftJoin(s).on(l.ID.eq(s.LIBRARY_ID))
|
||||
.groupBy(l.NAME)
|
||||
.fetchMap(l.NAME, DSL.count(s.ID))
|
||||
override fun countGroupedByLibraryId(): Map<String, Int> =
|
||||
dsl.select(s.LIBRARY_ID, DSL.count(s.ID))
|
||||
.from(s)
|
||||
.groupBy(s.LIBRARY_ID)
|
||||
.fetchMap(s.LIBRARY_ID, DSL.count(s.ID))
|
||||
|
||||
private fun SeriesSearch.toCondition(): Condition {
|
||||
var c: Condition = DSL.trueCondition()
|
||||
|
|
|
|||
|
|
@ -54,12 +54,11 @@ class SidecarDao(
|
|||
.execute()
|
||||
}
|
||||
|
||||
override fun countGroupedByLibraryName(): Map<String, Int> =
|
||||
dsl.select(l.NAME, DSL.count(sc.URL))
|
||||
.from(l)
|
||||
.leftJoin(sc).on(l.ID.eq(sc.LIBRARY_ID))
|
||||
.groupBy(l.NAME)
|
||||
.fetchMap(l.NAME, DSL.count(sc.URL))
|
||||
override fun countGroupedByLibraryId(): Map<String, Int> =
|
||||
dsl.select(sc.LIBRARY_ID, DSL.count(sc.URL))
|
||||
.from(sc)
|
||||
.groupBy(sc.LIBRARY_ID)
|
||||
.fetchMap(sc.LIBRARY_ID, DSL.count(sc.URL))
|
||||
|
||||
private fun SidecarRecord.toDomain() =
|
||||
SidecarStored(
|
||||
|
|
|
|||
|
|
@ -114,10 +114,10 @@ class MetricsPublisherController(
|
|||
COLLECTIONS -> noTagGauges[COLLECTIONS]?.set(collectionRepository.count())
|
||||
READLISTS -> noTagGauges[READLISTS]?.set(readListRepository.count())
|
||||
|
||||
SERIES -> multiGauges[SERIES]?.register(seriesRepository.countGroupedByLibraryName().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
BOOKS -> multiGauges[BOOKS]?.register(bookRepository.countGroupedByLibraryName().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
BOOKS_FILESIZE -> bookFileSizeGauge.register(bookRepository.getFilesizeGroupedByLibraryName().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
SIDECARS -> multiGauges[SIDECARS]?.register(sidecarRepository.countGroupedByLibraryName().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
SERIES -> multiGauges[SERIES]?.register(seriesRepository.countGroupedByLibraryId().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
BOOKS -> multiGauges[BOOKS]?.register(bookRepository.countGroupedByLibraryId().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
BOOKS_FILESIZE -> bookFileSizeGauge.register(bookRepository.getFilesizeGroupedByLibraryId().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
SIDECARS -> multiGauges[SIDECARS]?.register(sidecarRepository.countGroupedByLibraryId().map { Row.of(Tags.of("library", it.key), it.value) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue