Skip to main content
odictl includes a built-in profiling view so you can inspect continuous CPU profiles directly in the terminal—without opening an external backend. Use it to find the functions consuming the most CPU in a service, and to drive profile-driven custom instrumentation.

Prerequisites

  • VM Agent installed and running (Installation).
  • At least one source enabled for the workloads you want to profile.
  • The profiling pipeline enabled. You can enable it ahead of time (see Getting started or the Configuration Editor’s Profiling section in odictl), or directly from the profiling view as described below.

Open the profiling view

From the main odictl dashboard, press Shift+P to open the profiling view. If profiling is not yet enabled, odictl shows an Odigos profiling is not enabled prompt. Press Enter to enable it. odictl profiling view prompting to enable profiling
You can also enable profiling without opening this view by setting profiling.enabled in the Configuration Editor. See Getting started for the full setup.
After profiling is enabled, the agent collects samples before any data appears. This can take up to a minute.
The first load may be empty while samples are gathered. Wait a few moments and the services and functions populate automatically—no restart is needed.
odictl profiling view collecting profile data The profiling view has three panes: a Services list on the left, a Filter modules bar across the top, and a Functions list. Use Tab to move between them and the arrow keys to move within the focused pane.
KeyAction
Shift+POpen the profiling view from the dashboard
TabCycle between the Services, Filter modules, and Functions panes
/ Move between items in the focused pane
SpaceToggle the highlighted module in the Filter modules pane
aShow app-only functions
iInstrument the highlighted function (or remove its instrumentation)
EscReturn to the main dashboard
Mouse selection is not supported in the profiling view. Use the arrow keys to select items and Tab to switch panes.

Services pane

The left pane lists the services that have profile data. Use the arrow keys to highlight the service you want to inspect.

Filter modules

Press Tab to focus the Filter modules bar at the top. It controls which modules and sample types appear in the Functions list:
  • Module — selects which modules to show in the profile. This is set based on the language of the selected service (for example, Java). You can also choose vmlinux or other libraries based on the runtime/language. Press Space to toggle the highlighted module.
  • Type — defaults to app. You can also select library or kernel, or press a to show app-only functions.
odictl profiling view module and type filters

Functions pane

Press Tab again to focus the list of profiled functions for the selected service and filter. Use the arrow keys to highlight a function. From here, press i to instrument the highlighted function (the panel then shows [i] remove to undo it)—see Instrument from Profiles for the full workflow.

Getting Help

If you have any issues, or require our assistance, please open an issue in GitHub, or reach out to us in Odigos Slack