A profiler is just a process observing another with the purpose of gathering statistics about executed code.
In this sense, the API proposes to treat a profiler as an asynchronous evaluation (see \evaluations for more information).
The proposed workflow is the following:
- Issue a profiler, either by a
POST
to/profilers
, or by usingprofile=true
on aPOST
to/evaluations
(see evaluations). - Follow the progress of the profiler by polling
/profilers/{id}
with profiler's ID (much as an evaluation progress is followed) - Once the profiler state is
finished
, results can be retrieved from/profilers/{id}/tree
and/profilers/{id}/ranking
.
Endpoints to manage profilers and access their results.
Method | Path | Description | Parameters | Payload |
---|---|---|---|---|
POST | /profilers | Create a new profiler on a given expression | - | expression |
GET | /profilers | Retrieve active profilers | - | - |
GET | /profilers/{id} | Retrieve the profiler with a given ID | - | - |
GET | /profilers/{id}/tree | Retrieve a tree-like results of a given profiler | - | - |
GET | /profilers/{id}/ranking | Retrieve ranked results of a given profiler | - | - |
DELETE | /profilers/{id} | Delete a given profiler | - | - |