يعد Parca Agent أحد ملفات تعريف العينات التي تعمل دائمًا وتستخدم eBPF لالتقاط بيانات ملفات التعريف الأولية بحمل منخفض جدًا. فهو يلاحظ التتبعات المكدسة لمساحة المستخدم ومساحة kernel 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
: معرف العملية للعملية التي يتم تعريفها.__meta_process_cmdline
: وسيطات سطر الأوامر للعملية التي يتم تعريفها.__meta_process_cgroup
: المجموعة c (الرئيسية) للعملية التي يتم تعريفها.__meta_process_ppid
: معرف العملية الأصلية للعملية التي يتم تعريفها.__meta_process_executable_file_id
: معرف الملف (تجزئة) للملف القابل للتنفيذ للعملية التي يتم تعريفها.__meta_process_executable_name
: الاسم الأساسي للملف القابل للتنفيذ للعملية التي يتم تعريفها.__meta_process_executable_build_id
: معرف البنية للملف القابل للتنفيذ للعملية التي يتم تعريفها.__meta_process_executable_compiler
: المترجم المستخدم لإنشاء الملف القابل للتنفيذ للعملية التي يتم تعريفها.__meta_process_executable_static
: ما إذا كان الملف القابل للتنفيذ للعملية التي يتم تحديدها مرتبطًا بشكل ثابت.__meta_process_executable_stripped
: ما إذا كان الملف القابل للتنفيذ للعملية التي يتم تحديدها قد تم تجريده من معلومات التصحيح.__meta_system_kernel_release
: إصدار نواة النظام.__meta_system_kernel_machine
: آلة نواة النظام (عادةً الهندسة المعمارية).__meta_thread_comm
: اسم أمر مؤشر الترابط الذي يتم تعريفه.__meta_thread_id
: معرف المنتج (PID) الخاص بمؤشر الترابط الذي يتم تعريفه.__meta_agent_revision
: مراجعة الوكيل.__meta_kubernetes_namespace
: مساحة اسم الكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_name
: اسم الكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_label_*
: قيمة التسمية *
الخاصة بالكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_labelpresent_*
: ما إذا كانت تسمية *
الكبسولة التي تعمل بها العملية موجودة أم لا.__meta_kubernetes_pod_annotation_*
: قيمة التعليق التوضيحي *
الخاص بالكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_annotationpresent_*
: ما إذا كان التعليق التوضيحي *
الخاص بالجراب الذي تعمل فيه العملية موجودًا أم لا.__meta_kubernetes_pod_ip
: عنوان IP الخاص بالجراب الذي تجري فيه العملية.__meta_kubernetes_pod_container_name
: اسم الحاوية التي تجري فيها العملية.__meta_kubernetes_pod_container_id
: معرف الحاوية التي تجري فيها العملية.__meta_kubernetes_pod_container_image
: صورة الحاوية التي تجري فيها العملية.__meta_kubernetes_pod_container_init
: ما إذا كانت الحاوية التي تجري فيها العملية هي حاوية init.__meta_kubernetes_pod_ready
: ما إذا كانت الكبسولة التي تجري فيها العملية جاهزة أم لا.__meta_kubernetes_pod_phase
: مرحلة الكبسولة التي تجري فيها العملية.__meta_kubernetes_node_name
: اسم العقدة التي تعمل عليها العملية.__meta_kubernetes_pod_host_ip
: عنوان IP المضيف الخاص بالجراب الذي تجري فيه العملية.__meta_kubernetes_pod_uid
: المعرف الفريد (UID) الخاص بالكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_controller_kind
: نوع وحدة التحكم الخاصة بالكبسولة التي تجري فيها العملية.__meta_kubernetes_pod_controller_name
: اسم وحدة التحكم الخاصة بالكبسولة التي تجري فيها العملية.__meta_kubernetes_node_label_*
: قيمة التسمية *
للعقدة التي تعمل عليها العملية.__meta_kubernetes_node_labelpresent_*
: ما إذا كانت تسمية *
العقدة التي تعمل عليها العملية موجودة أم لا.__meta_kubernetes_node_annotation_*
: قيمة التعليق التوضيحي *
للعقدة التي تعمل عليها العملية.__meta_kubernetes_node_annotationpresent_*
: ما إذا كان التعليق التوضيحي *
الخاص بالعقدة التي تعمل عليها العملية موجودًا أم لا.__meta_docker_container_id
: معرف الحاوية التي تعمل فيها العملية.__meta_docker_container_name
: اسم الحاوية التي تجري فيها العملية.__meta_docker_build_kit_container_id
: معرف الحاوية التي تعمل فيها العملية.__meta_containerd_container_id
: معرف الحاوية التي تجري فيها العملية.__meta_containerd_container_name
: اسم الحاوية التي تجري فيها العملية.__meta_containerd_pod_name
: اسم الكبسولة التي تجري فيها العملية.__meta_lxc_container_id
: معرف الحاوية التي تجري فيها العملية. مطلوب Parca Agent ليتم تشغيله كمستخدم root
(أو CAP_SYS_ADMIN
). تم اتخاذ احتياطات أمنية مختلفة لحماية المستخدمين الذين يقومون بتشغيل Parca Agent. راجع التفاصيل في الاعتبارات الأمنية.
للإبلاغ عن ثغرة أمنية، راجع هذا الدليل.
تحقق من دليل المساهمة الخاص بنا للبدء!
رمز مساحة المستخدم: أباتشي 2
رمز مساحة النواة (ملفات تعريف eBPF): رخصة جنو العامة، الإصدار 2
شكرا ل: