Skip to content

Commit 507a30c

Browse files
authored
Rename icicle graph to flame graph in docs (#477)
1 parent 2f643a4 commit 507a30c

File tree

11 files changed

+685
-3109
lines changed

11 files changed

+685
-3109
lines changed

docs/binary-filtering.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ To see the list of the binaries in the profile, click on the "Show Legend" butto
2525
<br />
2626
<BrowserWindow>
2727

28-
![An icicle graph filtered by a binary](../static/img/tutorial/filtered-by-binary.png)
28+
![A Flame Graph filtered by a binary](../static/img/tutorial/filtered-by-binary.png)
2929

3030
</BrowserWindow>
3131

3232
<br />
33-
The example above specifically works for when you want to only see data in the icicle
34-
graph for a particular binary. So how about when you want to see data in the icicle
35-
graph excluding a particular binary? You can do this by right-clicking on the frame
36-
in the icicle graph and then click on the "Hide Binary" option. This will hide the
33+
The example above specifically works for when you want to only see data in the Flame
34+
Graph for a particular binary. So how about when you want to see data in the Flame
35+
Graph excluding a particular binary? You can do this by right-clicking on the frame
36+
in the Flame Graph and then click on the "Hide Binary" option. This will hide the
3737
data for the binary you right-clicked on.
3838

3939
<BrowserWindow>
@@ -46,15 +46,15 @@ data for the binary you right-clicked on.
4646

4747
<BrowserWindow>
4848

49-
![The icicle graph showing filtered data](../static/img/tutorial/hidden-binary-filtered.png)
49+
![The Flame Graph showing filtered data](../static/img/tutorial/hidden-binary-filtered.png)
5050

5151
</BrowserWindow>
5252

5353
<br />
5454

5555
This is especially useful for Python workloads that call out to native extensions, so just viewing interpreted frames is not quite right, but just hiding the Python runtime. This means other native extensions like libcuda or pytorch would still be visible.
5656

57-
In addition to that, you can hide multiple binaries at a time! Using the same icicle graph as above, we also want to hide the <em>libc.so.6</em> frames.
57+
In addition to that, you can hide multiple binaries at a time! Using the same Flame Graph as above, we also want to hide the <em>libc.so.6</em> frames.
5858

5959
<BrowserWindow>
6060

@@ -64,12 +64,12 @@ In addition to that, you can hide multiple binaries at a time! Using the same ic
6464
<br />
6565
<BrowserWindow>
6666

67-
![The icicle graph being filtered by multiple binaries](../static/img/tutorial/multiple-hidden-binaries.png)
67+
![The Flame Graph being filtered by multiple binaries](../static/img/tutorial/multiple-hidden-binaries.png)
6868

6969
</BrowserWindow>
7070
<br />
7171

72-
To get the icicle graph back to its initial state, there's a "Reset Legend" button to reset the icicle graph.
72+
To get the Flame Graph back to its initial state, there's a "Reset Legend" button to reset the Flame Graph.
7373

7474
<BrowserWindow>
7575

docs/binary.mdx

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
# Parca from Binary
22

3-
import WithVersions from '@site/src/components/WithVersions';
4-
import CodeBlock from '@theme/CodeBlock';
5-
import BrowserWindow from '@site/src/components/BrowserWindow';
3+
import WithVersions from "@site/src/components/WithVersions";
4+
import CodeBlock from "@theme/CodeBlock";
5+
import BrowserWindow from "@site/src/components/BrowserWindow";
66

77
You can download the latest binary release for your architecture from our [releases page](https://github.com/parca-dev/parca/releases).
8+
89
<WithVersions language="bash">
9-
{ versions =>
10+
{(versions) => (
1011
<CodeBlock className="language-bash">
11-
curl -sL https://github.com/parca-dev/parca/releases/download/{versions.server}/parca_{versions.server.substring(1)}_`uname -s`_`uname -m`.tar.gz | tar xvfz - parca
12+
curl -sL https://github.com/parca-dev/parca/releases/download/
13+
{versions.server}/parca_{versions.server.substring(1)}_`uname -s`_`uname
14+
-m`.tar.gz | tar xvfz - parca
1215
</CodeBlock>
13-
}
16+
)}
1417
</WithVersions>
1518

1619
We also produce Docker images that can be pulled:
20+
1721
<WithVersions language="bash">
18-
{ versions =>
22+
{(versions) => (
1923
<CodeBlock className="language-bash">
2024
docker pull ghcr.io/parca-dev/parca:{versions.server}
2125
</CodeBlock>
22-
}
26+
)}
2327
</WithVersions>
2428

2529
We provide an example configuration file that you can use to get Parca running, and the scrape configuration section should look familiar to anyone familiar with Prometheus.
@@ -39,12 +43,14 @@ scrape_configs:
3943
```
4044
4145
You can download from our repository:
46+
4247
<WithVersions language="bash">
43-
{ versions =>
48+
{(versions) => (
4449
<CodeBlock className="language-bash">
45-
curl -sL https://raw.githubusercontent.com/parca-dev/parca/{versions.server}/parca.yaml > parca.yaml
50+
curl -sL https://raw.githubusercontent.com/parca-dev/parca/
51+
{versions.server}/parca.yaml > parca.yaml
4652
</CodeBlock>
47-
}
53+
)}
4854
</WithVersions>
4955
5056
To start Parca, pass this config file with the `config-path` flag:
@@ -147,12 +153,12 @@ Selecting one of these profile types and clicking the `Search` button will retri
147153

148154
</BrowserWindow>
149155

150-
This should result in a time series based on the profile that is interactable. Clicking anywhere on the line graph should then bring up an icicle graph for the profile that you've selected.
156+
This should result in a time series based on the profile that is interactable. Clicking anywhere on the line graph should then bring up an Flame Graph for the profile that you've selected.
151157

152158
<BrowserWindow>
153159

154160
![image](https://user-images.githubusercontent.com/8681572/133893258-96fdbc0a-8036-4d89-bb4c-578fb131c8e0.png)
155161

156162
</BrowserWindow>
157163

158-
You can then interact with the icicle graph to better understand how Parca is behaving.
164+
You can then interact with the Flame Graph to better understand how Parca is behaving.

docs/concepts.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Concepts
22

3-
import BrowserWindow from '@site/src/components/BrowserWindow';
3+
import BrowserWindow from "@site/src/components/BrowserWindow";
44

55
## Data model
66

@@ -18,9 +18,9 @@ Parca ingests profiles using the open-source pprof profile.proto format. More ca
1818

1919
The pprof utility offers a robust set of tools for exploring profiles. Parca specifically tries to solve the storage and retrieval of these profiles, and allows you to explore these profiles across time.
2020

21-
## Icicle Graphs
21+
## Flame Graphs
2222

23-
Often to better understand how your application is behaving you need to compare two profiles. Parca allows you to make selections of two points in time that you want to compare and will generate an icicle graph of the difference between the two selected profiles.
23+
Often to better understand how your application is behaving you need to compare two profiles. Parca allows you to make selections of two points in time that you want to compare and will generate an Flame Graph of the difference between the two selected profiles.
2424

2525
If a span is larger in the second profile, you'll see that span colored in red, and will be darker shade the larger the difference is. This allows one to quickly visually identify where a program is growing in usage scope.
2626

@@ -42,14 +42,14 @@ If a span remains blue, it means there was no significant change between the two
4242

4343
## Cumulative and Diff values
4444

45-
When comparing two profiles, it's not unusual to see a `Cumulative` value and `Diff` value in the tooltip that displays when you hover over the icicle graph.
45+
When comparing two profiles, it's not unusual to see a `Cumulative` value and `Diff` value in the tooltip that displays when you hover over the Flame Graph.
4646

4747
<BrowserWindow>
4848

4949
![image](https://user-images.githubusercontent.com/9016992/146777868-90f145fd-aaab-451d-8848-247877a7dde3.png)
5050

51-
</BrowserWindow>
51+
</BrowserWindow>
5252

5353
As an example, a stack trace like `main() > foo() > bar()` where `main` calls `foo` that calls `bar`. In one profile, we observe this stack trace running at 500ns, so its cumulative value will be 500 and then later in another profile, we see this stack trace but it was running for only 300ns, thus it's cumulative value will be 300.
5454

55-
However, if we compare the latest stack trace that was running at 300ns to the former one running 500ns, we see that the diff is 300-500 = -200. It means that compared to the first profile we've seen this same stack trace 200ns less.
55+
However, if we compare the latest stack trace that was running at 300ns to the former one running 500ns, we see that the diff is 300-500 = -200. It means that compared to the first profile we've seen this same stack trace 200ns less.

docs/kubernetes.mdx

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Kubernetes
22

3-
import WithVersions from '@site/src/components/WithVersions';
4-
import CodeBlock from '@theme/CodeBlock';
5-
import BrowserWindow from '@site/src/components/BrowserWindow';
3+
import WithVersions from "@site/src/components/WithVersions";
4+
import CodeBlock from "@theme/CodeBlock";
5+
import BrowserWindow from "@site/src/components/BrowserWindow";
66

77
:::tip
88

@@ -46,11 +46,12 @@ Creating this namespace is not strictly necessary, but it prevents a race with t
4646
To provision the Parca against any Kubernetes cluster, and use the API and UI:
4747

4848
<WithVersions language="bash">
49-
{ versions =>
49+
{(versions) => (
5050
<CodeBlock className="language-bash">
51-
kubectl apply -f https://github.com/parca-dev/parca/releases/download/{versions.server}/kubernetes-manifest.yaml
51+
kubectl apply -f https://github.com/parca-dev/parca/releases/download/
52+
{versions.server}/kubernetes-manifest.yaml
5253
</CodeBlock>
53-
}
54+
)}
5455
</WithVersions>
5556

5657
You can verify by selecting pods if everything runs as expected:
@@ -63,6 +64,7 @@ parca parca-5f879c46ff-pv649 1/1 Running 0 53m
6364
```
6465

6566
To view the Parca UI and access the API, we can port-forward using the default port `7070`:
67+
6668
```
6769
kubectl -n parca port-forward service/parca 7070
6870
```
@@ -88,12 +90,15 @@ Creating this namespace is not strictly necessary, but it prevents a race with t
8890
:::
8991

9092
To provision the Parca Agent as a `DaemonSet`:
93+
9194
<WithVersions language="bash">
92-
{ versions =>
95+
{(versions) => (
9396
<CodeBlock className="language-bash">
94-
kubectl apply -f https://github.com/parca-dev/parca-agent/releases/download/{versions.agent}/kubernetes-manifest.yaml
97+
kubectl apply -f
98+
https://github.com/parca-dev/parca-agent/releases/download/
99+
{versions.agent}/kubernetes-manifest.yaml
95100
</CodeBlock>
96-
}
101+
)}
97102
</WithVersions>
98103

99104
You can verify by selecting pods if everything runs as expected:
@@ -107,27 +112,30 @@ parca-agent-b66vt 1/1 Running 0 54m
107112
```
108113

109114
Let's set up a port-forward using the default port `7071`.
115+
110116
```
111117
kubectl -n parca port-forward `kubectl -n parca get pod -lapp.kubernetes.io/name=parca-agent -ojsonpath="{.items[0].metadata.name}"` 7071
112118
```
113119

114120
Now we can view the active profilers by visiting `http://localhost:7071`:
121+
115122
<BrowserWindow>
116123

117124
![image](../static/img/tutorial/active_profilers.png)
118125

119126
</BrowserWindow>
120127

121-
<br/>
128+
<br />
122129

123130
And all the discovered processes:
131+
124132
<BrowserWindow>
125133

126134
![image](../static/img/tutorial/processes.png)
127135

128136
</BrowserWindow>
129137

130-
<br/>
138+
<br />
131139

132140
To continuously send every profile collected to a Parca server configure the `--remote-store-address` and the potential credentials needed.
133141
For example, to send to a Parca server in the `parca` namespace set: `--remote-store-address=parca.parca.svc:7070`.
@@ -137,7 +145,7 @@ This has already been set up for our current setup in the previously applied man
137145

138146
You can use `--remote-store-insecure` and `--remote-store-insecure-skip-verify` for simpler setups.
139147

140-
``` shell
148+
```shell
141149
--remote-store-insecure Send gRPC requests via plaintext instead of
142150
TLS.
143151
--remote-store-insecure-skip-verify
@@ -156,28 +164,29 @@ You should shortly see the `Select profile...` dropdown menu populate with the p
156164
Parca supports any pprof formatted profile, but here we are demonstrating Parca Agent's automatic profiling with zero-instrumentation, which currently only supports CPU profiling.
157165

158166
:::
167+
159168
<BrowserWindow>
160169

161170
![image](../static/img/tutorial/profile_type_dropdown_selected.png)
162171

163172
</BrowserWindow>
164173

165-
<br/>
174+
<br />
166175

167176
Selecting `CPU Samples` as profile type and clicking the `Search` button will retrieve the profiles from Parca Agent for the time selection (default Last Hour).
168177

169178
This should result in a time series based on the profile that is interactable.
170-
Clicking anywhere on the line graph should then bring up an icicle graph for the profile that you've selected.
179+
Clicking anywhere on the line graph should then bring up a Flame Graph for the profile that you've selected.
171180

172181
<BrowserWindow>
173182

174183
![image](../static/img/tutorial/cpu_sample_count_select.png)
175184

176185
</BrowserWindow>
177186

178-
<br/>
187+
<br />
179188

180-
You can then interact with the icicle graph to better understand how Parca is behaving.
189+
You can then interact with the Flame Graph to better understand how Parca is behaving.
181190

182191
:::info
183192

@@ -193,7 +202,7 @@ If you go to query bar and enter `namespace="kube-system"` you can focus on them
193202

194203
</BrowserWindow>
195204

196-
<br/>
205+
<br />
197206

198207
And you can click the samples on the graph to focus on the individual profiles.
199208

@@ -203,7 +212,6 @@ And you can click the samples on the graph to focus on the individual profiles.
203212

204213
</BrowserWindow>
205214

206-
207215
### Selecting a subset of applications to profile
208216

209217
Metadata discovery mechanism enriches the collected profiles with Kubernetes labels. You can use relabelling feature of the Parca Agent to drop a subset of labels.
@@ -216,6 +224,7 @@ To learn more about relabelling please see the [Prometheus `relabel_config` docu
216224
:::
217225

218226
First you need to specify a configuration file if you haven't already. The relevant manifest changes on `parca-agent-daemonSet.yaml` would like the following:
227+
219228
```diff
220229
...
221230
template:
@@ -245,11 +254,12 @@ For brevity, we skip the details of mounting a `ConfigMap` with relevant content
245254
:::
246255

247256
For example, to only profile Pods with the `app.kubernetes.io/name=my-web-app` label, the relevant configuration file `/etc/parca-agent.yaml` would like the following:
257+
248258
```yaml
249259
relabel_configs:
250-
- source_labels: [app_kubernetes_io_name]
251-
regex: my-web-app
252-
action: keep
260+
- source_labels: [app_kubernetes_io_name]
261+
regex: my-web-app
262+
action: keep
253263
```
254264
255265
:::tip

0 commit comments

Comments
 (0)