2009-11-05 27 views
31

Câu hỏi này không phải là cách JMX hoạt động hoặc những gì JMX làm. Câu hỏi này là về các ứng dụng của JMX trong môi trường máy chủ ứng dụng chuẩn trong sản xuất. Nó không dành cho máy chủ cụ thể.Bạn giám sát điều gì với JMX trong ứng dụng Java sản xuất của bạn?

Bạn giám sát điều gì với JMX trong môi trường sản xuất chạy các dịch vụ Java EE tiêu chuẩn: truy cập cơ sở dữ liệu (JDBC và JPA), phiên EJB, JMS, máy chủ web, dịch vụ web, dịch vụ hỗ trợ AJAX?

Trả lời

27

Tại JVM mức, tôi theo dõi trong suốt thời gian thu gom rác thải mỗi phút,

Tại Servlet container mức, tôi theo dõi số lượng yêu cầu, số trường hợp ngoại lệ (4xx & mã 5xx), tổng đề nghị thời gian cho mỗi phút,

Tại SOAP mức, tôi theo dõi các số lời gọi, số trường hợp ngoại lệ & tổng của lời gọi cho mỗi hoạt động và mỗi phút,

Tại Web MVC Framework mức, tôi theo dõi các số lời gọi, số trường hợp ngoại lệ & tổng của lời gọi cho mỗi hành động và mỗi phút,

Đối với bể bơi (nguồn dữ liệu, hồ bơi thread/người thi hành dịch vụ) , tôi theo dõi các tính tích cực,

Đối với JMS kết nối, tôi theo dõi số lượng gửi & nhận tin nhắn mỗi phút, và số lượng máy thu hoạt động,

Đối ehcache, tôi theo dõi số lượng các mục trong bộ nhớ cache, số lượng hits & bỏ lỡ một phút,

Tại kinh doanh ứng dụng mức, tôi developped chú thích @Profiled để theo dõi số lượng lời gọi, số lượng ngoại lệ và tổng thời lượng mỗi phút.

Nếu bạn quan tâm đến các loại số liệu như vậy, chúng tôi đã phát triển nhiều tính năng bổ sung JMX (dbcp, util.concurrent, jms, @profiled annotation) và đóng gói tất cả điều này với cấu hình dựa trên không gian tên Spring XML, plugin Hyperic HQ, các trang jsp giám sát , v.v.

Chi tiết có tại đây: http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras.

Tất cả mã này được cấp phép theo Giấy phép phần mềm Apache nguồn mở thân thiện với doanh nghiệp, được triển khai trên Kho lưu trữ trung tâm Maven, có thể tải xuống dưới dạng bình và có sẵn trên máy chủ Google Subversion được tích hợp theo cách bạn muốn.

Hope this helps,

Cyrille (Xebia)

+0

câu trả lời hay, cảm ơn bạn! – topchef

5

Yêu cầu phổ biến nhất của tôi là theo dõi số lượng chuỗi và bộ nhớ. Công việc gần đây nhất của tôi liên quan đến các máy chủ luồng lớn gửi tới lưới và điều quan trọng là phải theo dõi việc sử dụng luồng (một thước đo mức độ hoạt động của máy chủ). Bộ nhớ được gắn chặt với việc sử dụng thread (một phần vì các đối tượng liên kết với mỗi thread, một phần vì sự phân bổ stack ngầm cho mỗi thread).

Chúng tôi cũng đã bật dữ liệu hàng đợi tải công việc của mình. Các hiệu ứng được theo dõi ở trên hoặc hiệu ứng của việc xếp hàng các mục công việc, nhưng cuối cùng chúng tôi muốn theo dõi hàng đợi thực tế của công việc. Thật đáng giá để trưng ra các thành phần quan trọng thông qua JMX để có được một cái nhìn rõ ràng hơn về những gì đang xảy ra.

1

Trong một dự án trước, chúng tôi đã theo dõi số lượng chuỗi và bộ nhớ, số phiên HTTP và kích thước bộ đệm truy vấn. Sự quan tâm khác của JMX với cache là bạn có thể buộc phải xả.

8

Tôi đã sử dụng JMX để hiển thị MBean cho phép điều chỉnh các mức LoggerJ Logger động. Điều này được chứng minh là rất hữu ích cho một ứng dụng nhóm mà chúng tôi không muốn phải sửa đổi tệp cấu hình log4j trên tất cả các nút để thay đổi mức nhật ký cho một trình ghi được chỉ định.

1

Một chút OT nhưng bạn có thể sử dụng JMX thêm một chút nữa. Hiện tại tôi đang sử dụng JMX để triển khai nóng/sửa chữa các thành phần nóng. Tự động thêm chức năng cho các thành phần hiện có (bộ lọc, v.v.). JMX tốt cho giao tiếp giữa các thành phần trên cùng một JVM. Mỗi thành phần tôi tạo ra đều được thiết kế để sử dụng JMX.

+2

thể bạn vui lòng, cung cấp cho một liên kết mà sẽ chứng minh sử dụng jmx cho mục đích này? - Tôi cần sử dụng tính năng bổ sung chức năng tự động cho các thành phần hiện có. – techzen

Các vấn đề liên quan