Skip to content

Commit 55c0e63

Browse files
committed
refactor: removed heapdump writing
1 parent 1ce6f2e commit 55c0e63

File tree

6 files changed

+15
-43
lines changed

6 files changed

+15
-43
lines changed

Dockerfile

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
11
FROM node:18-alpine as builder
22
WORKDIR /app
33
COPY indexer yarn.lock ./
4-
# Install build dependencies for native modules like heapdump
5-
RUN apk add --no-cache python3 make g++
64
RUN rm -rf node_modules && yarn install --frozen-lockfile
75
RUN npx graphql-codegen
86
RUN yarn build
97

108
FROM node:18-alpine
119
WORKDIR /app
1210
COPY indexer/package.json indexer/tsconfig.json yarn.lock ./
13-
# Install build dependencies for native modules like heapdump
14-
RUN apk add --no-cache python3 make g++
1511
RUN yarn install --frozen-lockfile
1612
COPY --from=builder /app/dist ./dist
1713
COPY --from=builder /app/src/config/global-bundle.pem ./dist/config/global-bundle.pem
1814
COPY --from=builder /app/src/kadena-server/config/schema.graphql ./dist/kadena-server/config/schema.graphql
1915
COPY --from=builder /app/src/circulating-coins/ ./dist/circulating-coins/
20-
# Create snapshots directory for heap dumps
21-
RUN mkdir -p /snapshots
2216
EXPOSE 3001
2317

2418
ARG INDEXER_MODE_PARAM

indexer/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
"@types/decimal.js": "^7.4.3",
5252
"@types/eventsource": "^1.1.15",
5353
"@types/express": "^4.17.21",
54-
"@types/heapdump": "^0.3.4",
5554
"@types/jest": "^29.5.12",
5655
"@types/mocha": "^10.0.7",
5756
"@types/node": "^20.11.17",
@@ -62,7 +61,6 @@
6261
"dotenv": "^16.4.4",
6362
"dotenv-cli": "^8.0.0",
6463
"eslint": "^8.56.0",
65-
"heapdump": "^0.3.15",
6664
"jest": "^29.7.0",
6765
"mocha": "^10.7.3",
6866
"module-alias": "^2.2.3",

indexer/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { startStreaming } from './services/streaming';
2020
import { backfillPairEvents } from './services/pair';
2121
import { setupAssociations } from './models/setup-associations';
2222
import { PriceUpdaterService } from '@/services/price/price-updater.service';
23+
import { initializeMemoryMonitoring } from '@/utils/memory-usage';
2324

2425
/**
2526
* Command-line interface configuration using Commander.
@@ -51,6 +52,7 @@ async function main() {
5152
try {
5253
console.info('Starting v1.1.0');
5354
initializeErrorMonitoring();
55+
initializeMemoryMonitoring();
5456
setupAssociations();
5557
PriceUpdaterService.getInstance();
5658

indexer/src/kadena-server/server.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
*/
2020

2121
import './plugins/instrument';
22-
import heapdump from 'heapdump';
2322
import { ApolloServer, ApolloServerPlugin } from '@apollo/server';
2423
import { expressMiddleware } from '@apollo/server/express4';
2524
import { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer';
@@ -511,23 +510,6 @@ export async function startGraphqlServer() {
511510
res.status(404).end();
512511
});
513512

514-
const logMemoryUsage = () => {
515-
const mem = process.memoryUsage();
516-
console.info(
517-
`[INFO][MEMORY] Heap: ${(mem.heapUsed / 1024 / 1024).toFixed(2)}MB / ${(mem.heapTotal / 1024 / 1024).toFixed(2)}MB | External: ${(mem.external / 1024 / 1024).toFixed(2)}MB | RSS: ${(mem.rss / 1024 / 1024).toFixed(2)}MB`,
518-
);
519-
520-
// Capture heap snapshot at 1GB memory threshold
521-
if (mem.heapUsed > 1 * 1024 * 1024 * 1024) {
522-
const filename = `/snapshots/indexer-heap-1GB-${Date.now()}.heapsnapshot`;
523-
console.warn(`[WARN][MEMORY] 1GB threshold reached! Capturing heap snapshot: ${filename}`);
524-
heapdump.writeSnapshot(filename);
525-
}
526-
};
527-
528-
// Start periodic memory monitoring every one hour
529-
setInterval(logMemoryUsage, 1000 * 60 * 60);
530-
531513
// Initialize cache and start the server
532514
await initCache(context);
533515
await new Promise<void>(resolve => httpServer.listen({ port: KADENA_GRAPHQL_API_PORT }, resolve));

indexer/src/utils/memory-usage.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
export const initializeMemoryMonitoring = () => {
2+
const memoryMonitoringInterval = 1000 * 60 * 30; // 30 minutes
3+
setInterval(monitorMemoryUsage, memoryMonitoringInterval);
4+
};
5+
6+
const monitorMemoryUsage = () => {
7+
const mem = process.memoryUsage();
8+
const heapUsedMB = mem.heapUsed / 1024 / 1024;
9+
const heapInfo = `Heap: ${heapUsedMB.toFixed(2)}MB / ${(mem.heapTotal / 1024 / 1024).toFixed(2)}MB`;
10+
const externalInfo = `External: ${(mem.external / 1024 / 1024).toFixed(2)}MB`;
11+
const rssInfo = `RSS: ${(mem.rss / 1024 / 1024).toFixed(2)}MB`;
12+
console.info(`[INFO][MEMORY] ${heapInfo} | ${externalInfo} | ${rssInfo}`);
13+
};

yarn.lock

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2663,11 +2663,6 @@
26632663
dependencies:
26642664
"@types/node" "*"
26652665

2666-
"@types/heapdump@^0.3.4":
2667-
version "0.3.4"
2668-
resolved "https://registry.yarnpkg.com/@types/heapdump/-/heapdump-0.3.4.tgz#59645b30165d832ea654449c8ffbed0c156ad60c"
2669-
integrity sha512-gTGn7W7i58F1yzvLZ5+hRE7M/VqgEzgccERJ9ZThC6qor5R8wo3oP7iiHvwgHIZzoqPF22ngu8mBagcqPWMVTg==
2670-
26712666
"@types/http-errors@*":
26722667
version "2.0.4"
26732668
resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz"
@@ -5350,13 +5345,6 @@ header-case@^2.0.4:
53505345
capital-case "^1.0.4"
53515346
tslib "^2.0.3"
53525347

5353-
heapdump@^0.3.15:
5354-
version "0.3.15"
5355-
resolved "https://registry.yarnpkg.com/heapdump/-/heapdump-0.3.15.tgz#631a8a2585588ea64778d8ec80a64c6c025f6a08"
5356-
integrity sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==
5357-
dependencies:
5358-
nan "^2.13.2"
5359-
53605348
html-escaper@^2.0.0:
53615349
version "2.0.2"
53625350
resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz"
@@ -6707,11 +6695,6 @@ [email protected]:
67076695
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz"
67086696
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
67096697

6710-
nan@^2.13.2:
6711-
version "2.23.0"
6712-
resolved "https://registry.yarnpkg.com/nan/-/nan-2.23.0.tgz#24aa4ddffcc37613a2d2935b97683c1ec96093c6"
6713-
integrity sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==
6714-
67156698
napi-wasm@^1.1.0:
67166699
version "1.1.0"
67176700
resolved "https://registry.npmjs.org/napi-wasm/-/napi-wasm-1.1.0.tgz"

0 commit comments

Comments
 (0)