Skip to content

Commit 2332bea

Browse files
committed
chore(server): add Easy-Monitor
1 parent a50270f commit 2332bea

File tree

11 files changed

+385
-20
lines changed

11 files changed

+385
-20
lines changed

.github/actions/deploy/deploy.mjs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ const {
1919
AFFINE_INDEXER_SEARCH_PROVIDER,
2020
AFFINE_INDEXER_SEARCH_ENDPOINT,
2121
AFFINE_INDEXER_SEARCH_API_KEY,
22+
EZM_SERVER,
23+
EZM_APP_ID,
24+
EZM_APP_SECRET,
2225
} = process.env;
2326

2427
const buildType = BUILD_TYPE || 'canary';
@@ -89,6 +92,14 @@ const createHelmCommand = ({ isDryRun }) => {
8992
`--set-string global.indexer.endpoint="${AFFINE_INDEXER_SEARCH_ENDPOINT}"`,
9093
`--set-string global.indexer.apiKey="${AFFINE_INDEXER_SEARCH_API_KEY}"`,
9194
];
95+
const ezmOptions =
96+
EZM_SERVER && EZM_APP_ID && EZM_APP_SECRET
97+
? [
98+
`--set-string global.ezm.server="${EZM_SERVER}"`,
99+
`--set-string global.ezm.appId="${EZM_APP_ID}"`,
100+
`--set-string global.ezm.appSecret="${EZM_APP_SECRET}"`,
101+
]
102+
: [];
92103
const serviceAnnotations = [
93104
`--set-json web.serviceAccount.annotations="{ \\"iam.gke.io/gcp-service-account\\": \\"${APP_IAM_ACCOUNT}\\" }"`,
94105
`--set-json graphql.serviceAccount.annotations="{ \\"iam.gke.io/gcp-service-account\\": \\"${APP_IAM_ACCOUNT}\\" }"`,
@@ -144,6 +155,7 @@ const createHelmCommand = ({ isDryRun }) => {
144155
`--set-string global.version="${APP_VERSION}"`,
145156
...redisAndPostgres,
146157
...indexerOptions,
158+
...ezmOptions,
147159
`--set web.replicaCount=${replica.web}`,
148160
`--set-string web.image.tag="${imageTag}"`,
149161
`--set graphql.replicaCount=${replica.graphql}`,

.github/deployment/node/Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ COPY ./packages/frontend/apps/mobile/dist /app/static/mobile
77
WORKDIR /app
88

99
RUN apt-get update && \
10-
apt-get install -y --no-install-recommends openssl && \
10+
apt-get install -y --no-install-recommends openssl libjemalloc2 procps && \
1111
rm -rf /var/lib/apt/lists/*
1212

13+
# Enable jemalloc by preloading the library
14+
# ENV LD_PRELOAD=libjemalloc.so.2
15+
1316
CMD ["node", "./dist/main.js"]

.github/helm/affine/charts/graphql/templates/deployment.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ spec:
7676
secretKeyRef:
7777
name: indexer
7878
key: indexer-apiKey
79+
{{- if .Values.global.ezm.server }}
80+
- name: EZM_SERVER
81+
value: "{{ .Values.global.ezm.server }}"
82+
- name: EZM_APP_ID
83+
value: "{{ .Values.global.ezm.appId }}"
84+
- name: EZM_APP_SECRET
85+
valueFrom:
86+
secretKeyRef:
87+
name: ezm
88+
key: ezm-appSecret
89+
{{- end }}
7990
- name: AFFINE_SERVER_PORT
8091
value: "{{ .Values.service.port }}"
8192
- name: AFFINE_SERVER_SUB_PATH

.github/helm/affine/charts/graphql/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ resources:
3030
requests:
3131
cpu: '2'
3232
memory: 2Gi
33+
ephemeral-storage: 2Gi
34+
limits:
35+
# allow create core dump file
36+
ephemeral-storage: 2Gi
3337

3438
probe:
3539
initialDelaySeconds: 20
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{{- if .Values.global.ezm.appSecret -}}
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: ezm
6+
annotations:
7+
"helm.sh/hook": pre-install,pre-upgrade
8+
"helm.sh/hook-weight": "-2"
9+
"helm.sh/hook-delete-policy": before-hook-creation
10+
type: Opaque
11+
data:
12+
ezm-appSecret: {{ .Values.global.ezm.appSecret | b64enc }}
13+
{{- end }}

.github/helm/affine/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ global:
3232
endpoint: ''
3333
username: ''
3434
password: ''
35+
ezm:
36+
appId: ''
37+
appSecret: ''
38+
server: ''
3539
docService:
3640
name: 'affine-doc'
3741
port: 3020

.github/workflows/release-cloud.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,6 @@ jobs:
6464
AFFINE_INDEXER_SEARCH_PROVIDER: ${{ secrets.AFFINE_INDEXER_SEARCH_PROVIDER }}
6565
AFFINE_INDEXER_SEARCH_ENDPOINT: ${{ secrets.AFFINE_INDEXER_SEARCH_ENDPOINT }}
6666
AFFINE_INDEXER_SEARCH_API_KEY: ${{ secrets.AFFINE_INDEXER_SEARCH_API_KEY }}
67+
EZM_SERVER: ${{ secrets.EZM_SERVER }}
68+
EZM_APP_ID: ${{ secrets.EZM_APP_ID }}
69+
EZM_APP_SECRET: ${{ secrets.EZM_APP_SECRET }}

packages/backend/server/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@
118118
"ts-node": "^10.9.2",
119119
"typescript": "^5.7.2",
120120
"winston": "^3.17.0",
121+
"xprofiler": "^3.0.0",
122+
"xtransit": "^3.0.1",
121123
"yjs": "^13.6.21",
122124
"zod": "^3.24.1"
123125
},

packages/backend/server/src/ezm.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { start as startXprofiler } from 'xprofiler';
2+
import { start as startXtransit } from 'xtransit';
3+
4+
startXprofiler();
5+
startXtransit({
6+
server: process.env.EZM_SERVER ?? '',
7+
appId: parseInt(process.env.EZM_APP_ID ?? '0'),
8+
appSecret: process.env.EZM_APP_SECRET ?? '',
9+
});

packages/backend/server/src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@ import { run as runServer } from './server';
77
if (env.flavors.script) {
88
await runCli();
99
} else {
10+
if (process.env.EZM_SERVER) {
11+
await import('./ezm');
12+
}
1013
await runServer();
1114
}

0 commit comments

Comments
 (0)