Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Fapm-v2%2Ffeatures%2Fprofiling.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Fapm-v2%2Ffeatures%2Fprofiling.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

# Profile a service

The **Profiling** tab brings [Continuous Profiling](https://coralogix.com/docs/user-guides/continuous-profiling/introduction.md) into the entity drilldown. It shows a service's CPU usage over time and a flame graph of exactly where that time is spent - down to the function and library frame - scoped to the service, environment, and time range you're already looking at, so you can move from a latency or CPU spike to the code behind it without leaving APM.

Use it to:

* **Find what's burning CPU**: read the flame graph to see which functions and libraries dominate the service's CPU time.
* **Tie a spike to code**: line up a rise in the CPU chart with a deployment or configuration change, then drill into the profile for that window.
* **Separate your code from the runtime**: filter to your own frames to skip runtime and library noise.
* **Compare against a baseline**: overlay an earlier period to see whether a profile shifted after a change.

[![The Profiling tab: the profile-type controls above the Profiles section, with the frame table and the flame graph side by side in the split view.](/docs/assets/images/profiling-tab-7671198001742e6cc0c1f5236cd1ffb7.webp)](https://coralogix.com/docs/assets/images/profiling-tab-7671198001742e6cc0c1f5236cd1ffb7.webp)

## What you need[​](#what-you-need "Direct link to What you need")

* Coralogix [Application Performance Monitoring (APM)](https://coralogix.com/docs/user-guides/apm-v2/getting-started/apm-onboarding-tutorial.md) installed and configured.
* [Continuous Profiling](https://coralogix.com/docs/user-guides/continuous-profiling/setup.md) set up for the service, so it reports profiles. Profiling is available for services.

## Access the Profiling tab[​](#access-the-profiling-tab "Direct link to Access the Profiling tab")

1. In your Coralogix toolbar, select **APM**.
2. Select a service to open its drilldown, then select the **Profiling** tab.

If the service isn't sending profiles at all, the tab shows an onboarding card with a link to set up [Continuous Profiling](https://coralogix.com/docs/user-guides/continuous-profiling/setup.md). If it reports profiles but none fall in the selected time range, it shows a **No profiling data** empty state instead.

## Profile type[​](#profile-type "Direct link to Profile type")

A toggle at the top of the tab selects which profile type to view. **CPU** profiling is the default; when the service collects **memory** profiles, switch to a memory type (such as allocated bytes) to profile allocations instead. The available types depend on what the service reports - see [Supported languages](https://coralogix.com/docs/user-guides/continuous-profiling/supported-languages.md).

## CPU over time[​](#cpu-over-time "Direct link to CPU over time")

The **CPU over time** chart plots the service's CPU usage, in cores, across the selected range. [Annotations](https://coralogix.com/docs/user-guides/apm-v2/features/annotations.md) - deployments, alerts, and configuration changes - overlay the chart so you can align a shift in CPU with what caused it, and when you [compare to an earlier period](https://coralogix.com/docs/user-guides/apm-v2/services.md#compare-to-a-previous-period) the comparison window is drawn as a dashed overlay.

Select a point or drag a range on the chart to focus the flame graph below on that window.

## Profiles[​](#profiles "Direct link to Profiles")

The **Profiles** section renders the profile as a flame graph and a frame table. Switch how they're arranged with the view toggle:

* **Split**: the frame table and the flame graph side by side.
* **Flame**: the flame graph only.
* **Table**: the frame table only.

The frame table lists each frame with its **Self** time (spent in the frame itself) and **Total** time (the frame plus everything it calls). The flame graph shows the call tree from **root** down, with each frame's width proportional to its time.

Controls above the profile:

* **Search**: highlight frames by name.
* **Color by**: choose the metric the flame graph is colored by, such as **Total CPU time**.
* **Show only user code**: hide runtime and library frames to focus on your own code.
* **Reset view**: return the flame graph to its default zoom.
* **Download**: export the profile.

For the full flame graph reference, see [Profiles catalog](https://coralogix.com/docs/user-guides/continuous-profiling/profiles-catalog.md).

## Next steps[​](#next-steps "Direct link to Next steps")

Continue with [Serverless monitoring](https://coralogix.com/docs/user-guides/apm/features/serverless-monitoring.md) to monitor functions and other serverless components in APM.

## Additional resources[​](#additional-resources "Direct link to Additional resources")

* [Introduction to Continuous Profiling](https://coralogix.com/docs/user-guides/continuous-profiling/introduction.md)
* [Set up Continuous Profiling](https://coralogix.com/docs/user-guides/continuous-profiling/setup.md)
* [Profiles catalog](https://coralogix.com/docs/user-guides/continuous-profiling/profiles-catalog.md)
