พื้นที่เก็บข้อมูลปัจจุบันมีซอร์สโค้ดของ Datadog Agent เวอร์ชัน 7 และเวอร์ชัน 6 โปรดดูเอกสารประกอบผู้ใช้ Agent สำหรับข้อมูลเกี่ยวกับความแตกต่างระหว่าง Agent v5, Agent v6 และ Agent v7 นอกจากนี้ เรายังจัดเตรียมรายการไบนารีที่บรรจุไว้ล่วงหน้าสำหรับกระบวนการติดตั้งที่ง่ายดายไว้ที่นี่
หมายเหตุ: ซอร์สโค้ดของ Datadog Agent v5 อยู่ในที่เก็บ dd-agent
เอกสารทั่วไปของโปรเจ็กต์ รวมถึงคำแนะนำสำหรับการติดตั้งและการพัฒนา อยู่ภายใต้ไดเร็กทอรีเอกสารของ repo ปัจจุบัน
ในการสร้างตัวแทนที่คุณต้องการ:
$GOPATH และมี $GOPATH/bin ในเส้นทางของคุณpip install -r requirements.txt สิ่งนี้จะดึง Inrigg เข้ามาด้วยหากยังไม่ได้ติดตั้ง หมายเหตุ: คุณอาจต้องการใช้สภาพแวดล้อมเสมือนของ Python เพื่อหลีกเลี่ยงไม่ให้สภาพแวดล้อมของ Python ทั่วทั้งระบบเสียหายด้วยการพึ่งพาเอเจนต์ build/dev คุณสามารถสร้างสภาพแวดล้อมเสมือนโดยใช้ virtualenv จากนั้นใช้พารามิเตอร์ invoke agent.build --python-home-2=<venv_path> และ/หรือ --python-home-3=<venv_path> (ขึ้นอยู่กับเวอร์ชันของ python ที่คุณอยู่ การใช้) เพื่อใช้ล่ามและไลบรารีของสภาพแวดล้อมเสมือน ตามค่าเริ่มต้น สภาพแวดล้อมนี้ใช้สำหรับการพึ่งพา dev ที่แสดงอยู่ใน requirements.txt เท่านั้น
หมายเหตุ: คุณอาจเคยติดตั้ง invoke ผ่าน brew บน MacOS หรือ pip ในแพลตฟอร์มอื่น ๆ มาก่อน เราขอแนะนำให้คุณใช้เวอร์ชันที่ปักหมุดไว้ในไฟล์ข้อกำหนดเพื่อประสบการณ์การพัฒนา/สร้างที่ราบรื่น
หมายเหตุ: คุณสามารถเปิดใช้งานการเติมข้อมูลอัตโนมัติสำหรับการเรียกใช้งานได้ ใช้คำสั่งด้านล่างเพื่อเพิ่มบรรทัดที่เหมาะสมลงในไฟล์ .zshrc ของคุณ echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
บิวด์และการทดสอบได้รับการจัดเตรียมด้วย invoke พิมพ์ invoke --list บนเชลล์เพื่อดูงานที่มีอยู่
หากต้องการเริ่มทำงานกับตัวแทน คุณสามารถสร้างสาขา main ได้:
ชำระเงิน repo: 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 tools: invoke install-tools (หากคุณมีข้อผิดพลาดการหมดเวลา คุณอาจต้องเติม GOPROXY=https://proxy.golang.org,https://goproxy.io,direct env var ไว้ข้างหน้าคำสั่ง)
สร้างไฟล์การกำหนดค่าการพัฒนา datadog.yaml ใน dev/dist/datadog.yaml ซึ่งมีคีย์ API ที่ถูกต้อง: api_key: <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/distbin/agent/agentdev/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 dev โปรดดูที่ Windows Dev Env
รันการทดสอบหน่วยโดยใช้ invoke test
invoke test --targets=./pkg/aggregator
คุณยังสามารถใช้ invoke linter.go เพื่อเรียกใช้ go linters ได้
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 ที่คัดลอกไปยัง dev/dist/jmx/jmxfetch.jarjava มีอยู่บน $PATH ของคุณสำหรับคำแนะนำโดยละเอียด โปรดดูที่การตรวจสอบ JMX
คุณจะพบข้อมูลและความช่วยเหลือเกี่ยวกับวิธีสนับสนุนโค้ดให้กับโปรเจ็กต์นี้ภายใต้ไดเร็กทอรี docs/dev ของ repo ปัจจุบัน
ส่วนประกอบพื้นที่ผู้ใช้ตัวแทน Datadog ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0 รหัส BPF ได้รับอนุญาตภายใต้ใบอนุญาตสาธารณะทั่วไป เวอร์ชัน 2.0