async-profiler-actuator-endpoint

所属分类:hotest
开发工具:Java
文件大小:0KB
下载次数:0
上传日期:2022-11-28 10:18:15
上 传 者sh-1993
说明:  异步分析器执行器终结点,,
(async-profiler-actuator-endpoint,,)

文件列表:
.travis.yml (138, 2023-12-17)
LICENSE (11357, 2023-12-17)
pom.xml (6499, 2023-12-17)
src/ (0, 2023-12-17)
src/main/ (0, 2023-12-17)
src/main/java/ (0, 2023-12-17)
src/main/java/com/ (0, 2023-12-17)
src/main/java/com/taboola/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/AsyncProfilerService.java (5992, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/LabelsWrapper.java (980, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/ContinuousProfilingSnapshotRequest.java (364, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/ProfileResultsReporter.java (203, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/pyroscope/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/pyroscope/PyroscopeReporter.java (7763, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/continuous/pyroscope/PyroscopeReporterConfig.java (517, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/AsyncProfilerCommandsFactory.java (4751, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/AsyncProfilerFacade.java (7506, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/ProfileContext.java (256, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/ProfileRequest.java (1302, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/ProfileResult.java (571, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/profiler/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/profiler/AsyncProfiler.java (1608, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/profiler/AsyncProfilerSupplier.java (906, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/profiler/EmptyAsyncProfiler.java (2050, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/facade/profiler/LazyLoadedAsyncProfiler.java (2054, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/original/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/original/Events.java (1024, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/original/Format.java (343, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/serviceconfig/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/serviceconfig/AsyncProfilerServiceConfigurations.java (311, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/serviceconfig/ContinuousProfilingConfig.java (640, 2023-12-17)
src/main/java/com/taboola/async_profiler/api/serviceconfig/ExecutorServiceConfig.java (293, 2023-12-17)
src/main/java/com/taboola/async_profiler/spring/ (0, 2023-12-17)
src/main/java/com/taboola/async_profiler/spring/AsyncProfilerEndpoint.java (3409, 2023-12-17)
... ...

# async-profiler-actuator-endpoint [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.taboola/async-profiler-actuator-endpoint/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/com.taboola/async-profiler-actuator-endpoint) [![Build Status](https://travis-ci.org/taboola/async-profiler-actuator-endpoint.svg?branch=master)](https://travis-ci.org/taboola/async-profiler-actuator-endpoint) This project contains a spring boot actuator endpoint implementation which serves as a wrapper for [Async Profiler](https://github.com/jvm-profiling-tools/async-profiler). It allows controlling the profiler via simple HTTP GET requests to the profiled service itself. You can either send a blocking profile request and get the flame graph in the response, or send a non-blocking request to start a continuous-profiling session which will periodically report profile results to a dedicated reporter. #### Async Profiler Library The profiler library is already bundled in this project. #### Continuous Profiling As mentioned above, we also support continuous profiling to periodically run the profiler and report the results to a dedicated reporter. We provide a default PyroscopeReporter, to report the snapshots to a configurable [Pyroscope](https://github.com/pyroscope-io/pyroscope) server, but you can also create a different ProfileResultsReporter bean to override the default one with your own custom implementation. You can start/stop the session from the endpoint, but you can also configure it to start automatically when the service starts by configuring: ```com.taboola.asyncProfiler.continuousProfiling.startOnInit=true``` #### Getting Started Add the dependency: ``` com.taboola async-profiler-actuator-endpoint ``` Wire it into your app by including the endpoint configuration class in your application context configuration class, e.g: ``` @Configuration @Import(AsyncProfilerEndpointConfig.class) public class YourSpringConfigurationClass { } ``` #### Endpoints 1. `/async-profiler/profile` - to profile the service and get the flame graph in the response (blocking call, default is cpu profiling for 60sec). Or, for example, profile multiple events together for 30 seconds and get it as a .jfr file attachment in the response: `/async-profiler/profile?events=alloc,cpu,lock&durationSeconds=30` Check [ProfileRequest](https://github.com/taboola/async-profiler-actuator-endpoint/blob/main/src/main/java/com/taboola/async_profiler/api/facade/ProfileRequest.java) to see the possible request parameters. 2. `/async-profiler/stop` - to stop a currently active profile request, if any, and get its profiling output in the response. 3. `/async-profiler/start-continuous` - to start a continuous profiling session. This will use the default parameters (cpu profiling in 10-seconds snapshots), you can override them with the same parameters that are available for profile requests. 4. `/async-profiler/stop-continuous` - to stop a continuous profiling session. 5. `/async-profiler/events` - to get the supported event types. 6. `/async-profiler/version` - to get the loaded profiler version.

近期下载者

相关文件


收藏者