Hãy bắt đầu với “tại sao” một người thậm chí nên bận tâm đến việc thiết lập Datadog trên máy cục bộ. Tôi có thể chia sẻ động lực của mình để thiết lập nó
Chúng tôi đã có một bộ thử nghiệm toàn diện mở rộng với phạm vi bao phủ cao. Nhưng thật đáng buồn, các bài kiểm tra ngày càng trở nên dễ vỡ hơn theo thời gian. Trước sự thất vọng của tôi, khi các bài kiểm tra được chạy một cách cô lập, chúng sẽ vượt qua. Khi chúng tôi chạy toàn bộ bộ thử nghiệm, nhiều thử nghiệm bắt đầu bị lỗi. Nhật ký ứng dụng tương ứng với các bài kiểm tra sẽ giúp chúng tôi gỡ lỗi. Nhưng tôi thậm chí không thể hiểu nhật ký của một bài kiểm tra cụ thể bắt đầu và kết thúc ở đâu, chứ đừng nói đến việc hiểu chúng.
chúng tôi đã và đang sử dụng
Ứng dụng của chúng tôi được viết bằng Java và máy cục bộ của tôi chạy trên MacOS. Bạn có thể điều chỉnh các bước dưới đây cho phù hợp với nhu cầu của mình.
dd-trace-java
là một jar chứa API tự động hoặc thủ công
Sau khi cung cấp id email của bạn và các chi tiết khác, bạn sẽ được nhắc chọn ngăn xếp công nghệ của mình trên trang tiếp theo.
sau khi bạn nhấp vào 'Tiếp theo', sẽ đến phần quan trọng nhất. Bạn sẽ được hướng dẫn 'thiết lập đại lý'. Máy cục bộ của tôi là MacOSX, vì vậy tôi đã chọn nó một cách thích hợp. Vui lòng ghi lại các giá trị DD_API_KEY và DD_SITE vì chúng sẽ được sử dụng trong các bước tiếp theo.
Đối với MacOS, bạn có thể cài đặt qua
Tùy chỉnh datadog-agent
như hình bên dưới
Sau khi hoàn tất bước trên, bạn sẽ được yêu cầu 'Hoàn tất' trong Datadog-web-UI.
integrations
. Bạn có thể thêm Java
, Docker
, v.v. (theo nhu cầu dự án của bạn). Tải xuống jar dd-java-agent
từ
Đối với ứng dụng Java của bạn, hãy đảm bảo rằng bạn đang sử dụng phiên bản Java đi kèm với FlightRecorder tích hợp sẵn. Điều này là cần thiết để theo dõi. OpenJdK8 đi kèm với FlightRecorder sẵn có. Nếu đang sử dụng Oracle Java, bạn cần có giấy phép thương mại để sử dụng **FlightRecorder.**³
-javaagent:"/Users/home/Downloads/dd-java-agent.jar" -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.agent.port=8126 -Ddd.service=ecommerce-service -Ddd.env=local -XX:FlightRecorderOptions=stackdepth=256
gradle
, bạn có thể bao gồm jvmArgs
như bên dưới:
jvmArgs = ["-javaagent:/Users/home/Downloads/dd-java-agent.jar", "-XX:FlightRecorderOptions=stackdepth=256", "-Ddd.profiling.enabled=true", "-Ddd.logs.injection=true", "-Ddd.agent.port=8126", "-Ddd.service=ecommerce-service", "-Ddd.env=local"]
macOS
— Thư mục cấu hình là ~/.datadog-agent/conf.d/java.d
và tệp có tại ~/.datadog-agent/conf.d/java.d/conf.yaml
và bây giờ, logs
sẽ bắt đầu lưu chuyển trong Datadog.
Thêm nhật ký debug
thích hợp vào đầu và cuối mỗi phương thức trong ứng dụng của bạn. Nó rất hữu ích trong khi gỡ lỗi.
Thêm một cơ chế để tiêm span id
và trace id
. Đó là một cứu cánh tuyệt vời và đặt các bản ghi trong ngữ cảnh phù hợp.⁵
Khi tôi đã thiết lập và chạy tác nhân Datadog cục bộ, tôi có thể xem tất cả các yêu cầu theo ngữ cảnh.
Và Voila! Tất cả các bài kiểm tra từ đầu đến cuối của tôi hiện đang vượt qua 🙂 Chúc bạn đăng nhập vui vẻ!
¹Ngoài ra, bạn cũng có thể tải xuống
²Tải xuống trực tiếp
³ Bắt đầu từ JDK 11, chúng tôi có thể sử dụng FlightRecorder
mà không cần kích hoạt bất kỳ thứ gì. Thêm chi tiết có thể được tìm thấy
⁴Thông tin chi tiết là
⁵Nếu ứng dụng của bạn là Java, bạn có thể sử dụng thư viện nàyspan_id
và trace_id
vào yêu cầu.