Skip to content

Commit 6776b86

Browse files
authored
Merge branch 'main' into hover-tooltip
2 parents 8f61dd2 + 78433ac commit 6776b86

19 files changed

+395
-538
lines changed

docs/community.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Office hours
44

5-
Parca Community Office Hours are bi-weekly public meetings focused on Parca and Parca Agent development and contributions and general community questions. Everyone is welcome to join!
5+
Parca Community Office Hours are public meetings that occur every two weeks focused on Parca and Parca Agent development and contributions, in addition to general community questions. Everyone is welcome to join!
66

7-
When? Thursdays 17:00 UTC (see [here](https://everytimezone.com/s/c0ffbf98) to see what that is in your timezone)
7+
Office Hours are held on Mondays alternating between 17:00 UTC and 10:00 UTC to account for attendees across different time zones (see [here](https://everytimezone.com/s/c0ffbf98) to see these times are in your timezone)
88

99
* [Meeting calendar](https://calendar.google.com/calendar/embed?src=c_gpsbv9i59r8ocrri0m6aktt618%40group.calendar.google.com) ([Import Calendar](https://calendar.google.com/calendar/u/0?cid=Y19ncHNidjlpNTlyOG9jcnJpMG02YWt0dDYxOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t))
1010
* [Meeting notes](https://docs.google.com/document/d/1h2Ni_Q14doE_kScJsLCQewKHRPZXsyWVQt7X0iRzAXo/edit)

docs/parca-agent-labelling.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ The agent does its best to enrich profiles with labels coming from various syste
4747
* `kernel_release`: The Linux kernel release used by the node as in `uname --kernel-release`.
4848
* `agent_revision`: The Git commit SHA Parca Agent was built from.
4949

50+
### Java
51+
52+
* `java`: `true` if the pid belongs to a Java process
53+
5054
## Configuration
5155

5256
Parca Agent supports relabeling in the same fashion as Prometheus.

docs/quickstart.mdx

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Quick Start
2+
3+
The easiest way to start with Parca is to obtain the pre-built statically-linked binary or the container.
4+
You can download the latest release of the binary from the Parca GitHub release pages ([Server](https://github.com/parca-dev/parca/releases) and [Agent](https://github.com/parca-dev/parca-agent/releases)).
5+
Alternatively, you can use the Parca container image from [the GitHub Container Registry](https://github.com/orgs/parca-dev/packages).
6+
7+
Once you have the binary or the container, you can start profiling your applications with Parca.
8+
9+
:::info Please select your environment and use the following commands to quickly get started
10+
:::
11+
12+
import Tabs from "@theme/Tabs";
13+
import TabItem from "@theme/TabItem";
14+
import WithVersions from '@site/src/components/WithVersions';
15+
import CodeBlock from '@theme/CodeBlock';
16+
17+
18+
<Tabs groupId="environment" queryString>
19+
<TabItem value="binary" label="Binary" default>
20+
21+
**Server**
22+
23+
1. Download the binary specific to your OS and architecture
24+
<WithVersions language="bash">
25+
{ versions =>
26+
<CodeBlock className="language-bash">
27+
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 -
28+
</CodeBlock>
29+
}
30+
</WithVersions>
31+
32+
2. Run Parca and access the Web UI on port 7070
33+
```bash
34+
# Get basic configuration
35+
curl -sL https://raw.githubusercontent.com/parca-dev/parca/main/parca.yaml > parca.yaml
36+
# Run Parca and access the Web UI on port 7070
37+
./parca --config=parca.yaml
38+
```
39+
40+
**Agent**
41+
42+
1. Download the binary specific to your architecture (only works on Linux)
43+
<WithVersions language="bash">
44+
{ versions =>
45+
<CodeBlock className="language-bash">
46+
curl -sL https://github.com/parca-dev/parca-agent/releases/download/{versions.agent}/parca-agent_{versions.agent.substring(1)}_`uname -s`_`uname -m`.tar.gz | tar xvfz -
47+
</CodeBlock>
48+
}
49+
</WithVersions>
50+
51+
2. Run Parca Agent and access the Web UI on port 7071 (assumes Parca is running on localhost:7070)
52+
```bash
53+
./parca-agent --node=test --remote-store-address=localhost:7070 --remote-store-insecure
54+
```
55+
56+
<br />
57+
58+
:::danger [Parca from Binary - Tutorial 5min ⏱️](/docs/binary)
59+
:::
60+
</TabItem>
61+
<TabItem value="container" label="Container">
62+
63+
**Server**
64+
65+
Run Parca and access the Web UI on port 7070
66+
<WithVersions language="bash">
67+
{ versions =>
68+
<CodeBlock className="language-bash">
69+
docker run --rm -it ghcr.io/parca-dev/parca:{versions.server} /parca
70+
</CodeBlock>
71+
}
72+
</WithVersions>
73+
74+
**Agent**
75+
76+
Run Parca Agent (requires privileged more) and access the Web UI on port 7071 (assumes Parca is running on localhost:7070)
77+
<WithVersions language="bash">
78+
{ versions =>
79+
<CodeBlock className="language-bash">
80+
docker run --rm -it --privileged ghcr.io/parca-dev/parca-agent:{versions.agent} /bin/parca-agent --node=docker-test
81+
</CodeBlock>
82+
}
83+
</WithVersions>
84+
85+
<br />
86+
87+
:::danger [Parca from Binary - Tutorial 5min ⏱️](/docs/binary)
88+
:::
89+
90+
</TabItem>
91+
<TabItem value="kubernetes" label="Kubernetes">
92+
93+
:::tip
94+
95+
To quickly try out the Parca and Parca Agent with Kubernetes, you create a [minikube](https://minikube.sigs.k8s.io/docs/) cluster with an actual virtual machine, e.g. Virtualbox:
96+
97+
```shell
98+
minikube start --driver=virtualbox
99+
```
100+
:::
101+
102+
1. Create the namespace (not strictly necessary but prevents a race with the next commands)
103+
```
104+
kubectl create namespace parca
105+
```
106+
107+
**Server**
108+
109+
2. Use to deploy Parca Server (API and UI)
110+
<WithVersions language="bash">
111+
{ versions =>
112+
<CodeBlock className="language-bash">
113+
kubectl apply -f https://github.com/parca-dev/parca/releases/download/{versions.server}/kubernetes-manifest.yaml
114+
</CodeBlock>
115+
}
116+
</WithVersions>
117+
118+
**Agent**
119+
120+
3. Use to deploy Parca Agent for all nodes
121+
<WithVersions language="bash">
122+
{ versions =>
123+
<CodeBlock className="language-bash">
124+
kubectl apply -f https://github.com/parca-dev/parca-agent/releases/download/{versions.agent}/kubernetes-manifest.yaml
125+
</CodeBlock>
126+
}
127+
</WithVersions>
128+
<br />
129+
130+
:::danger [Parca in Kubernetes - Tutorial 5min ⏱️](/docs/kubernetes)
131+
:::
132+
</TabItem>
133+
</Tabs>

docs/resource-usage.mdx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Resource Usage
2+
3+
Parca retains profile samples in memory and rotates the in-memory block out
4+
when it reaches a certain size in bytes based on configuration settings.
5+
6+
# Recommended resources
7+
8+
We recommend a rule of thumb of 60 bytes of memory for each sample.
9+
By default the Parca-Agent profiles each core at 19Hz, which means you can expect
10+
Parca to require 60 bytes * 19 * number of cores. So if you were profiling a 100 cores at a time
11+
you'd expect Parca to ingest 114Kb/s.
12+
13+
## Flags to adjust the active memory footprint
14+
15+
| Flag | Usage |
16+
|---------------------------|--------------------------------|
17+
| `--storage-granule-size` | By increasing the granule size you'll decrease nominal memory footprint but increase memory usage during compaction. |
18+
| `--storage-active-memory` | Adjust the number of bytes held in memory before being rotated out. This is the easiest way to adjust Parca's memory footprint. |
19+
| `--storage-row-group-size`| Smaller row groups increase memory footprint but increase query speed. Increasing row group size results in lower memory usage but slower queries. |

docs/talks.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Resources
2+
3+
Several talks and blog posts have been written for both Parca Server and Agent.
4+
5+
## Talks
6+
7+
1. [Developing eBPF profiler for polyglot cloud-native applications](https://youtu.be/Gr1rrSzvqfg)
8+
2. [Achieving Zero-Instrumentation Monitoring with eBPF](https://youtu.be/g6B9Vbr88HM)
9+
3. [Conprof - Profiling in the cloud-native era](https://youtu.be/ficc6_6RYQk)
10+
4. [Leveraging Prometheus' TSDB for Conprof](https://www.youtube.com/watch?v=GwQZSS8tQH0)
11+
5. [Hands-on Introduction to Parca | Rawkode Live](https://www.youtube.com/watch?v=z3cEYklFdyo)
12+
6. [eBPF? Safety First!](https://youtu.be/oWHQrlE2-G8)
13+
14+
15+
## Blog Posts
16+
17+
1. [Introduction to Parca- Part 1](https://www.polarsignals.com/blog/posts/2022/07/12/introducing-parca-sequel/)
18+
2. [Introduction to Parca - Part 2](https://www.polarsignals.com/blog/posts/2023/01/19/introduction-to-parca-agent/)
19+
3. [Design Decisions of a Continuous Profiler](https://www.polarsignals.com/blog/posts/2022/12/14/design-of-continuous-profilers/)
20+
4. [DWARF-based Stack Walking Using eBPF](https://www.polarsignals.com/blog/posts/2022/11/29/profiling-without-frame-pointers/)
21+
5. [System-wide profiling in Parca Agent](https://www.polarsignals.com/blog/posts/2022/08/24/system-wide-profiling/)
22+
6. [Parca now also in Grafana](https://www.polarsignals.com/blog/posts/2022/11/02/grafana-parca-core-plugin/)
23+
7. [Improved pprof.me](https://www.polarsignals.com/blog/posts/2022/10/12/improved-profile-sharing-service-pprof.me)

docusaurus.config.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ module.exports = {
1414
projectName: "docusaurus", // Usually your repo name.
1515
scripts: [
1616
{
17-
src: "https://plausible.io/js/plausible.js",
17+
src: "/_vercel/insights/script.js",
1818
async: true,
1919
defer: true,
20-
"data-domain": "parca.dev",
2120
},
2221
],
2322
plugins: [
@@ -46,9 +45,9 @@ module.exports = {
4645
items: [
4746
{
4847
type: "doc",
49-
docId: "binary",
48+
docId: "quickstart",
5049
position: "left",
51-
label: "Download",
50+
label: "Quick Start",
5251
},
5352
{
5453
type: "doc",
@@ -103,6 +102,10 @@ module.exports = {
103102
{
104103
title: "Quick Start",
105104
items: [
105+
{
106+
label: "How to get started",
107+
to: "/quickstart",
108+
},
106109
{
107110
label: "Parca from Binary",
108111
to: "/docs/binary",

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
"file-loader": "^6.2.0",
2525
"prism-react-renderer": "^1.3.5",
2626
"raw-loader": "^4.0.2",
27-
"react": "^17.0.1",
28-
"react-dom": "^17.0.1",
27+
"react": "^18.0.0",
28+
"react-dom": "^18.0.0",
2929
"url-loader": "^4.1.1"
3030
},
3131
"browserslist": {

sidebars.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ module.exports = {
2020
label: "Overview",
2121
id: "overview",
2222
},
23+
{
24+
type: "doc",
25+
label: "Quick Start",
26+
id: "quickstart",
27+
},
2328
{
2429
type: "doc",
2530
label: "Demo",
@@ -39,8 +44,15 @@ module.exports = {
3944
label: "gRPC APIs",
4045
href: "https://buf.build/parca-dev/parca",
4146
},
42-
"observability",
43-
"configuration",
47+
{
48+
type: "category",
49+
label: "Operation",
50+
items: [
51+
"observability",
52+
"configuration",
53+
"resource-usage",
54+
],
55+
},
4456
{
4557
type: "category",
4658
label: "Profile Visualization",
@@ -98,6 +110,11 @@ module.exports = {
98110
label: "Community",
99111
id: "community",
100112
},
113+
{
114+
type: "doc",
115+
label: "Resources",
116+
id: "talks",
117+
},
101118
{
102119
type: "category",
103120
label: "Tutorial",

0 commit comments

Comments
 (0)