Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit624d1a9

Browse files
author
Connell, Joseph
committed
Added otel enabled Docker Compose file. Otel Enabled on lowcoder-api-service. Updated .sh files from CRLF to LF. Updated DockerFile to include OpenTelemetry JavaAgent.
1 parentc174d6b commit624d1a9

File tree

2 files changed

+212
-0
lines changed

2 files changed

+212
-0
lines changed

‎deploy/docker/Dockerfile‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ RUN mkdir -p /lowcoder/api-service/config /lowcoder/api-service/logs /lowcoder/p
1414
# Copy lowcoder server configuration
1515
COPY server/api-service/lowcoder-server/src/main/resources/application.yaml /lowcoder/api-service/config/
1616

17+
# Add Opentelemetry agent
18+
RUN curl -L -o /lowcoder/api-service/opentelemetry-javaagent.jar \
19+
"https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar"
20+
1721
# Add bootstrapfile
1822
COPY deploy/docker/api-service/entrypoint.sh /lowcoder/api-service/entrypoint.sh
1923
COPY deploy/docker/api-service/init.sh /lowcoder/api-service/init.sh
@@ -43,6 +47,9 @@ COPY --chown=lowcoder:lowcoder --from=build-api-service /lowcoder-server/lowcode
4347
COPY --chown=lowcoder:lowcoder --from=build-api-service /lowcoder-server/lowcoder-server/target/lowcoder-api-service-bin/libs /lowcoder/api-service/libs
4448
COPY --chown=lowcoder:lowcoder --from=build-api-service /lowcoder-server/lowcoder-server/target/lowcoder-api-service-bin/plugins /lowcoder/api-service/plugins
4549

