mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 03:01:21 -04:00
[examples] add routes to access v8 profiling (#155956)
Adds routes to run v8 profiling tools, when running the examples plugins via `--run-examples` See the included README.md for more info
This commit is contained in:
parent
b12238bac8
commit
1f3426942c
17 changed files with 547 additions and 0 deletions
35
examples/v8_profiler_examples/server/lib/heap_profile.ts
Normal file
35
examples/v8_profiler_examples/server/lib/heap_profile.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { Session } from './session';
|
||||
|
||||
interface StartProfilingArgs {
|
||||
samplingInterval: number;
|
||||
includeObjectsCollectedByMajorGC: boolean;
|
||||
includeObjectsCollectedByMinorGC: boolean;
|
||||
}
|
||||
|
||||
// Start a new profile, resolves to a function to stop the profile and resolve
|
||||
// the profile data.
|
||||
export async function startProfiling(
|
||||
session: Session,
|
||||
args: StartProfilingArgs
|
||||
): Promise<() => any> {
|
||||
session.logger.info(`starting heap profile with args: ${JSON.stringify(args)}`);
|
||||
|
||||
await session.post('Profiler.enable');
|
||||
await session.post('HeapProfiler.enable');
|
||||
await session.post('HeapProfiler.startSampling', args);
|
||||
|
||||
// returned function which stops the profile and resolves to the profile data
|
||||
return async function stopProfiling() {
|
||||
session.logger.info('stopping heap profile');
|
||||
const result: any = await session.post('HeapProfiler.stopSampling');
|
||||
return result.profile;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue