summaryrefslogtreecommitdiff
path: root/doc/administration/monitoring/performance/request_profiling.md
blob: f8a66f6f48f3327cb53b839f148743fdc2e46a5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
stage: Monitor
group: Respond
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---

# Request profiling (DEPRECATED) **(FREE SELF)**

> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/352488) in GitLab 14.8, and planned for removal in GitLab 15.0.

WARNING:
This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/352488)
for use in GitLab 14.8, and is planned for removal in GitLab 15.0.

To profile a request:

1. Sign in to GitLab as an Administrator or a user with the [Maintainer role](../../../user/permissions.md).
1. In the navigation bar, click **Admin area**.
1. Go to **Monitoring > Requests Profiles**.
1. In the **Requests Profiles** section, copy the token.
1. Pass the headers `X-Profile-Token: <token>` and `X-Profile-Mode: <mode>`(where
   `<mode>` can be `execution` or `memory`) to the request you want to profile. When
   passing headers, you can use:

   - Browser extensions such as the
     [ModHeader](https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj)
     Chrome extension.
   - `curl`. For example:

     ```shell
     curl --header 'X-Profile-Token: <token>' --header 'X-Profile-Mode: <mode>' "https://gitlab.example.com/group/project"
     ```

     Profiled requests can take longer than usual.

After the request completes, you can view the profiling output from the
**Monitoring > Requests Profiles** administration page:

![Profiling output](img/request_profile_result.png)

## Cleaning up profiled requests

The output from profiled requests is cleared out once each day through a
Sidekiq worker.