يحتوي المستودع الحالي على الكود المصدري لإصدار Datadog Agent 7 والإصدار 6. يرجى الرجوع إلى وثائق مستخدم Agent للحصول على معلومات حول الاختلافات بين Agent v5 وAgent v6 وAgent v7. بالإضافة إلى ذلك، نقدم قائمة بالثنائيات المعبأة مسبقًا لعملية تثبيت سهلة هنا
ملحوظة: الكود المصدري لـ Datadog Agent v5 موجود في مستودع dd-agent.
الوثائق العامة للمشروع، بما في ذلك تعليمات التثبيت والتطوير، موجودة ضمن دليل المستندات الخاص بالمستودع الحالي.
لبناء الوكيل تحتاج إلى:
$GOPATH
الخاص بك وأن يكون لديك $GOPATH/bin
في طريقك.pip install -r requirements.txt
وسيؤدي ذلك أيضًا إلى سحب الاستدعاء إذا لم يتم تثبيته بعد. ملاحظة: قد ترغب في استخدام بيئة بايثون الافتراضية لتجنب تلويث بيئة بايثون على مستوى النظام الخاص بك من خلال تبعيات بناء/تطوير الوكيل. يمكنك إنشاء بيئة افتراضية باستخدام virtualenv
ثم استخدام معلمات invoke agent.build
--python-home-2=
و/أو --python-home-3=
(اعتمادًا على إصدارات python التي تستخدمها باستخدام) لاستخدام المترجم والمكتبات في البيئة الافتراضية. افتراضيًا، تُستخدم هذه البيئة فقط لتبعيات التطوير المدرجة في ملف requirements.txt
.
ملاحظة: ربما تكون قد قمت مسبقًا بتثبيت invoke
عبر Brew على نظام MacOS، أو pip
في أي نظام أساسي آخر. نوصيك باستخدام الإصدار المثبت في ملف المتطلبات للحصول على تجربة تطوير/إنشاء سلسة.
ملاحظة: يمكنك تمكين الإكمال التلقائي لاستدعاء المهام. استخدم الأمر أدناه لإضافة السطر المناسب إلى ملف .zshrc
الخاص بك. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
يتم تنسيق عمليات البناء والاختبارات باستخدام invoke
، واكتب invoke --list
على الصدفة لرؤية المهام المتاحة.
لبدء العمل على الوكيل، يمكنك بناء الفرع main
:
تحقق من الريبو: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
cd في مجلد المشروع: cd $GOPATH/src/github.com/DataDog/datadog-agent
.
تثبيت أدوات go: invoke install-tools
(إذا كان لديك خطأ انتهاء المهلة، فقد تحتاج إلى إضافة GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var إلى الأمر مسبقًا).
قم بإنشاء ملف تكوين datadog.yaml
للتطوير في dev/dist/datadog.yaml
، يحتوي على مفتاح API صالح: api_key:
. يمكنك إما البدء بواحد فارغ أو استخدام الإصدار الكامل الذي تم إنشاؤه بواسطة إصدار Agent من الخطوة 5 (الموجود في cmd/agent/dist/datadog.yaml
بعد انتهاء البناء).
أنشئ الوكيل باستخدام invoke agent.build --build-exclude=systemd
.
يمكنك تحديد موقع Python مخصص للوكيل (مفيد عند استخدام virtualenvs):
invoke agent.build
--python-home-2=$GOPATH/src/github.com/DataDog/datadog-agent/venv2
--python-home-3=$GOPATH/src/github.com/DataDog/datadog-agent/venv3
تشغيل invoke agent.build
:
bin/agent/dist
.bin/agent/agent
.dev/dist
إلى bin/agent/dist
. راجع https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
لمزيد من المعلومات. إذا قمت بإنشاء إصدار أقدم من الوكيل، فقد يكون لديك الخطأ make: *** No targets specified and no makefile found. Stop.
. لحل المشكلة، يجب عليك إزالة CMakeCache.txt
من مجلد rtloader
باستخدام rm rtloader/CMakeCache.txt
.
يرجى ملاحظة أنه يجب إنشاء عامل التتبع وتشغيله بشكل منفصل.
يرجى الرجوع إلى دليل مطور الوكيل لمزيد من التفاصيل. للحصول على إرشادات حول إعداد بيئة تطوير Windows، راجع Windows Dev Env.
قم بتشغيل اختبارات الوحدة باستخدام invoke test
.
invoke test --targets=./pkg/aggregator
يمكنك أيضًا استخدام invoke linter.go
لتشغيل أدوات الانتقال فقط.
invoke linter.go
عند اختبار التعليمات البرمجية التي تعتمد على rtloader، قم ببنائها وتثبيتها أولاً.
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
يمكنك تشغيل الوكيل باستخدام:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
يتم نسخ الملف bin/agent/dist/datadog.yaml
من dev/dist/datadog.yaml
عن طريق invoke agent.build
ويجب أن يحتوي على مفتاح API صالح.
من أجل تشغيل فحص يعتمد على JMX محليًا، يجب أن يكون لديك:
jar
JMXFetch إلى dev/dist/jmx/jmxfetch.jar
java
متاحة على $PATH
الخاص بكللحصول على تعليمات مفصلة، راجع عمليات فحص JMX
ستجد معلومات ومساعدة حول كيفية المساهمة بالكود في هذا المشروع ضمن دليل docs/dev
الخاص بالمستودع الحالي.
تم ترخيص مكونات مساحة مستخدم وكيل Datadog بموجب ترخيص Apache، الإصدار 2.0. كود BPF مرخص بموجب الترخيص العام، الإصدار 2.0.