Skip to content

Commit c03fef9

Browse files
feat: add ELK
1 parent f6af1c9 commit c03fef9

File tree

14 files changed

+283
-8
lines changed

14 files changed

+283
-8
lines changed

audio-fingerprint-service/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ RUN apt-get update && \
2424
WORKDIR /app
2525
# Копируем JAR из этапа сборки
2626
COPY --from=builder /workspace/target/*.jar app.jar
27+
COPY src/main/resources/logback-spring.xml /app/config/
2728

2829
EXPOSE 8080
2930
ENTRYPOINT ["java", "-jar", "app.jar"]

audio-fingerprint-service/pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,25 @@
4747
<artifactId>spring-boot-starter</artifactId>
4848
</dependency>
4949

50+
51+
<dependency>
52+
<groupId>ch.qos.logback</groupId>
53+
<artifactId>logback-classic</artifactId>
54+
</dependency>
55+
56+
<!-- Logstash Logback Encoder для JSON логов -->
57+
<dependency>
58+
<groupId>net.logstash.logback</groupId>
59+
<artifactId>logstash-logback-encoder</artifactId>
60+
<version>7.3</version>
61+
</dependency>
62+
63+
<!-- Micrometer для отправки метрик в Elastic -->
64+
<dependency>
65+
<groupId>io.micrometer</groupId>
66+
<artifactId>micrometer-registry-elastic</artifactId>
67+
</dependency>
68+
5069
<dependency>
5170
<groupId>org.springframework.boot</groupId>
5271
<artifactId>spring-boot-starter-test</artifactId>

audio-fingerprint-service/src/main/java/com/audio/audiofingerprintservice/service/FingerprintService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private SearchResponse<AudioFingerprint> executeElasticsearchQuery(List<Float> q
9191
.params("query_vector", JsonData.of(queryVectorDouble))
9292
)
9393
)
94-
.minScore(1.2f)
94+
.minScore(0.8f)
9595
)
9696
),
9797
AudioFingerprint.class);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
4+
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
5+
6+
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
7+
<property name="LOG_LEVEL" value="${LOG_LEVEL:-INFO}"/>
8+
<property name="LOGSTASH_HOST" value="${LOGSTASH_HOST:-logstash}"/>
9+
<property name="LOGSTASH_PORT" value="${LOGSTASH_PORT:-5000}"/>
10+
<property name="SERVICE_NAME" value="${SERVICE_NAME:-audio-fingerprint-service}"/>
11+
12+
<!-- Консольный вывод -->
13+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
14+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
15+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
16+
</encoder>
17+
</appender>
18+
19+
<!-- Отправка логов в Logstash -->
20+
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
21+
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination>
22+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
23+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
24+
</encoder>
25+
<keepAliveDuration>5 minutes</keepAliveDuration>
26+
<reconnectionDelay>1 second</reconnectionDelay>
27+
<queueSize>1048576</queueSize>
28+
</appender>
29+
30+
<root level="${LOG_LEVEL}">
31+
<appender-ref ref="CONSOLE"/>
32+
<appender-ref ref="LOGSTASH"/>
33+
</root>
34+
35+
<!-- Логирование SQL запросов -->
36+
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
37+
<appender-ref ref="CONSOLE"/>
38+
<appender-ref ref="LOGSTASH"/>
39+
</logger>
40+
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
41+
<appender-ref ref="CONSOLE"/>
42+
<appender-ref ref="LOGSTASH"/>
43+
</logger>
44+
</configuration>

audio-ingestion-service/pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,25 @@
5252
<artifactId>spring-boot-starter-web</artifactId>
5353
</dependency>
5454

55+
56+
<dependency>
57+
<groupId>ch.qos.logback</groupId>
58+
<artifactId>logback-classic</artifactId>
59+
</dependency>
60+
61+
<!-- Logstash Logback Encoder для JSON логов -->
62+
<dependency>
63+
<groupId>net.logstash.logback</groupId>
64+
<artifactId>logstash-logback-encoder</artifactId>
65+
<version>7.3</version>
66+
</dependency>
67+
68+
<!-- Micrometer для отправки метрик в Elastic -->
69+
<dependency>
70+
<groupId>io.micrometer</groupId>
71+
<artifactId>micrometer-registry-elastic</artifactId>
72+
</dependency>
73+
5574
<dependency>
5675
<groupId>org.springdoc</groupId>
5776
<artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
4+
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
5+
6+
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
7+
<property name="LOG_LEVEL" value="${LOG_LEVEL:-INFO}"/>
8+
<property name="LOGSTASH_HOST" value="${LOGSTASH_HOST:-logstash}"/>
9+
<property name="LOGSTASH_PORT" value="${LOGSTASH_PORT:-5000}"/>
10+
<property name="SERVICE_NAME" value="${SERVICE_NAME:-audio-ingestion-service}"/>
11+
12+
<!-- Консольный вывод -->
13+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
14+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
15+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
16+
</encoder>
17+
</appender>
18+
19+
<!-- Отправка логов в Logstash -->
20+
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
21+
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination>
22+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
23+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
24+
</encoder>
25+
<keepAliveDuration>5 minutes</keepAliveDuration>
26+
<reconnectionDelay>1 second</reconnectionDelay>
27+
<queueSize>1048576</queueSize>
28+
</appender>
29+
30+
<root level="${LOG_LEVEL}">
31+
<appender-ref ref="CONSOLE"/>
32+
<appender-ref ref="LOGSTASH"/>
33+
</root>
34+
35+
<!-- Логирование SQL запросов -->
36+
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
37+
<appender-ref ref="CONSOLE"/>
38+
<appender-ref ref="LOGSTASH"/>
39+
</logger>
40+
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
41+
<appender-ref ref="CONSOLE"/>
42+
<appender-ref ref="LOGSTASH"/>
43+
</logger>
44+
</configuration>

audio-metadata-service/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,24 @@
6565
<artifactId>liquibase-core</artifactId>
6666
</dependency>
6767

68+
<dependency>
69+
<groupId>ch.qos.logback</groupId>
70+
<artifactId>logback-classic</artifactId>
71+
</dependency>
72+
73+
<!-- Logstash Logback Encoder для JSON логов -->
74+
<dependency>
75+
<groupId>net.logstash.logback</groupId>
76+
<artifactId>logstash-logback-encoder</artifactId>
77+
<version>7.3</version>
78+
</dependency>
79+
80+
<!-- Micrometer для отправки метрик в Elastic -->
81+
<dependency>
82+
<groupId>io.micrometer</groupId>
83+
<artifactId>micrometer-registry-elastic</artifactId>
84+
</dependency>
85+
6886
<dependency>
6987
<groupId>org.springframework.retry</groupId>
7088
<artifactId>spring-retry</artifactId>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
4+
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
5+
6+
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
7+
<property name="LOG_LEVEL" value="${LOG_LEVEL:-INFO}"/>
8+
<property name="LOGSTASH_HOST" value="${LOGSTASH_HOST:-logstash}"/>
9+
<property name="LOGSTASH_PORT" value="${LOGSTASH_PORT:-5000}"/>
10+
<property name="SERVICE_NAME" value="${SERVICE_NAME:-audio-metadata-service}"/>
11+
12+
<!-- Консольный вывод -->
13+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
14+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
15+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
16+
</encoder>
17+
</appender>
18+
19+
<!-- Отправка логов в Logstash -->
20+
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
21+
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination>
22+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
23+
<customFields>{"service":"${SERVICE_NAME}","env":"${SPRING_PROFILES_ACTIVE:-default}"}</customFields>
24+
</encoder>
25+
<keepAliveDuration>5 minutes</keepAliveDuration>
26+
<reconnectionDelay>1 second</reconnectionDelay>
27+
<queueSize>1048576</queueSize>
28+
</appender>
29+
30+
<root level="${LOG_LEVEL}">
31+
<appender-ref ref="CONSOLE"/>
32+
<appender-ref ref="LOGSTASH"/>
33+
</root>
34+
35+
<!-- Логирование SQL запросов -->
36+
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
37+
<appender-ref ref="CONSOLE"/>
38+
<appender-ref ref="LOGSTASH"/>
39+
</logger>
40+
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
41+
<appender-ref ref="CONSOLE"/>
42+
<appender-ref ref="LOGSTASH"/>
43+
</logger>
44+
</configuration>

config-service/src/main/resources/configs/audio-fingerprint-service/application.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
management:
2+
endpoints:
3+
web:
4+
exposure:
5+
include: health,info,metrics,prometheus,loggers
6+
endpoint:
7+
health:
8+
show-details: always
9+
loggers:
10+
enabled: true
11+
112
spring:
213
kafka:
314
consumer:

config-service/src/main/resources/configs/audio-ingestion-service/application.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
management:
2+
endpoints:
3+
web:
4+
exposure:
5+
include: health,info,metrics,prometheus,loggers
6+
endpoint:
7+
health:
8+
show-details: always
9+
loggers:
10+
enabled: true
11+
112
spring:
213
kafka:
314
producer:

0 commit comments

Comments
 (0)