Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Luồng dữ liệu hiện cung cấp dữ liệu hiệu suất liên quan đến cuộc gọi đến API Dataverse, cuộc gọi thực thi phần bổ trợ Dataverse và cuộc gọi SDK Dataverse. Luồng dữ liệu cũng cung cấp dữ liệu về sự cố trong phần bổ trợ và hoạt động của SDK Dataverse.
Cuộc gọi đến API của Dataverse
Đây là các cuộc gọi cho API Dataverse. Các cuộc gọi này có thể từ Giao diện Hợp nhất (UCI), máy khách web cũ, máy khách tùy chỉnh sử dụng SDK, v.v. Các cuộc gọi này có thể có trong bảng yêu cầu của Application Insights bao gồm các trường sau.
Tên: Loại yêu cầu. Các yêu cầu này được chia làm 2 thể loại:
- Yêu cầu API Web: Yêu cầu đến điểm cuối OData v4 thường được sử dụng bởi Giao diện hợp nhất và các máy khách hiện đại. Yêu cầu này được chuyển đổi thành một hoạt động chung cho cả hai. API Web là một "trình bao bọc" dùng để bật mô hình lập trình RESTful, nhưng sau khi nhận dữ liệu, mọi thứ sẽ giống nhau trong máy chủ. Khi trả về, phản hồi sẽ được chuyển đổi thành JSON nếu yêu cầu đến từ API Web.
- Yêu cầu dịch vụ tổ chức: Yêu cầu đến điểm cuối API của tổ chức được sử dụng bởi máy khách SDK hoặc máy khách web cũ.
Thời lượng: Khoảng thời gian máy chủ phản hồi yêu cầu.
Url: URL mà cuộc gọi được thực hiện.
Kích thước tùy chỉnh:
UserAgent: Application Insights tự động điền vào trường tác nhân người dùng với PC khi các nhật ký này được đẩy từ máy chủ trong trung tâm dữ liệu. Application Insights không cho phép ghi đè trường tổng đài viên người dùng. Đôi khi, trường tổng đài viên người dùng không có sẵn để điền. Có thể xem tổng đài viên người dùng nào thực hiện cuộc gọi bằng cách dùng truy vấn sau:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: Tên có thể đọc được của hoạt động sẽ hiển thị trên chế độ xem, chẳng hạn như chế độ xem giao dịch đầu cuối.
Nhật ký thực thi phần bổ trợ Dataverse
Các nhật ký này về phần bổ trợ tùy chỉnh đang chạy cho một thao tác nhất định có trong bảng phụ thuộc. Sau đây là một truy vấn mẫu:
dependencies
| where type == "Plugin"
| take 100
- Tên/Mục tiêu: Tên kiểu đủ điều kiện cho plug-in đang được thực thi.
- Thời lượng: Khoảng thời gian cần thiết để thực thi plug-in.
-
Kích thước tùy chỉnh:
- Độ sâu: Độ sâu hiện tại của quá trình thực thi trong ngăn xếp cuộc gọi.
- EntityName: Tên của thực thể đang được plug-in tác động.
-
IsolationType: Giá trị A cho biết liệu plug-in có đang được thực thi trong hộp cát hay không:
- 1: Không có
- 2: Hộp cát
- 3: Bên ngoài
- PluginName: Tên dễ nhớ của plugin.
- PluginType: Tên của loại plug-in đang được thực thi.
- PluginVersion: Phiên bản của plug-in đã phát hành. Mục đích ở đây là có thể sử dụng thông tin này để khắc phục sự cố với các bản cập nhật phiên bản.
-
Giai đoạn: Ánh xạ tới các giá trị sau:
- Xác thực trước = 10
- Trước khi hoạt động = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- Hoạt động chính = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- Sau hoạt động = 40
- PostOperationDeprecated = 50
- StepName: Tên của bước Xử lý tin nhắn SDK. Dữ liệu này thường được tạo bởi công cụ Đăng ký phần bổ trợ bằng cách sử dụng thông tin về PluginName, PluginType và tên của thao tác – ví dụ: ErrorMessageTest.ThrowException: Creation of account.
Phương pháp đo từ xa trong mã phần bổ trợ của bạn
Để hiểu những gì đang xảy ra trong mã phần bổ trợ của mình, bạn có thể áp dụng phương pháp đo từ xa tùy chỉnh từ trong phần bổ trợ bằng cách dùng Microsoft.Xrm.Sdk.PluginTelemetry.ILogger Interface trong mã phần bổ trợ để ghi dữ liệu đo từ xa trực tiếp vào nguồn lực Application Insights của mình. Để biết thêm thông tin, hãy xem: Ghi phương pháp đo từ xa vào nguồn lực Application Insights bằng cách sử dụng ILogger (Bản xem trước)
Nhật ký SDK Dataverse
Đây là nhật ký cho các thao tác SDK được kích hoạt do một yêu cầu đến. Các thao tác này được ghi vào bảng phụ thuộc trong Application Insights vì được theo dõi dưới dạng phần phụ thuộc để thực thi yêu cầu. Các thao tác này được xác định dựa vào tên kiểu, bắt đầu bằng SDK. Sau đây là một truy vấn mẫu:
dependencies
| where type startswith "SDK"
| take 10
- Loại: Loại yêu cầu SDK được kích hoạt. Các ví dụ bao gồm Retrieve, RetrieveMultiple, FetchXmlToQueryExpression và WhoAmI.
- Tên/Mục tiêu: Đây là tên của thực thể đang được hoạt động SDK nhắm mục tiêu.
-
Kích thước tùy chỉnh:
- ClientType: Loại máy khách mà cuộc gọi đến. Một số giá trị có thể là Web, UCIClient và OutlookFull.
- EntityId: Mã định danh duy nhất của thực thể đang được sử dụng.
- EntityName: Tên của thực thể đang được sử dụng.
Ngoại lệ
Bạn sẽ thấy thông tin chi tiết về các sự cố với phần bổ trợ và thao tác SDK trong Application Insights. Bảng ngoại lệ trong Application Insights cung cấp dữ liệu cho bảng điều khiển Sự cố. Các chi tiết này về sự cố tương quan với các sự kiện còn lại trong phần bổ trợ và cuộc gọi SDK ở dạng xem toàn diện. Tất cả thông tin có sẵn được thêm vào các cột khi có thể và vào customDimensions khi không có cột nào hoàn toàn phù hợp.
Bạn sẽ nhận thấy một số trường trong bảng ngoại lệ không được điền. Điều này là do các trường này chỉ có thể được đặt nếu SDK Application Insights được sử dụng để phát hành nhật ký từ nguồn. Tính năng này thu thập dữ liệu đo từ xa của nền tảng, sau đó đẩy vào Application Insights theo lược đồ Application Insights.
exceptions
| take 10
Truy vấn này sẽ trả về tất cả các chi tiết thuộc tính từ bảng ngoại lệ.
- problemId/type: Loại ngoại lệ.
- outerMessage: Thông báo ngoại lệ.
-
Kích thước tùy chỉnh:
- clientType: Loại máy khách mà cuộc gọi đến. Một số giá trị có thể là Web, UCIClient và OutlookFull.
- exceptionSource: Plug-in hoặc điểm mà ngoại lệ được đưa ra.
- entityName: Tên của thực thể đang được sử dụng.
- pluginName: Tên của plug-in nơi ngoại lệ được phát hiện.
Nếu người dùng báo cáo lỗi, bạn có thể sử dụng ID người dùng (Microsoft Entra ID ID) để hiểu thông tin chi tiết từ bảng ngoại lệ .
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
ID thực thể và tên thực thể có trong customDimensions trong bảng phụ thuộc.
dependencies
| where type == "SDK Retrieve"
Câu hỏi thường gặp (FAQ)
Sau đây là một số câu hỏi thường gặp liên quan đến các sự kiện đo từ xa cho Dataverse.
Làm cách nào để xác định xem bản nâng cấp phần bổ trợ có khiến hiệu suất suy giảm hay không?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Tên phần bổ trợ cũng cần chứa phiên bản của phần bổ trợ tùy chỉnh.
API hoạt động như thế nào trước khi sự cố được báo cáo, dựa vào thời gian trong ngày hay vị trí? API suy giảm dần dần hay đột ngột?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Trong biểu đồ này, chúng ta có thể thấy hiệu suất của điểm cuối API trong một khoảng thời gian so với số lượng yêu cầu được thực hiện.
Bạn cũng có thể thiết lập cảnh báo dựa trên hiệu suất của một API cụ thể ở đây trong Application Insights.
Tôi có thể xem chi tiết về lỗi hoặc sự cố vào thời điểm cụ thể hoặc về người dùng cụ thể để có thể tìm hiểu ngăn xếp cuộc gọi không?
Khi xem bảng điều khiển Sự cố, bạn sẽ biết được thông tin tổng quan về các sự cố trong một khoảng thời gian nhất định. Sau đó, bạn có thể thu hẹp phạm vi về một sự cố cụ thể dựa trên cuộc gọi API hoặc kiểu phụ thuộc để hiển thị dạng xem toàn diện.
Tôi có thể tạo bảng thông tin tùy chỉnh không?
Có. Bạn có thể tạo bảng thông tin tùy chỉnh với Application Insights.
Tôi có thể xác định hiệu suất sử dụng (thời gian phản hồi) và tỷ lệ sự cố của phần bổ trợ trong thời gian sử dụng cao điểm không?
Có. Xem truy vấn mẫu sau để tìm hiểu cách phần bổ trợ hoạt động.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Phương pháp đo từ xa này có thể điều chỉnh không?
Có. Hiện cung cấp chi tiết về lỗi 429 cơ bản.
Tôi có thể hiểu các đường dẫn thực thi không? Cuộc gọi do phần bổ trợ đưa ra có đang làm chậm phần bổ trợ không?
Có. Bạn có thể xem tất cả các thông báo và phần bổ trợ được thực thi cho bất kỳ yêu cầu nào.
Khoảng thời gian của toàn bộ quá trình thực thi phần bổ trợ và thông báo được ghi lại. Nếu bất kỳ phần bổ trợ nào tốn nhiều thời gian hơn, bạn có thể xác định phần bổ trợ đó. Nếu phần bổ trợ đang thực hiện cuộc gọi lại đến Dataverse, khoảng thời gian của cuộc gọi đó sẽ được ghi lại. Thông tin bổ sung về phần bổ trợ sẽ được lên kế hoạch cho hoạt động triển khai trong tương lai.
Bất kỳ cuộc gọi đi nào do phần bổ trợ thực hiện sẽ tự động được ghi dưới dạng phần phụ thuộc.
Tôi có thể xem phương pháp đo từ xa cho một yêu cầu cụ thể không?
Dataverse trả về x-ms-service-requestId trong phản hồi tiêu đề cho mọi yêu cầu. Bạn có thể sử dụng requestId này để truy vấn về mọi phương pháp đo từ xa.
union *
| where operation_ParentId contains <requestId>