mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-25 16:22:35 +03:00
enable distribution otlp tracing
This commit is contained in:
@@ -8,3 +8,5 @@ DB_USERNAME=postgres
|
||||
DB_PASSWORD=postgres
|
||||
|
||||
KAFKA_SERVERS=localhost:9095
|
||||
|
||||
OTLP_TRACING_HTTP_URL=http://localhost:4318/v1/traces
|
||||
@@ -27,12 +27,15 @@ dependencies {
|
||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4")
|
||||
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.4")
|
||||
implementation("io.github.optimumcode:json-schema-validator:0.2.3")
|
||||
implementation("io.micrometer:micrometer-tracing-bridge-otel")
|
||||
implementation("io.opentelemetry:opentelemetry-exporter-otlp")
|
||||
implementation("net.logstash.logback:logstash-logback-encoder:8.0")
|
||||
implementation("org.flywaydb:flyway-core:9.22.3")
|
||||
implementation("org.jetbrains.kotlin:kotlin-reflect:2.0.20")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
|
||||
implementation("org.postgresql:postgresql:42.6.2")
|
||||
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0")
|
||||
implementation("org.springframework:spring-aspects")
|
||||
implementation("org.springframework.boot:spring-boot-starter-actuator:3.2.10")
|
||||
implementation("org.springframework.boot:spring-boot-starter-mustache:3.2.10")
|
||||
implementation("org.springframework.boot:spring-boot-starter-validation:3.2.10")
|
||||
|
||||
@@ -8,4 +8,4 @@ Some simple checklist for this demo repo:
|
||||
- [x] make kafka consumer
|
||||
- [x] register prometheus metrics
|
||||
- [x] expose prometheus metrics
|
||||
- [ ] add otel collector
|
||||
- [x] add otel collector
|
||||
|
||||
@@ -14,6 +14,7 @@ services:
|
||||
DB_USERNAME: $DB_USERNAME
|
||||
DB_PASSWORD: $DB_PASSWORD
|
||||
KAFKA_SERVERS: $KAFKA_SERVERS
|
||||
OTLP_TRACING_HTTP_URL: $OTLP_TRACING_HTTP_URL
|
||||
expose:
|
||||
- 8080
|
||||
- 8081
|
||||
|
||||
@@ -13,7 +13,11 @@ import com.example.demo.services.validation.SchemaValidator
|
||||
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.Autowired
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
@@ -50,5 +54,17 @@ class AppConfig(
|
||||
|
||||
@Bean
|
||||
fun schemaValidator(): SchemaValidator = SchemaValidator(kafkaProperties.validation.schema)
|
||||
|
||||
@Bean
|
||||
fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String): OtlpHttpSpanExporter {
|
||||
return OtlpHttpSpanExporter.builder()
|
||||
.setEndpoint(url)
|
||||
.build()
|
||||
}
|
||||
|
||||
@Bean
|
||||
fun observedAspect(@Autowired observationRegistry: ObservationRegistry): ObservedAspect {
|
||||
return ObservedAspect(observationRegistry)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,3 +60,9 @@ management:
|
||||
distribution:
|
||||
percentiles-histogram:
|
||||
"[http.server.requests]": true
|
||||
tracing:
|
||||
sampling:
|
||||
probability: 1.0
|
||||
|
||||
tracing:
|
||||
url: ${OTLP_TRACING_HTTP_URL:http://localhost:4318/v1/traces}
|
||||
|
||||
Reference in New Issue
Block a user