連續分析,用於分析 CPU、記憶體隨時間的使用情況,並精確到行號。節省基礎設施成本、提高效能並提高可靠性。
eBPF Profiler :單一分析器,使用 eBPF,自動發現整個基礎架構中 Kubernetes 或 systemd 的目標,開銷非常低。支援 C、C++、Rust、Go 等!
開放標準:既可以使用基於 eBPF 的分析器產生 pprof 格式的配置文件,也可以攝取任何 pprof 格式的配置文件,從而實現廣泛的語言採用以及與現有工具的互通性。
優化的儲存和查詢:有效儲存分析數據,同時保留原始數據,並允許透過基於標籤的搜尋對數據進行切片和切塊。聚合整個基礎架構的分析數據,及時查看單一設定檔或在任何維度上進行比較。
如果您有任何回饋,請在該專案的 GitHub 討論中開啟討論。我們很想了解您的想法!
請造訪 Parca 網站,以獲取更新且深入的安裝指南和文件!
帕卡開發者
您需要安裝 Go、Node 和 Pnpm。
克隆項目
git clone https://github.com/parca-dev/parca.git
進入專案目錄
cd parca
建立 UI 並編譯 Go 二進位文件
make build
二進位檔案被編譯為bin/parca
。
./bin/parca
現在 Parca 正在本地運行,其 Web UI 可在 http://localhost:7070/ 上使用。
預設情況下,Parca 正在抓取它自己的 pprof 端點,您應該會看到設定檔隨著時間的推移而顯示。可以在儲存庫根目錄的parca.yaml
中變更抓取配置。
標誌:
Usage: parca [flags]
Flags:
-h, --help Show context-sensitive help.
--config-path="parca.yaml"
Path to config file.
--mode="all" Scraper only runs a scraper that sends to a
remote gRPC endpoint. All runs all components.
--http-address=":7070" Address to bind HTTP server to.
--http-read-timeout=5s Timeout duration for HTTP server to read
request body.
--http-write-timeout=1m Timeout duration for HTTP server to write
response body.
--port="" (DEPRECATED) Use http-address instead.
--log-level="info" Log level.
--log-format="logfmt" Configure if structured logging as JSON or as
logfmt
--otlp-address=STRING The endpoint to send OTLP traces to.
--otlp-exporter="grpc" The OTLP exporter to use.
--cors-allowed-origins=CORS-ALLOWED-ORIGINS,...
Allowed CORS origins.
--version Show application version.
--path-prefix="" Path prefix for the UI
--mutex-profile-fraction=0
Fraction of mutex profile samples to collect.
--block-profile-rate=0 Sample rate for block profile.
--enable-persistence Turn on persistent storage for the metastore
and profile storage.
--storage-active-memory=536870912
Amount of memory to use for active storage.
Defaults to 512MB.
--storage-path="data" Path to storage directory.
--storage-enable-wal Enables write ahead log for profile storage.
--storage-snapshot-trigger-size=134217728
Number of bytes to trigger a snapshot. Defaults
to 1/4 of active memory. This is only used if
enable-wal is set.
--storage-row-group-size=8192
Number of rows in each row group during
compaction and persistence. Setting to <= 0
results in a single row group per file.
--storage-index-on-disk Whether to store the index on disk instead
of in memory. Useful to reduce the memory
footprint of the store.
--symbolizer-demangle-mode="simple"
Mode to demangle C++ symbols. Default mode
is simplified: no parameters, no templates,
no return type
--symbolizer-number-of-tries=3
Number of tries to attempt to symbolize an
unsybolized location
--debuginfo-cache-dir="/tmp"
Path to directory where debuginfo is cached.
--debuginfo-upload-max-size=1000000000
Maximum size of debuginfo upload in bytes.
--debuginfo-upload-max-duration=15m
Maximum duration of debuginfo upload.
--debuginfo-uploads-signed-url
Whether to use signed URLs for debuginfo
uploads.
--debuginfod-upstream-servers=debuginfod.elfutils.org,...
Upstream debuginfod servers. Defaults to
debuginfod.elfutils.org. It is an ordered
list of servers to try. Learn more at
https://sourceware.org/elfutils/Debuginfod.html
--debuginfod-http-request-timeout=5m
Timeout duration for HTTP request to upstream
debuginfod server. Defaults to 5m
--profile-share-server="api.pprof.me:443"
gRPC address to send share profile requests to.
--store-address=STRING gRPC address to send profiles and symbols to.
--bearer-token=STRING Bearer token to authenticate with store.
--bearer-token-file=STRING
File to read bearer token from to authenticate
with store.
--insecure Send gRPC requests via plaintext instead of
TLS.
--insecure-skip-verify Skip TLS certificate verification.
--external-label=KEY=VALUE;...
Label(s) to attach to all profiles in
scraper-only mode.
Parca 最初由 Polar Signals 開發。閱讀公告部落格文章:https://www.polarsignals.com/blog/posts/2021/10/08/introducing-parca-we-got-funded/
查看我們的貢獻指南以開始!它解釋瞭如何編譯 Parca、如何使用 Tilt 作為 Kubernetes 中的容器來運行它並發送 Pull 請求。
感謝這些優秀的人(表情符號鍵):
弗雷德里克·布蘭奇克 ? | 托爾 ? | 馬蒂亞斯·洛伊布爾 ? | 凱末爾·阿克雲 | 蘇梅拉·普里亞達西尼 |
傑西卡·林斯 | 霍爾格·弗雷瑟 | 塞爾吉烏斯·烏爾巴尼亞克 ? | 帕韋烏·克魯帕 ? | 本野 ? |
菲利克斯 ? | 克里斯蒂安‧巴格曼 | 約米·艾魯旺德 | 馬諾傑·維韋克 | 莫妮卡·沃伊切霍斯卡 |
曼努埃爾·呂格 ? | 阿維納什·烏帕迪亞亞 KR | 蘆峰一光 | 馬克西姆布魯內特 ? | 羅希特 |
烏吉瓦爾·戈亞爾 | 哈維爾·洪杜維拉·科托 | 馬塞爾·馬夫萊特庫洛夫 | 考底利耶·特里帕提 | 喬恩‧西格 |
菲利普·高夫 | 博蘭·塞雷夫 | 文龍 | 崔濾 | 阿方索·蘇比奧托·馬奎斯 |
湯姆·海利爾 | 斯特凡·範布倫 | 卡洛斯·塔德烏·帕納托·儒尼奧爾 ? | 錢世軍 | 亞歷克斯·韋斯特 |
舒巴姆·帕里瓦拉 | 法比安·賴納茨 | 卡西克·拉賈 | 相當4工作 | 伯特 |
穆罕默德二世 | 尼基萊什·蘇薩拉 | 佛朗哥桑切斯 | 安德里亞·斯卡皮諾 | 馬克西姆·納博基赫 |
該項目遵循所有貢獻者規範。歡迎任何形式的貢獻!
我們使用 Meticulous 自動測試 UI 是否有任何不必要的變更。