refactor(infra-monitoring)
refactor(infra-gateway)
This commit is contained in:
@@ -3,14 +3,9 @@
|
||||
plugins {
|
||||
alias(libs.plugins.kotlin.jvm)
|
||||
alias(libs.plugins.kotlin.spring)
|
||||
alias(libs.plugins.spring.boot)
|
||||
alias(libs.plugins.spring.dependencyManagement)
|
||||
}
|
||||
|
||||
// Deaktiviert die Erstellung eines ausführbaren Jars für dieses Bibliotheks-Modul.
|
||||
tasks.getByName("bootJar") {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package at.mocode.infrastructure.monitoring.client
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
|
||||
import org.springframework.context.annotation.PropertySource
|
||||
|
||||
/**
|
||||
* AutoConfiguration für das Monitoring-Client-Modul.
|
||||
*
|
||||
* Lädt konservative Default-Properties mit niedriger Priorität, die in jeder Anwendung
|
||||
* leicht per application.properties/-yaml überschrieben werden können.
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ConditionalOnClass(name = [
|
||||
"org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration",
|
||||
"io.micrometer.core.instrument.MeterRegistry"
|
||||
])
|
||||
@PropertySource("classpath:monitoring-defaults.properties")
|
||||
class MonitoringClientAutoConfiguration
|
||||
+1
@@ -0,0 +1 @@
|
||||
at.mocode.infrastructure.monitoring.client.MonitoringClientAutoConfiguration
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
# ===================================================================
|
||||
# MELDENSTELLE - MONITORING CLIENT DEFAULTS (via AutoConfiguration)
|
||||
# Diese Konfigurationen werden automatisch von jedem Service übernommen,
|
||||
# der das monitoring-client-Modul einbindet. Sie können in der Anwendung
|
||||
# jederzeit überschrieben werden.
|
||||
# ===================================================================
|
||||
|
||||
# --- Spring Boot Actuator ---
|
||||
# Stellt die /actuator Endpunkte bereit (health, info, prometheus)
|
||||
management.endpoints.web.exposure.include=health,info,prometheus
|
||||
|
||||
# --- Micrometer Tracing ---
|
||||
# Aktiviert das Tracing
|
||||
management.tracing.enabled=true
|
||||
# Definiert, dass Traces immer gesammelt werden sollen (1.0 = 100%)
|
||||
management.tracing.sampling.probability=1.0
|
||||
|
||||
# --- Micrometer Observation (für Metriken UND Tracing) ---
|
||||
# Aktiviert die "Beobachtung" von HTTP Server Requests.
|
||||
# Dies erzeugt automatisch Metriken (Timer) UND Traces für eingehende Anfragen.
|
||||
management.observations.http.server.requests.enabled=true
|
||||
|
||||
# Fügt Anwendungs-Informationen zu den Metriken hinzu
|
||||
management.info.env.enabled=true
|
||||
|
||||
# Definiert den Standard-Endpunkt, an den die Traces gesendet werden.
|
||||
management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package at.mocode.infrastructure.monitoring.client
|
||||
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner
|
||||
|
||||
class MonitoringClientAutoConfigurationTest {
|
||||
|
||||
private val contextRunner = ApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(MonitoringClientAutoConfiguration::class.java))
|
||||
|
||||
@Test
|
||||
fun `should load monitoring properties correctly into the environment`() {
|
||||
// Arrange
|
||||
val expectedPropertyValue = "true"
|
||||
val propertyKey = "management.observations.http.server.requests.enabled"
|
||||
|
||||
// Act & Assert
|
||||
contextRunner.run { context ->
|
||||
val actualPropertyValue = context.environment.getProperty(propertyKey)
|
||||
assertThat(actualPropertyValue).isEqualTo(expectedPropertyValue)
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package at.mocode.infrastructure.monitoring.client
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||
|
||||
// Minimaler Test-Application-Context für Library-Tests.
|
||||
@SpringBootApplication
|
||||
class MonitoringClientTestApplication
|
||||
Reference in New Issue
Block a user