พื้นที่เก็บข้อมูลปัจจุบันมีซอร์สโค้ดของ 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=
และ/หรือ --python-home-3=
(ขึ้นอยู่กับเวอร์ชันของ 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:
คุณสามารถเริ่มต้นด้วยอันว่างหรือใช้อันเต็มที่สร้างโดยบิลด์ 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 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.jar
java
มีอยู่ใน $PATH
ของคุณสำหรับคำแนะนำโดยละเอียด โปรดดูที่การตรวจสอบ JMX
คุณจะพบข้อมูลและความช่วยเหลือเกี่ยวกับวิธีสนับสนุนโค้ดให้กับโปรเจ็กต์นี้ภายใต้ไดเร็กทอรี docs/dev
ของ repo ปัจจุบัน
ส่วนประกอบพื้นที่ผู้ใช้ตัวแทน Datadog ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0 รหัส BPF ได้รับอนุญาตภายใต้ใบอนุญาตสาธารณะทั่วไป เวอร์ชัน 2.0