Commit graph

3 commits

Author SHA1 Message Date
Cauê Marcondes
98d2766de8
[Profiling-APM] Removing Profiling dependency from APM (#166253)
This PR removes the Profiling dependency from APM, introduced on `8.10`.

- Exposes a new service in profiling-data-access plugin
- Create a new APM API that calls the new service and checks if
Profiling is initialized
- Move Locators from the Profiling plugin to the Observability-shared
plugin
- Move logic to check Profiling status (has_setup/has_data...) from
Profiling server to profiling-data-access plugin
- Create API tests, testing the status services based on different
scenarios:
  - When profiling hasn't been initialized and there's no data
  - When profiling is initialized but has no data
  - When collector integration is not installed
  - When symbolized integration is not installed
  - When APM server integration is not found

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2023-09-22 09:16:48 +01:00
Cauê Marcondes
7e25900bc5
[Profiling-APM] Service Profiling Top 10 Functions (#166226)
- Move logic to fetch the TopN functions to
'profiling-data-access-plugin'
- Create new TopN functions embeddable
- Refactor Universal profiling page on APM adding Tabs (Flamegraph | Top
10 functions)
- Create a new API on APM to fetch Top functions

<img width="1605" alt="Screenshot 2023-09-08 at 11 14 13"
src="76fc7bf3-094b-438b-99b8-3cab01539eb4">
<img width="1615" alt="Screenshot 2023-09-08 at 11 14 20"
src="c4d3e97a-eee0-4829-8d6f-545f9c844b18">

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joseph Crail <joseph.crail@elastic.co>
2023-09-20 08:35:19 -07:00
Cauê Marcondes
a9e882d18b
[Profiling-APM] Service Profiling flamegraph (#165360)
- Move files from profiling-data-access-plugin to a new Kibana pkg
@kbn/profiling-utils
- Create a Profling flamegraph embeddable component in the Profiling
plugin
- Create a Profiling flamegraph embeddable client in the
Observability-shared plugin
- Create a Profiling tab in APM (it's only visible when kibana setting
is enabled and Profiling has been initialized)
- This PR has not yet removed the Profiling dependency from the APM
plugin. For that, I need to refactor some parts on Profiling side and
move some logic to the data access plugin. This will be done on another
PR.

**How plugins can use the Profiling Flamegraph**

1. Call
[profilingDataAccessStart.services.fetchFlamechartData](https://github.com/elastic/kibana/blob/main/x-pack/plugins/profiling_data_access/server/services/fetch_flamechart/index.ts#L22),
it returns an
[ElasticFlameGraph](https://github.com/elastic/kibana/blob/main/x-pack/plugins/profiling_data_access/common/flamegraph.ts#L74).
2. Render the
[EmbeddableFlamegraph](https://github.com/elastic/kibana/pull/165360/files#diff-fb9763ef775d15950acb682abf7447259c3feae74fab413d4e1a14fdcc401351R21)
component passing the data received.



2aa3d1b6-3649-4e58-a088-11890a09feec

---


<img width="885" alt="Screenshot 2023-09-05 at 09 41 11"
src="dc65f870-c4f6-4654-8cdd-8e2cd8e97b00">

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joseph Crail <joseph.crail@elastic.co>
2023-09-12 01:19:31 -07:00