3.0.2 • Published 8 days ago
@beincom/node-profile v3.0.2
Getting started
npm install @beincom/node-profile
# yarn add @beincom/node-profile
Usage
# app.module.ts
@Module({
imports: [
ProfileModule.forRootAsync({
useFactory: (configService: ConfigService) => {
const labels: Record<string, string | number> = {
pod: process.env.pod,
version: process.env.version,
};
const tags: Record<string, string> = {};
const profileConfig: ProfileConfig = {
serverAddress: pyroscope.serverAddress,
applicationName: process.env.APP_NAME,
tags: tags,
heap: {
samplingIntervalBytes: Number(process.env.HEAP_INTERVAL_BYTES), // 512 * 1024
stackDepth: Number(process.env.HEAD_STACK_DEPTH), // Maximum is 64
},
wall: {
samplingDurationMs: Number(process.env.WALL_DURATION), // 10 * 1000
samplingIntervalMicros: Number(process.env.WALL_INTERVAL), // 10 * 1000 * 1000
},
};
const profileService = new ProfileService(profileConfig);
profileService.setWallLabels(labels);
profileService.start();
return profileService;
},
inject: [ConfigService],
}),
],
providers: [],
exports: [],
})
export class AppModule {}
Test
# pyroscope-config.yaml
log-level: debug
storage:
type: filesystem
path: /var/lib/pyroscope
scrape-configs:
- job-name: testing # any name
enabled-profiles: [cpu, mem] # cpu and mem for cpu and heap
static-configs:
- application: rideshare
spy-name: nodespy # make pyroscope know it's node profiles
targets:
- localhost:3001 # address of your scrape target
labels:
env: dev # labels
# docker-compose.yaml
version: '3'
services:
pyroscope:
image: grafana/pyroscope:latest
ports:
- "4040:4040"
environment:
- PYROSCOPE_SERVER_TYPE=pyroscope
- PYROSCOPE_STORAGE_TYPE=filesystem
- PYROSCOPE_LOG_LEVEL=debug
- PYROSCOPE_LISTEN_ADDR=0.0.0.0:4040
- PYROSCOPE_STORAGE_PATH=/var/lib/pyroscope
- PYROSCOPE_MODE=pull
volumes:
- pyroscope-data:/var/lib/pyroscope
- ./pyroscope-config.yaml:/etc/pyroscope/pyroscope-config.yaml
volumes:
pyroscope-data:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: './pyroscope-data'
# Run this command:
docker-compose up -d --force-recreate
docker ps
docker logs -f 6ba
3.0.2
8 days ago
3.0.1
8 days ago
2.7.8
8 days ago
2.7.7
8 days ago
2.8.9
8 days ago
2.8.8
8 days ago
2.7.4
9 days ago
2.7.3
10 days ago
2.7.6
9 days ago
2.7.5
9 days ago
2.4.1
10 days ago
2.6.1
10 days ago
2.5.1
10 days ago
2.7.2
10 days ago
2.7.1
10 days ago
1.4.1
10 days ago
1.3.1
10 days ago
1.2.1
10 days ago
1.1.1
14 days ago
1.0.1
16 days ago
1.0.0
16 days ago