50+
#Define OpenTelemetry Java agent
51+
ENV JAVA_TOOL_OPTIONS="-javaagent:/lowcoder/api-service/opentelemetry-javaagent.jar"
52+
4653
EXPOSE 8080
4754
CMD ["/bin/bash" ,"/lowcoder/api-service/entrypoint.sh" ]
4855

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
name:lowcoder-ce
2+
3+
services:
4+
5+
##
6+
## Start services required for Lowcoder (MongoDB and Redis)
7+
##
8+
mongodb:
9+
image:"mongo:7.0"
10+
container_name:mongodb
11+
environment:
12+
MONGO_INITDB_DATABASE:lowcoder
13+
MONGO_INITDB_ROOT_USERNAME:lowcoder
14+
MONGO_INITDB_ROOT_PASSWORD:secret123
15+
volumes:
16+
-./lowcoder-stacks/data/mongodb:/data/db
17+
restart:unless-stopped
18+
healthcheck:# https://github.com/rodrigobdz/docker-compose-healthchecks?tab=readme-ov-file#mongo
19+
test:
20+
[
21+
"CMD",
22+
"mongosh",
23+
"--quiet",
24+
"127.0.0.1/test",
25+
"--eval",
26+
"'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'",
27+
]
28+
interval:5s
29+
timeout:10s
30+
retries:10
31+
start_period:40s
32+
33+
redis:
34+
image:redis:7-alpine
35+
container_name:redis
36+
restart:unless-stopped
37+
healthcheck:# https://stackoverflow.com/a/71504657
38+
test:["CMD-SHELL", "redis-cli ping | grep PONG"]
39+
interval:1s
40+
timeout:3s
41+
retries:10
42+
43+
44+
##
45+
## Start Lowcoder backend services (api-service and node-service)
46+
##
47+
lowcoder-api-service:
48+
image:lowcoder-ce-api-service-jmc:latest
49+
container_name:lowcoder-api-service
50+
# Enabled ports to be able to access backend from host
51+
# ports:
52+
# - "8080:8080"
53+
environment:
54+
LOWCODER_PUBLIC_URL:"http://localhost:3000/"
55+
LOWCODER_PUID:"9001"
56+
LOWCODER_PGID:"9001"
57+
LOWCODER_MONGODB_URL:"mongodb://lowcoder:secret123@mongodb/lowcoder?authSource=admin"
58+
LOWCODER_REDIS_URL:"redis://redis:6379"
59+
LOWCODER_NODE_SERVICE_URL:"http://lowcoder-node-service:6060"
60+
LOWCODER_MAX_QUERY_TIMEOUT:120
61+
LOWCODER_MAX_REQUEST_SIZE:20m
62+
LOWCODER_EMAIL_AUTH_ENABLED:"true"
63+
LOWCODER_EMAIL_SIGNUP_ENABLED:"true"
64+
LOWCODER_CREATE_WORKSPACE_ON_SIGNUP:"true"
65+
#
66+
# ! PLEASE CHANGE THESE TO SOMETHING UNIQUE !
67+
#
68+
# LOWCODER_DB_ENCRYPTION_PASSWORD and LOWCODER_DB_ENCRYPTION_SALT is used
69+
# to encrypt sensitive data in database so it is important to change the defaults
70+
#
71+
LOWCODER_DB_ENCRYPTION_PASSWORD:"lowcoder.org"
72+
LOWCODER_DB_ENCRYPTION_SALT:"lowcoder.org"
73+
LOWCODER_CORS_DOMAINS:"*"
74+
LOWCODER_MAX_ORGS_PER_USER:100
75+
LOWCODER_MAX_MEMBERS_PER_ORG:1000
76+
LOWCODER_MAX_GROUPS_PER_ORG:100
77+
LOWCODER_MAX_APPS_PER_ORG:1000
78+
LOWCODER_MAX_DEVELOPERS:50
79+
#
80+
# API-KEY secret - should be a string of at least 32 random characters
81+
# - on linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256
82+
#
83+
LOWCODER_API_KEY_SECRET:"5a41b090758b39b226603177ef48d73ae9839dd458ccb7e66f7e7cc028d5a50b"
84+
LOWCODER_PLUGINS_DIR:"../plugins"
85+
LOWCODER_API_RATE_LIMIT:50
86+
LOWCODER_WORKSPACE_MODE:SAAS
87+
LOWCODER_MARKETPLACE_PRIVATE_MODE:"true"
88+
# Lowcoder notification emails setup
89+
LOWCODER_ADMIN_SMTP_HOST:smtp.gmail.com
90+
LOWCODER_ADMIN_SMTP_PORT:587
91+
LOWCODER_ADMIN_SMTP_USERNAME:
92+
LOWCODER_ADMIN_SMTP_PASSWORD:
93+
LOWCODER_ADMIN_SMTP_AUTH:"true"
94+
LOWCODER_ADMIN_SMTP_SSL_ENABLED:"false"
95+
LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED:"true"
96+
LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED:"true"
97+
# Email used as sender in lost password email
98+
LOWCODER_EMAIL_NOTIFICATIONS_SENDER:info@localhost
99+
# Lowcoder superuser details
100+
LOWCODER_SUPERUSER_USERNAME:admin@localhost
101+
# If left blank, a password will be generated and written into api-service log
102+
LOWCODER_SUPERUSER_PASSWORD:
103+
104+
# OpenTelemetry Related Settings
105+
# OTEL_JAVAAGENT_ENABLED: "false"
106+
OTEL_RESOURCE_ATTRIBUTES:"service.name=lowcoder-api-service,service.version=2.6.5,deployment.environment=production"
107+
OTEL_SERVICE_NAME:"lowcoder-api-service"
108+
OTEL_EXPORTER_OTLP_PROTOCOL:"grpc"
109+
OTEL_EXPORTER_OTLP_ENDPOINT:"http://otel-lgtm:4317"
110+
OTEL_TRACES_EXPORTER:"otlp"
111+
OTEL_METRICS_EXPORTER:"otlp"
112+
OTEL_LOGS_EXPORTER:"otlp"
113+
114+
115+
restart:unless-stopped
116+
depends_on:
117+
mongodb:
118+
condition:service_healthy
119+
restart:true
120+
redis:
121+
condition:service_healthy
122+
restart:true
123+
otel-lgtm:
124+
condition:service_healthy
125+
restart:true
126+
volumes:
127+
-./lowcoder-stacks:/lowcoder-stacks
128+
-./lowcoder-stacks/assets:/lowcoder/assets
129+
healthcheck:#https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthcheck
130+
test:curl -sS http://lowcoder-api-service:8080 | grep -c "Lowcoder API is up and runnig" > /dev/null
131+
interval:3s
132+
timeout:5s
133+
retries:10
134+
135+
136+
lowcoder-node-service:
137+
image:lowcoder-ce-node-service-jmc:latest
138+
container_name:lowcoder-node-service
139+
# Enabled ports to be able to access backend from host
140+
# ports:
141+
# - "6060:6060"
142+
environment:
143+
LOWCODER_PUID:"9001"
144+
LOWCODER_PGID:"9001"
145+
LOWCODER_API_SERVICE_URL:"http://lowcoder-api-service:8080"
146+
restart:unless-stopped
147+
depends_on:
148+
lowcoder-api-service:
149+
condition:service_healthy
150+
restart:true
151+
healthcheck:#https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthcheck
152+
test:curl -sS http://lowcoder-node-service:6060 | grep -c "Lowcoder Node Service is up and running" > /dev/null
153+
interval:3s
154+
timeout:5s
155+
retries:10
156+
157+
##
158+
## Start Lowcoder web frontend
159+
##
160+
lowcoder-frontend:
161+
image:lowcoder-ce-frontend-jmc:latest
162+
container_name:lowcoder-frontend
163+
ports:
164+
-"3000:3000"
165+
environment:
166+
LOWCODER_PUID:"9001"
167+
LOWCODER_PGID:"9001"
168+
LOWCODER_MAX_REQUEST_SIZE:20m
169+
LOWCODER_MAX_QUERY_TIMEOUT:120
170+
LOWCODER_API_SERVICE_URL:"http://lowcoder-api-service:8080"
171+
LOWCODER_NODE_SERVICE_URL:"http://lowcoder-node-service:6060"
172+
restart:unless-stopped
173+
depends_on:
174+
lowcoder-node-service:
175+
condition:service_healthy
176+
restart:true
177+
lowcoder-api-service:
178+
condition:service_healthy
179+
restart:true
180+
volumes:
181+
-./lowcoder-stacks/assets:/lowcoder/assets
182+
healthcheck:
183+
test:curl --fail http://lowcoder-frontend:3000 || exit 1
184+
interval:5s
185+
retries:10
186+
start_period:10s
187+
timeout:10s
188+
otel-lgtm:
189+
image:grafana/otel-lgtm:latest
190+
container_name:otel-lgtm
191+
ports:
192+
-"3001:3000"# Grafana UI
193+
-"4317:4317"# OTLP gRPC receiver
194+
-"4318:4318"# OTLP HTTP receiver
195+
-"9090:9090"# Prometheus / Mimir
196+
-"3100:3100"# Loki
197+
-"3200:3200"# Tempo
198+
volumes:
199+
-./otel-lgtm-data:/data# Persistent storage for Grafana, Loki, Tempo, Mimir
200+
healthcheck:
201+
test:["CMD", "curl", "-f", "http://localhost:3001/api/health"]# Check Grafana UI health
202+
interval:10s
203+
timeout:5s
204+
retries:5
205+
start_period:30s# Give it some time to start up initially

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp