Files
spring-boot-demo/src/main/kotlin/com/github/dannecron/demo/config/AppConfig.kt
2025-06-03 15:28:03 +07:00

31 lines
1.1 KiB
Kotlin

package com.github.dannecron.demo.config
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import io.micrometer.observation.ObservationRegistry
import io.micrometer.observation.aop.ObservedAspect
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
@Configuration
class AppConfig {
@Bean
fun objectMapper(): ObjectMapper = ObjectMapper().apply {
registerModules(JavaTimeModule())
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
}
@Bean
fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String): OtlpHttpSpanExporter =
OtlpHttpSpanExporter.builder()
.setEndpoint(url)
.build()
@Bean
fun observedAspect(observationRegistry: ObservationRegistry) = ObservedAspect(observationRegistry)
}