Tôi đang tạo một số bộ đếm hiệu suất tùy chỉnh cho một ứng dụng. Tôi đã viết một công cụ C# đơn giản để tạo ra các loại và quầy. Ví dụ, đoạn mã dưới đây về cơ bản là những gì tôi đang chạy. Sau đó, tôi chạy một ứng dụng riêng biệt làm gián đoạn làm mới giá trị thô của bộ đếm. Trong khi đó chạy, các truy cập và giả dụ được nhìn thấy tại địa phương trong perfmon.Tại sao perfmon không thể xem các phiên bản của bộ đếm hiệu suất tùy chỉnh của tôi?
Sự cố tôi gặp phải là hệ thống giám sát mà chúng tôi sử dụng không thể thấy các phiên bản trong bộ đếm nhiều trường hợp mà tôi đã tạo khi xem từ xa từ máy chủ khác. Khi sử dụng perfmon để duyệt qua các quầy, tôi có thể thấy các loại và quầy, nhưng hộp thể hiện màu xám và tôi thậm chí không thể chọn "Tất cả các trường hợp", cũng không phải tôi có thể nhấp "Thêm". Sử dụng các phương pháp truy cập khác, chẳng hạn như [typeperf][1]
hiển thị các sự cố tương tự.
Tôi không chắc đây có phải là sự cố máy chủ hoặc mã hay không. Điều này chỉ có thể tái sản xuất trong môi trường sản xuất mà tôi cần nó. Trên máy tính để bàn và máy chủ phát triển của tôi, nó hoạt động tuyệt vời. Tôi là quản trị viên cục bộ trên tất cả các máy chủ.
CounterCreationDataCollection collection = new CounterCreationDataCollection();
var category_name = "My Application";
var counter_name = "My counter name";
CounterCreationData ccd = new CounterCreationData();
ccd.CounterType = PerformanceCounterType.RateOfCountsPerSecond64;
ccd.CounterName = counter_name;
ccd.CounterHelp = counter_name;
collection.Add(ccd);
PerformanceCounterCategory.Create(category_name, category_name, PerformanceCounterCategoryType.MultiInstance, collection);
Sau đó, trong một ứng dụng riêng biệt, tôi chạy này để tạo hình nộm dữ liệu Ví dụ:
var pc = new PerformanceCounter(category_name, counter_name, instance_name, false);
while (true) {
pc.RawValue = 0;
Thread.Sleep(1000);
}
Phiên bản .Net này là gì? –
Đã lâu rồi, nhưng chắc chắn tôi đã sử dụng .NET 2.0 hoặc 3.5 vào thời điểm đó. – spoulson
Bạn đã bao giờ nhận được câu trả lời này chưa? Tôi tự hỏi nếu bạn tạo ra một lớp hiệu suất truy cập tùy chỉnh và nó đã không được serializable? –