paint-brush
Hướng dẫn gỡ lỗi cục bộ với Datadog Agenttừ tác giả@hacker5281989
7,530 lượt đọc
7,530 lượt đọc

Hướng dẫn gỡ lỗi cục bộ với Datadog Agent

từ tác giả Dhivya Dandapani4m2023/03/21
Read on Terminal Reader

dài quá đọc không nổi

Công cụ Datadog được sử dụng để trực quan hóa nhật ký sản xuất. Nó có thể được cài đặt trên máy MacOSX. Công cụ này được viết bằng Java và có thể được sử dụng để giám sát các ứng dụng Java. Nó miễn phí và có sẵn miễn phí trên trang web của công ty. Các hướng dẫn bên dưới dành cho cài đặt cục bộ.
featured image - Hướng dẫn gỡ lỗi cục bộ với Datadog Agent
Dhivya Dandapani HackerNoon profile picture
0-item
1-item

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ó

'Tại sao' mạnh mẽ của tôi: cố gắng hiểu ý nghĩa của các bài kiểm tra không ổn định:

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.


Datadog để giải cứu 🦸!

chúng tôi đã và đang sử dụng dữ liệu trong dự án của chúng tôi để trực quan hóa nhật ký sản xuất và chúng tôi thấy nó cực kỳ hữu ích. Đó là khi tôi có một bản hùng ca! Nếu tôi thiết lập Datadog cục bộ để phân tích các nhật ký này thì sao? Và đó là những gì đã kích hoạt nội dung của bài đăng trên blog này.


Ứ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.


Bạn cần thiết lập những gì:

các thành phần cần thiết để thiết lập

  1. Đăng ký Datadog đây . Phạm vi của chúng tôi ở đây chỉ là gỡ lỗi cục bộ, vì vậy một dùng thử miễn phí nên đủ.
  2. Datadog Agent là phần mềm giám sát máy chủ mà nó chạy trên đó. Các cài đặt như tên dịch vụ, môi trường, v.v. có thể được thực hiện trong tác nhân.
  3. dd-trace-java , thư viện Java máy khách APM (Giám sát hiệu suất ứng dụng) của Datadog. dd-trace-java là một jar chứa API tự động hoặc thủ công dấu vết hồ sơ Các ứng dụng Java.


Bước 1 — Quy trình đăng ký:

  • 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_KEYDD_SITE vì chúng sẽ được sử dụng trong các bước tiếp theo.


hướng dẫn cài đặt đại lý

Bước 2— Cài đặt Datadog Agent:

Đối với MacOS, bạn có thể cài đặt qua ủ rượu (trình quản lý gói cho MacOS). Sử dụng các lệnh được đưa ra ở đây để cài đặt . ¹


mở brew pkg đã tải xuống và cài đặt bằng trình hướng dẫn

  • Tùy chỉnh datadog-agent như hình bên dưới


tùy chỉnh-cục bộ-datadog-agent-settings

  • 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.


nhanh-to-kết thúc-Datadog-thiết lập

  • Bạn sẽ được nhắc thêm bất kỳ integrations . Bạn có thể thêm Java , Docker , v.v. (theo nhu cầu dự án của bạn).

Bước 3 — Cài đặt trình theo dõi Datadog:

  • Tải xuống jar dd-java-agent từ đây ²


  • Đố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.**³

Chạy ứng dụng của bạn:

  • thêm các tùy chọn VM cho ứng dụng java của chúng tôi:
 -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 


JVM lập luận cho ứng dụng java



  • Nếu bạn đang sử dụng một tác vụ gradle , bạn có thể bao gồm jvmArgs như bên dưới:

JVM lập luận cho nhiệm vụ Gradle


 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"]


  • Bây giờ hãy bắt đầu ứng dụng Java của bạn. Nếu quá trình theo dõi diễn ra chính xác, bạn sẽ thấy nhật ký bên dưới:

Đã bắt đầu theo dõi Datadog — nhật ký

Đăng nhập Datadog:

  • Để cho phép truyền trực tuyến nhật ký tới Datadog, hãy làm theo hướng dẫn trong Giao diện người dùng Web Datadog. ⁴

định cấu hình nguồn nhật ký

  • Đối với 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

một ví dụ về tệp 'conf.yaml' từ cục bộ

  • và bây giờ, logs sẽ bắt đầu lưu chuyển trong Datadog.


Nhật ký dữ liệu


Một số lời khuyên:

  • 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 idtrace 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.⁵

Phần kết luận:

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.

Thử nghiệm của tôi — trước khi gỡ lỗi & sau khi sử dụng Datadog

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ẻ!

Thông tin bổ sung:

  • ¹Ngoài ra, bạn cũng có thể tải xuống gói dmg và cài đặt nó. Liên kết này cũng có thể được lấy trong bước 'Thiết lập đại lý' ở trên (tham khảo ảnh chụp màn hình)


  • ²Tải xuống trực tiếp dd-trace-java cái lọ.


  • ³ 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 đây .


  • ⁴Thông tin chi tiết là đây .


  • ⁵Nếu ứng dụng của bạn là Java, bạn có thể sử dụng thư viện này mùa xuân-đám mây-thám tử để thêm span_idtrace_id vào yêu cầu.