parca agent
v0.35.0
Parca Agent 是一個始終在線的採樣分析器,它使用 eBPF 以非常低的開銷捕獲原始分析資料。它每秒觀察用戶空間和核心空間堆疊追蹤 19 次,並根據提取的資料建立 pprof 格式的設定檔。請閱讀設計文件中的更多詳細資訊。
收集到的資料可以透過 HTTP 端點在本地查看,然後配置為傳送到 Parca 伺服器以便隨時間查詢和分析。
請參閱 Kubernetes 入門。
Parca Agent 正在不斷增強對多種語言的支援。我們目前支援的語言的不完整列表:
請查看我們的文件以獲取更多資訊。
筆記
未來幾週和幾個月內將提供更多語言支援。
可用的設定檔類型:
筆記
如果您的語言受支持,請查看我們的文件。
以下類型的設定檔需要明確檢測:
若要偵錯潛在錯誤,請使用--log-level=debug
啟用偵錯日誌記錄。
Usage: parca-agent
Flags:
-h, --help Show context-sensitive help.
--log-level="info" Log level.
--log-format="logfmt" Configure if structured logging as JSON or as
logfmt
--http-address="127.0.0.1:7071"
Address to bind HTTP server to.
--version Show application version.
--node="hostname" The name of the node that the process is
running on. If on Kubernetes, this must match
the Kubernetes node name.
--config-path="" Path to config file.
--memlock-rlimit=0 The value for the maximum number of bytes
of memory that may be locked into RAM. It is
used to ensure the agent can lock memory for
eBPF maps. 0 means no limit.
--mutex-profile-fraction=0
Fraction of mutex profile samples to collect.
--block-profile-rate=0 Sample rate for block profile.
--profiling-duration=10s The agent profiling duration to use. Leave
this empty to use the defaults.
--profiling-cpu-sampling-frequency=19
The frequency at which profiling data is
collected, e.g., 19 samples per second.
--profiling-perf-event-buffer-poll-interval=250ms
The interval at which the perf event buffer
is polled for new events.
--profiling-perf-event-buffer-processing-interval=100ms
The interval at which the perf event buffer
is processed.
--profiling-perf-event-buffer-worker-count=4
The number of workers that process the perf
event buffer.
--metadata-external-labels=KEY=VALUE;...
Label(s) to attach to all profiles.
--metadata-container-runtime-socket-path=STRING
The filesystem path to the container runtimes
socket. Leave this empty to use the defaults.
--metadata-disable-caching
Disable caching of metadata.
--local-store-directory=STRING
The local directory to store the profiling
data.
--remote-store-address=STRING
gRPC address to send profiles and symbols to.
--remote-store-bearer-token=STRING
Bearer token to authenticate with store
( $ PARCA_BEARER_TOKEN).
--remote-store-bearer-token-file=STRING
File to read bearer token from to
authenticate with store.
--remote-store-insecure Send gRPC requests via plaintext instead of
TLS.
--remote-store-insecure-skip-verify
Skip TLS certificate verification.
--remote-store-batch-write-interval=10s
Interval between batch remote client writes.
Leave this empty to use the default value of
10s.
--remote-store-rpc-logging-enable
Enable gRPC logging.
--remote-store-rpc-unary-timeout=5m
Maximum timeout window for unary gRPC
requests including retries.
--debuginfo-directories=/usr/lib/debug,...
Ordered list of local directories to search
for debuginfo files.
--debuginfo-temp-dir="/tmp"
The local directory path to store the interim
debuginfo files.
--debuginfo-strip Only upload information needed for
symbolization. If false the exact binary the
agent sees will be uploaded unmodified.
--debuginfo-compress Compress debuginfo files' DWARF sections
before uploading.
--debuginfo-upload-disable
Disable debuginfo collection and upload.
--debuginfo-upload-max-parallel=25
The maximum number of debuginfo upload
requests to make in parallel.
--debuginfo-upload-timeout-duration=2m
The timeout duration to cancel upload
requests.
--debuginfo-upload-cache-duration=5m
The duration to cache debuginfo upload
responses for.
--debuginfo-disable-caching
Disable caching of debuginfo.
--symbolizer-jit-disable Disable JIT symbolization.
--otlp-address=STRING The endpoint to send OTLP traces to.
--otlp-exporter="grpc" The OTLP exporter to use.
--object-file-pool-eviction-policy="lru"
The eviction policy to use for the object
file pool.
--object-file-pool-size=100
The maximum number of object files to keep in
the pool. This is used to avoid re-reading
object files from disk. It keeps FDs open,
so it should be kept in sync with ulimits.
0 means no limit.
--dwarf-unwinding-disable Do not unwind using .eh_frame information.
--dwarf-unwinding-mixed Unwind using .eh_frame information and frame
pointers.
--python-unwinding-disable
Disable Python unwinder.
--ruby-unwinding-disable Disable Ruby unwinder.
--analytics-opt-out Opt out of sending anonymous usage
statistics.
--telemetry-disable-panic-reporting
--telemetry-stderr-buffer-size-kb=4096
--bpf-verbose-logging Enable verbose BPF logging.
--bpf-events-buffer-size=8192
Size in pages of the events buffer.
--verbose-bpf-logging [deprecated] Use --bpf-verbose-logging.
Enable verbose BPF logging.
Parca Agent 支援 Prometheus 重新標記。以下標籤始終附加到設定檔上:
node
:進程正在其上運行的節點的名稱,由--node
標誌指定。comm
:正在分析的進程的指令名稱。您也可以選擇使用--metadata-external-labels
標誌附加其他標籤。
使用重新標記,可以將以下標籤附加到設定檔:
__meta_process_pid
:正在分析的程序的進程 ID。__meta_process_cmdline
:正在分析的程序的命令列參數。__meta_process_cgroup
:正在分析的程序的(主)cgroup。__meta_process_ppid
:正在分析的程序的父程序 ID。__meta_process_executable_file_id
:正在分析的程序的可執行檔的檔案 ID(雜湊值)。__meta_process_executable_name
:正在分析的程序的可執行檔的基本名稱。__meta_process_executable_build_id
:正在分析的程序的可執行檔的建置 ID。__meta_process_executable_compiler
:用於建立正在分析的進程的可執行檔的編譯器。__meta_process_executable_static
:正在分析的進程的可執行檔是否是靜態連結的。__meta_process_executable_stripped
:是否從 debuginfo 中刪除正在分析的程序的可執行檔。__meta_system_kernel_release
:系統的核心版本。__meta_system_kernel_machine
:系統的核心機器(通常是架構)。__meta_thread_comm
:正在分析的執行緒的指令名稱。__meta_thread_id
:正在分析的執行緒的 PID。__meta_agent_revision
:代理程式的修訂版本。__meta_kubernetes_namespace
:進程運作所在的 pod 的命名空間。__meta_kubernetes_pod_name
:進程運行所在的 pod 的名稱。__meta_kubernetes_pod_label_*
:進程運行所在 pod 的標籤值*
。__meta_kubernetes_pod_labelpresent_*
:進程運行所在的 pod 的標籤*
是否存在。__meta_kubernetes_pod_annotation_*
:進程正在執行的 pod 的註解*
的值。__meta_kubernetes_pod_annotationpresent_*
:進程運行所在的 pod 的註解*
是否存在。__meta_kubernetes_pod_ip
:進程運行所在 Pod 的 IP。__meta_kubernetes_pod_container_name
:進程運行所在的容器的名稱。__meta_kubernetes_pod_container_id
:進程運行所在容器的 ID。__meta_kubernetes_pod_container_image
:進程運行所在的容器的映像。__meta_kubernetes_pod_container_init
:進程運行的容器是否為 init 容器。__meta_kubernetes_pod_ready
:進程運行所在的 pod 是否已準備好。__meta_kubernetes_pod_phase
:進程運行所在的 pod 階段。__meta_kubernetes_node_name
:進程運行的節點的名稱。__meta_kubernetes_pod_host_ip
:進程運行所在的 pod 的主機 IP。__meta_kubernetes_pod_uid
:進程運行所在的 pod 的 UID。__meta_kubernetes_pod_controller_kind
:進程運作所在的 pod 控制器的類型。__meta_kubernetes_pod_controller_name
:進程運作所在的 pod 控制器的名稱。__meta_kubernetes_node_label_*
:進程運行所在節點的標籤值*
。__meta_kubernetes_node_labelpresent_*
:進程運行所在節點的標籤*
是否存在。__meta_kubernetes_node_annotation_*
:進程正在運行的節點的註解*
的值。__meta_kubernetes_node_annotationpresent_*
:進程運行所在節點的註解*
是否存在。__meta_docker_container_id
:進程正在運行的容器的ID。__meta_docker_container_name
:進程運行所在的容器的名稱。__meta_docker_build_kit_container_id
:進程正在執行的容器的 ID。__meta_containerd_container_id
:進程正在執行的容器的 ID。__meta_containerd_container_name
:進程運行所在的容器的名稱。__meta_containerd_pod_name
:進程運行所在的 pod 的名稱。__meta_lxc_container_id
:進程正在執行的容器的 ID。 Parca Agent 需要以root
使用者(或CAP_SYS_ADMIN
)身分運作。已採取各種安全預防措施來保護執行 Parca Agent 的使用者。請參閱安全注意事項中的詳細資訊。
若要回報安全漏洞,請參閱本指南。
查看我們的貢獻指南以開始!
使用者空間代碼:Apache 2
核心空間程式碼(eBPF 分析器):GNU 通用公共許可證,版本 2
由於: