Skip to content

Commit 21bcf3e

Browse files
authored
Integrate OpenTelemetry java agent (#42)
1 parent ad762f1 commit 21bcf3e

File tree

4 files changed

+82
-7
lines changed

4 files changed

+82
-7
lines changed

README.md

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
1-
Данный репозиторий содержит шаблоны (используемых в сервисах домена) ресурсов
1+
# shared-resources
22

3-
#Переопределяемые настройки `logback`
3+
Данный репозиторий содержит шаблоны ресурсов, используемых в сервисах домена.
4+
5+
## Переопределяемые настройки `logback`
6+
7+
`application.yml`:
48

5-
`application.yml`
69
```yaml
710
logback:
811
appender: JSON_K8S_CONSOLE # возможные значения: DEFAULT_CONSOLE || COLOR_CONSOLE || JSON_K8S_CONSOLE
912
```
1013
11-
#`pom.xml`
14+
## Настройка `pom.xml`
15+
16+
Dependency:
17+
1218
```xml
1319
<dependency>
1420
<groupId>dev.vality</groupId>
1521
<artifactId>shared-resources</artifactId>
1622
<version>${shared.resources.version}</version>
1723
</dependency>
1824
```
25+
26+
Resources:
27+
1928
```xml
2029
<resources>
2130
<resource>
@@ -31,6 +40,7 @@ logback:
3140
<filtering>true</filtering>
3241
<excludes>
3342
<exclude>Dockerfile</exclude>
43+
<exclude>opentelemetry-javaagent.jar</exclude>
3444
</excludes>
3545
</resource>
3646
<resource>
@@ -39,6 +49,9 @@ logback:
3949
</resource>
4050
</resources>
4151
```
52+
53+
Plugin:
54+
4255
```xml
4356
<plugin>
4457
<groupId>org.apache.maven.plugins</groupId>
@@ -67,3 +80,13 @@ logback:
6780
</executions>
6881
</plugin>
6982
```
83+
84+
## Отключение OpenTelemetry Java Agent
85+
86+
Для отключения Java agent используйте один из вариантов:
87+
88+
- Переменная окружения: `OTEL_JAVAAGENT_ENABLED=false`
89+
- JVM-параметр: `-Dotel.javaagent.enabled=false`
90+
91+
Документация:
92+
[Disabling the agent entirely](https://opentelemetry.io/docs/zero-code/java/agent/disable/#disabling-the-agent-entirely)

pom.xml

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</parent>
1212

1313
<artifactId>shared-resources</artifactId>
14-
<version>4.0.0</version>
14+
<version>5.0.0</version>
1515
<packaging>jar</packaging>
1616

1717
<name>Java shared resources</name>
@@ -38,6 +38,10 @@
3838
<url>https://github.com/valitydev/java-shared-resources/tree/master</url>
3939
</scm>
4040

41+
<properties>
42+
<opentelemetry.javaagent.version>2.26.1</opentelemetry.javaagent.version>
43+
</properties>
44+
4145
<dependencies>
4246
<dependency>
4347
<groupId>org.springframework.boot</groupId>
@@ -55,10 +59,48 @@
5559
<artifactId>janino</artifactId>
5660
<version>3.1.9</version>
5761
</dependency>
62+
<dependency>
63+
<groupId>io.opentelemetry.javaagent</groupId>
64+
<artifactId>opentelemetry-javaagent</artifactId>
65+
<version>${opentelemetry.javaagent.version}</version>
66+
</dependency>
67+
<dependency>
68+
<groupId>io.opentelemetry.instrumentation</groupId>
69+
<artifactId>opentelemetry-logback-mdc-1.0</artifactId>
70+
<version>${opentelemetry.javaagent.version}-alpha</version>
71+
<scope>runtime</scope>
72+
</dependency>
5873
</dependencies>
5974

6075
<build>
6176
<plugins>
77+
<plugin>
78+
<groupId>org.apache.maven.plugins</groupId>
79+
<artifactId>maven-dependency-plugin</artifactId>
80+
<version>3.6.1</version>
81+
<executions>
82+
<execution>
83+
<id>copy-opentelemetry-javaagent-to-resources</id>
84+
<phase>generate-resources</phase>
85+
<goals>
86+
<goal>copy</goal>
87+
</goals>
88+
<configuration>
89+
<artifactItems>
90+
<artifactItem>
91+
<groupId>io.opentelemetry.javaagent</groupId>
92+
<artifactId>opentelemetry-javaagent</artifactId>
93+
<version>${opentelemetry.javaagent.version}</version>
94+
<type>jar</type>
95+
<overWrite>true</overWrite>
96+
<outputDirectory>${project.basedir}/src/main/resources</outputDirectory>
97+
<destFileName>opentelemetry-javaagent.jar</destFileName>
98+
</artifactItem>
99+
</artifactItems>
100+
</configuration>
101+
</execution>
102+
</executions>
103+
</plugin>
62104
<plugin>
63105
<artifactId>maven-remote-resources-plugin</artifactId>
64106
<version>3.3.0</version>

src/main/resources/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ FROM ghcr.io/valitydev/temurin-jemalloc:sha-402a042
22

33
RUN useradd -s /bin/false -U -u 20000 vality
44

5+
COPY --chown=vality:vality maven-shared-archive-resources/opentelemetry-javaagent.jar /opt/${artifactId}/opentelemetry-javaagent.jar
56
COPY --chown=vality:vality ${artifactId}-${version}.jar /opt/${artifactId}/${artifactId}.jar
67

78
USER vality:vality
89

9-
CMD ["java", "-jar","/opt/${artifactId}/${artifactId}.jar"]
10+
CMD ["java", "-javaagent:/opt/${artifactId}/opentelemetry-javaagent.jar", "-jar","/opt/${artifactId}/${artifactId}.jar"]
1011

1112
EXPOSE ${exposed.ports}
1213

src/main/resources/logback-spring.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,17 @@
6666
</encoder>
6767
</appender>
6868

69-
<root level="${loggingLevelRoot}">
69+
<appender name="JSON_K8S_CONSOLE_OTEL"
70+
class="io.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender">
71+
<addBaggage>true</addBaggage>
72+
<traceIdKey>otel_trace_id</traceIdKey>
73+
<spanIdKey>otel_span_id</spanIdKey>
74+
<traceFlagsKey>otel_trace_flags</traceFlagsKey>
7075
<appender-ref ref="JSON_K8S_CONSOLE"/>
76+
</appender>
77+
78+
<root level="${loggingLevelRoot}">
79+
<appender-ref ref="JSON_K8S_CONSOLE_OTEL"/>
7180
</root>
7281
</then>
7382
</if>

0 commit comments

Comments
 (0)