القياس عن بُعد على مستوى البيئة باستخدام Application Insights (معاينة)

[هذا المقال عبارة عن وثائق الإصدار التجريبي ويكون خاضع للتغيير.]

استخدم Azure Application Insights لمراقبة تتبعات الوكيل في Copilot Studio المُصدَّرة من بيئة مُدارة. بعد تكوين التصدير، استخدم Azure Monitor وApplication Insights للتحقق من تشغيل الوكلاء، ومراقبة تنفيذ العقد والأدوات، وإنشاء التنبيهات، وبناء استعلامات ولوحات معلومات مخصصة للتحليل التشغيلي.

Note

  • تتوفر القياسات عن بُعد على مستوى البيئة للوكلاء الذين يعملون باستخدام كلٍّ من الـ standard harness وGitHub Copilot harness.
  • بعد المعاينة الخاصة، يتم الآن إصدار استدعاءات الوكيل الجذري (invoke_agent) ك dependencies (مع جميع الامتدادات الأخرى)، بدلا من requests. نتيجة لذلك، قد تظل آثار تتبّع استدعاء جذر العامل تظهر فِي الجدول requests حتى يكتمل الطرح العام.
  • لتقييم هذه الميزة باستخدام أحدث استراتيجيات وقدرات القياس عن بعد، يمكنك الاختبار في بيئة غير إنتاجية مع تفعيل دورة الإصدار المبكر .
  • هذه الميزة تطرح حاليا عالميا وقد لا تكون متاحة بالكامل بعد في بيئاتك.
  • هذه الميزة متاحة فقط للبيئات المدارة.
  • فقط السجلات الخاصة بالوكلاء المبنيين في Copilot Studio، باستثناء الوكلاء التصريحيين، متاحة في Application Insights.
  • لاقتصار اعتماد استراتيجية Application Insights على مستوى البيئة فقط لبيانات تتبع الاستخدام الخاصة بوكلاء Copilot Studio، يمكن للمؤسسات اختيار تعطيل بيانات تتبع الاستخدام في Application Insights على مستوى كل وكيل.

تشرح هذه المقالة كيفية تكوين تصدير مسارات وكلاء Copilot Studio على مستوى البيئة إلى Azure Application Insights من خلال مركز إدارة Power Platform.

Important

تحتوي هذه المقالة على وثائق إصدار أولي Microsoft Copilot Studio وهي عرضة للتغيير.

ميزات الإصدار الأولي ليست مخصصة للاستخدام الإنتاجي وقد تكون لها وظيفة مقيدة. تتوفر هذه الميزات قبل الإصدار الرسمي حتى تتمكن من الحصول على وصول مبكر وتقديم التعليقات.

إذا كنت تقوم بإنشاء عامل جاهز للإنتاج، فشاهد نظرة عامة على Microsoft Copilot Studio.

المتطلبات المسبقه

قبل إعداد اتصال تصدير البيانات، أكمل متطلبات تصدير البيانات إلى Application Insights.

ما يتم تصديره

عند تمكين التصدير، تُكتَب بيانات القياس عن بُعد لتتبّع عامل Copilot Studio في Application Insights بتنسيق قابلية ملاحظة موجَّه للتتبّع ومتوافق مع OpenTelemetry، بما يدعم الاستقصاء ولوحات المعلومات والتنبيهات.

تُكتب أحداث عوامل Copilot Studio في الجدول dependencies على شكل نطاقات. كل حدث يتم تصديره (، ، و ) هو صف امتداد واحد (InvokeAgentExecuteToolOutputMessages).itemType = dependency

كيف تشكل الامتدادات أثرا

تتبع البيانات هذا يتبع نموذج التتبّع والنطاق في OpenTelemetry، والذي يُعاد تكوينه من خلال العمودين operation_Id وoperation_ParentId:

  • كل تفاعل للوكيل هو تتبّع مستقل بحد ذاته، ويُعرَّف بواسطة معرّف مشترك operation_Id، مما يتيح لـ Application Insights تجميع هذا التفاعل وعرضه في طريقة عرض المعاملة من طرف إلى طرف.
  • الامتداد InvokeAgent هو الجذر لتتبّع الدورة الخاصة به. تتداخل نطاقات التتبُّع الخاصة بـ ExecuteTool والنطاقات المتصلة بها الخاصة بـ OutputMessages تحته، ويحمل كلٌّ منها قيمة operation_ParentId مساويةً لقيمة InvokeAgent الخاصة بنطاق التتبُّعid.
  • تمتد المحادثة عبر عدة تبادلات، ويُنشأ كلٌّ منها كتتبّع منفصل. قم بالتجميع أو التصفية حسب gen_ai.conversation.id لإعادة ربط مساهمات المحادثة الواحدة معًا.
  • OutputMessages لا تُصدر المقاطع دائمًا جذرًا InvokeAgent، مما يعني أنها قد تصل، بحكم التصميم، مِنْ دون أبٍ مطابق وتظهر كتتبّع مستقل مكوَّن مِنْ عقدة واحدة.

إنشاء حزمة تصدير

أنشئ حزمة تصدير مع نوع التصدير المضبوط على Copilot Studio باتباع التعليمات في إنشاء حزمة تصدير لوثائق مركز إدارة Power Platform.

تحقق من صحة التكوين

بعد حفظ تكوين التصدير، قم بإجراء محادثة اختبار مع الوكيل وتأكد من وصول التليمترية إلى Application Insights. قد يستغرق وصول بيانات القياس عن بُعد ما يصل إلى 24 ساعة مع التكوينات الجديدة. أكد ذلك:

  • تظهر فترات العامل فِي جدول dependencies.
  • تشترك امتدادات InvokeAgent وExecuteTool وOutputMessages في كل دورة في operation_Id.

مجالات رؤى التطبيقات

يوضح الجدول التالي الحقول في dependencies الجدول، وأي الحقول تم ملؤها لكل من أحداث الوكيل الثلاثة المصدرة: InvokeAgent، ExecuteTool، و OutputMessages. دلالات الوكيل والعمليات موجودة في customDimensions (المفاتيح gen_ai.* ، مثل gen_ai.operation.name)، وليست في الأعمدة الأصلية.

الحقول في dependencies الجدول إنفوك إيجنت إكسيكيت تول رسائل الإخراج ** قيمة العينة
timestamp [UTC] ✔️ ✔️ ✔️ 6/11/2026, 5:02:13.501 AM
id ✔️ ✔️ ✔️ 1111aaa1-aa11-11aa-11a1-a1aaa1111aa1
name ✔️ ✔️ ✔️ InvokeAgent / ExecuteTool / OutputMessages
resultCode ✔️ ✔️ ✔️ OK، ERROR
type ✔️ ✔️ ✔️ GenAI
target ✔️ ✔️ ✔️ GenAI
data ✔️ ✔️ ✔️ invoke_agent / execute_tool / output_messages
success ✔️ ✔️ ✔️ True
duration ✔️ ✔️ ✔️ 0
performanceBucket ✔️ ✔️ ✔️ <250ms
itemType ✔️ ✔️ ✔️ dependency
customDimensions ✔️ ✔️ ✔️ تعرف على المزيد في خصائص customDimension
operation_Id ✔️ ✔️ ✔️ trace-1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 (مشترك فِي كل امتداد فِي الدور)
operation_ParentId ✔️ ✔️ ✔️ الدوران هو InvokeAgentid للامتدادات الفرعية؛ الجذر الأثري للامتداد InvokeAgent
client_Type ✔️ ✔️ ✔️ PC
client_IP ✔️ ✔️ ✔️ 0.0.0.0
client_City ✔️ ✔️ ✔️ San Jose
client_StateOrProvince ✔️ ✔️ ✔️ California
client_CountryOrRegion ✔️ ✔️ ✔️ United States
appId ✔️ ✔️ ✔️ 11111a1a-1111-1111-a111-1a1a1a11111a
appName ✔️ ✔️ ✔️ -
iKey ✔️ ✔️ ✔️ aa111a1a-a1aa-111a-111a-a111a111111a
sdkVersion ✔️ ✔️ ✔️ dotnetc:2.23.0-29
itemId ✔️ ✔️ ✔️ a1a1111a-1111-11a1-1111-111111aa1a1a
itemCount ✔️ ✔️ ✔️ 1
_ResourceId ✔️ ✔️ ✔️ -

خصائص customDimensions

كل امتداد يشمل JSON customDimensions . يوضح الجدول التالي المفاتيح الشائعة التي تظهر في كل امتداد:

مفتاح ** قيمة العينة
SpanId 1111aaa1-aa11-11aa-11a1-a1aaa1111aa1
error.type 404
Status.code 1، 2
Status.message Descriptive failure message
gen_ai.agent.id 1aa11a11-1a1a-1a11-1a1a-1111aa1111aa
gen_ai.agent.name MCS Agent
gen_ai.conversation.id aaaaa111-1a1a-1111-1aa1-a111111a11a1
gen_ai.request.model Sonnet46
gen_ai.operation.name invoke_agent / execute_tool / output_messages
env.id 111a1aa1-a1aa-aaa1-a11a-11a111111111
microsoft.tenant.id 11aaa111-1a11-1a1a-a111-aa1a111a111a
microsoft.a365.agent.blueprint.id 1111111a-aa11-1a11-a1a1-a11a1111a1a1
microsoft.a365.agent.platform.id 111a1aa1-…_1a11111a-…
microsoft.channel.name Copilot Studio Test Pane
resource.provider copilot studio
signal.category default
a365.enabled True
appinsights.enabled True
user.id -
user.email My.User@mytenant.onmicrosoft.com
user.name My User
client.address ::ffff:00.00.00.00
telemetry.sdk.name A365ObservabilitySDK
telemetry.sdk.language dotnet
telemetry.sdk.version 1.1.9.43597

مفاتيح خاصة بالحدث

الجدول التالي يوضح مفاتيح الأحداث الخاصة:

مفتاح إنفوك إيجنت إكسيكيت تول رسائل الإخراج Description
gen_ai.input.messages ✔️ - - مصفوفة JSON ل {role, parts:[{content, type}]}—موجه المستخدم
gen_ai.output.messages - - ✔️ مصفوفة JSON—رد العميل
gen_ai.tool.name - ✔️ - على سبيل المثال workiqsharepoint:mcp_SharePointRemoteServer
gen_ai.tool.type - ✔️ - على سبيل المثال MCP - Power Platform Connector
gen_ai.tool.call.id - ✔️ - معرف استدعاء الأداة
gen_ai.tool.call.arguments - ✔️ - تم إرسال حمولة JSON إلى الأداة
gen_ai.tool.call.result - ✔️ - حمولة JSON التي تُرجعها الأداة

اكتشف المخطط الحالي

قد يتطور المخطط الموثق في هذا المقال مع مرور الوقت. بدلا من الاعتماد فقط على الجداول المذكورة سابقا، استخدم الاستعلامات التالية لفحص أحدث مخطط في بيئتك الخاصة.

قائمة أعمدة الجدول الأصلية

الاستعلام التالي يعيد مخطط dependencies الجدول على مستوى الأعمدة (column-level). استخدمه لتأكيد الأعمدة الأصلية المتاحة عند بناء الاستعلامات أو لوحات المعلومات أو التنبيهات.

dependencies
| getschema
| project ColumnName, ColumnType
| order by ColumnName asc

اكتشاف مفاتيح customDimensions (الخصائص الديناميكية)

يسرد الاستعلام التالي كل مفتاح داخل customDimensions JSON في الجدول dependencies: اسم الخاصية، وأحداث الوكيل التي تظهر فيها (InvokeAgent، ExecuteTool، OutputMessages)، وقيمة نموذجية. على عكس مخطط الأعمدة الأصلي، هذه الخصائص ديناميكية، لذا يبقى هذا الاستعلام دقيقا مع إضافة SDK لمفاتيح جديدة gen_ai.* أو أخرى. استخدمها كمصدر حي للحقيقة للصفات المتاحة.

dependencies
| where timestamp > ago(7d)
| mv-expand Key = bag_keys(customDimensions) to typeof(string)
| summarize Events = make_set(name), SampleValue = take_any(tostring(customDimensions[Key])) by Key
| order by Key asc

مراقبة بيانات القياس عن بُعد المصدّرة

استخدم سجلاتApplication Insights للاستعلام عن نشاط العامل والتحقيق فِي تنفيذ العامل أو الأداة. تُسجَّل جميع بيانات القياس عن بُعد المُصدَّرة في جدول dependencies على شكل نطاقات:

  • كل دور مِنْ العامل يُعدّ أثر تتبّع، ويُجمَّع بحسب operation_Id مشترك.
  • يُعد نطاق التتبُّع InvokeAgent جذر التتبُّع، وترتبط نطاقات التتبُّعExecuteTool و OutputMessagesبه بوصفها نطاقات فرعية عبر الحقل operation_ParentId.
  • قم بالتجميع حسب gen_ai.conversation.id لتجميع عدة تبادلات مِنْ المحادثة نفسها فِي سلسلة واحدة، وقسّم هذا المعرّف عند _ لتضمين تتبعات العامل الفرعي.

شفرات العوامل (المعاينة)

بالإضافة إلى السجلات، يوفّر Application Insights طرق عرض الوكلاء (إصدار أولي) المضمنة التي تصوّر بيانات تتبع الاستخدام المصدّرة الخاصة بـ GenAI من دون كتابة استعلامات Kusto. عندما يكتب Copilot Studio نطاقاته فِي الجدول dependencies، تقرأ هذه اللوحات مباشرةً مِنْ تلك البيانات:

  • جولات الوكلاء: تسرد استدعاءات العملاء المبنية من الامتدادات InvokeAgent ، مع مدتها ونجاحها والمحادثة التي تنتمي إليها كل جولة. تنطبق بعض القيود؛ تعرف على المزيد في القيود والاعتبارات المعروفة.
  • الأدوات: يجمع الامتدادات ExecuteTool ليظهر أي الأدوات يستدعيها الوكلاء، وكم مرة، وكيف يؤدون.
  • النماذج: يلخص استخدام النماذج عبر الجولات، مع عرض النماذج التي تم استدعاؤها وأنماط استدعاءاتها.

لقطة شاشة للوحات Application Insights Agents.

حلّل بيانات القياس عن بُعد للوكيل باستخدام Application Insights

بعد أن تربط بيئتك بتطبيق Insights، تقوم بتسجيل بيانات بيانات التتبع للوكيل عندما يتفاعل المستخدمون مع الوكيل، بما في ذلك أثناء الاختبار داخل Copilot Studio. لعرض بيانات التليمترية المسجلة، اذهب إلى قسم السجلات في مورد Application Insights الخاص بك في Azure. هنا، يمكنك استخدام استعلامات Kusto للاستعلام وتحليل بياناتك. تعرف على المزيد في استعلامات الأمثلة.

أمثلة على الاستعلامات

أمثلة استفسارات Kusto التالية تعيد بناء محادثات وكلاء Copilot Studio من dependencies الجدول في Application Insights. وبما أن كل نطاق يشارك تتبّعًا operation_Id لكل دور، فإن الاستعلامات ترتّب النطاقات بدءًا من الجذر (النطاق InvokeAgent قبل النطاقات الفرعية التابعة له) داخل كل تتبّع.

الاستعلام 1: أعد تتبع كامل لمعرف محادثة معين

يرجع هذا الاستعلام كل امتداد لمحادثة معروفة واحدة، مرتبة زمنيا مع إدراج كل امتداد جذر قبل امتداداته الفرعية. استبدل معرف المحادثة بمعرف محادثة وكيلك. يمكنك العثور عليه بإدخال الأمر التالي أثناء اختبار وكيل التخصيص الخاص بك: /debug conversationid.

let LatestConvo = "<Conversation ID>"; 
dependencies
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
          operation_ParentId, duration, target, type, cloud_RoleName,
          resultCode, customDimensions

الاستعلام 2: أرجِع أحدث محادثة لوكيل معين

هذا الاستعلام يجد أحدث محادثة لوكيل مسمى ضمن الفترة الزمنية المحددة. يُرجِع كل مقطع لتلك المحادثة بنفس الترتيب الزمني، بدءًا من الجذر. استبدل اسم الوكيل المؤقت باسم وكيلك.

let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
    dependencies
    | where timestamp > ago(Window)
    | where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
    | where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
    | top 1 by timestamp desc
    | project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
          operation_ParentId, duration, target, type, cloud_RoleName,
          resultCode, customDimensions

الاستعلام 3: توسيع خصائص OpenTelemetry المعروفة الخاصة بـ genAI إلى أعمدة

يُرجع هذا الاستعلام نفس التتبّع الذي يُرجعه الاستعلام 2، لكنه يُحلّل أيضًا كل مفتاح معروف من مفاتيح الاتفاقيات الدلالية في OpenTelemetry إلى عمود مُسمّى خاص به. النتيجة هي جدول مسطح ومحدد بشكل صريح حيث يمكنك فرز وتصفية ومسح حقول الذكاء الاصطناعي التوليدي مثل اسم الأداة، والنموذج، وموجه المستخدم، ورد الوكيل، ومعرف المحادثة مباشرة. استبدل اسم الوكيل المؤقت باسم وكيلك.

let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo =
    toscalar(
        dependencies
        | where timestamp > ago(Window)
        | extend
            AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
            ConversationId_ = tostring(customDimensions["gen_ai.conversation.id"])
        | where AgentName_ == AgentName
        | where isnotempty(ConversationId_)
        | summarize arg_max(timestamp, ConversationId_)
        | project ConversationId_
    );
dependencies
| where timestamp > ago(Window)
| extend
    ConversationId = tostring(customDimensions["gen_ai.conversation.id"])
| where ConversationId == LatestConvo
| extend
    OperationName    = tostring(customDimensions["gen_ai.operation.name"]),
    AgentId          = tostring(customDimensions["gen_ai.agent.id"]),
    AgentName        = tostring(customDimensions["gen_ai.agent.name"]),
    Model            = tostring(customDimensions["gen_ai.request.model"]),
    ToolName         = tostring(customDimensions["gen_ai.tool.name"]),
    ToolType         = tostring(customDimensions["gen_ai.tool.type"]),
    ToolCallId       = tostring(customDimensions["gen_ai.tool.call.id"]),
    ToolArguments    = tostring(customDimensions["gen_ai.tool.call.arguments"]),
    ToolResult       = tostring(customDimensions["gen_ai.tool.call.result"]),
    EnvironmentId    = tostring(customDimensions["env.id"]),
    TenantId         = tostring(customDimensions["microsoft.tenant.id"]),
    ChannelName      = tostring(customDimensions["microsoft.channel.name"]),
    BlueprintId      = tostring(customDimensions["microsoft.a365.agent.blueprint.id"]),
    PlatformId       = tostring(customDimensions["microsoft.a365.agent.platform.id"]),
    ResourceProvider = tostring(customDimensions["resource.provider"]),
    SignalCategory   = tostring(customDimensions["signal.category"]),
    UserId           = tostring(customDimensions["user.id"]),
    UserName         = tostring(customDimensions["user.name"]),
    UserEmail        = tostring(customDimensions["user.email"])
| extend
    InputMessages  = parse_json(tostring(customDimensions["gen_ai.input.messages"])),
    OutputMessages = parse_json(tostring(customDimensions["gen_ai.output.messages"]))
| extend
    UserInput   = tostring(InputMessages[0].parts[0].content),
    AgentOutput = tostring(OutputMessages[0].parts[0].content)
| order by
    operation_Id asc,
    iff(name == "InvokeAgent", 0, 1) asc,
    timestamp asc
| project
    timestamp, name, id, operation_Id, operation_ParentId, OperationName, ConversationId,
    AgentId, AgentName, Model, ToolName, ToolType, ToolCallId, ToolArguments, ToolResult,
    UserInput, AgentOutput, EnvironmentId, TenantId, ChannelName, BlueprintId, PlatformId,
    ResourceProvider, SignalCategory, UserId, UserName, UserEmail, duration, target, type,
    cloud_RoleName, resultCode, customDimensions

الاستعلام 4: توسيع جميع خصائص GenAI OpenTelemetry بشكل ديناميكي

يعيد هذا الاستعلام النطاقات نفسها التي يعيدها الاستعلام 3، ولكن يُفكَّك كل مفتاح gen_ai.* ديناميكياً من customDimensions إلى عمود مستقل خاص به ذي بادئة ga_. وبما أن الإسقاط ديناميكي، فإن أي خاصية جديدة gen_ai.* تصدرها SDK تظهر تلقائيا لاحقا دون تغيير الاستعلام. استبدل اسم الوكيل المؤقت باسم وكيلك.

let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
    dependencies
    | where timestamp > ago(Window)
    | where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
    | where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
    | top 1 by timestamp desc
    | project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| mv-apply Key = bag_keys(customDimensions) on (
    where Key startswith "gen_ai."
    | summarize OTelGenAI = make_bag(bag_pack(tostring(Key), customDimensions[tostring(Key)]))
  )
| project timestamp, name, id, operation_Id, operation_ParentId,
          duration, target, type, cloud_RoleName, resultCode,
          OTelGenAI, customDimensions
| evaluate bag_unpack(OTelGenAI, 'ga_')

الاستعلام 5: إرجاع أحدث محادثة لعامل جذري مع جميع عوامله الفرعيين، بما فِي ذلك العوامل الفرعيون المتداخلون.

يعيد هذا الاستعلام أحدث محادثة لوكيل مُسمّى. يعيد جميع نطاقات التتبّع لتلك المحادثة ولجميع العوامل الفرعيين مِنْ المستوى الأول التي استدعتها. عندما يستدعي العامل عاملا آخر بوصفه أداة، يرث العامل الفرعي معرّف المحادثة الخاص بالعامل الأصلي مع اللاحقة _<subConversationId>. تُعاد إعادة إنشاء الشجرة بأكملها مِنْ خلال المطابقة مع المعرّف ذي المستوى الأعلى. استبدل اسم الوكيل المؤقت باسم وكيلك.

let Window = 7d;
let AgentName = "<Agent name>";
let LatestRoot =
    toscalar(
        dependencies
        | where timestamp > ago(Window)
        | extend
            AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
            ConversationId = tostring(customDimensions["gen_ai.conversation.id"])
        | where AgentName_ == AgentName
        | where isnotempty(ConversationId)
        | where ConversationId !has "_"
        | summarize arg_max(timestamp, ConversationId)
        | project ConversationId
    );
dependencies
| where timestamp > ago(Window)
| extend
    ConversationId = tostring(customDimensions["gen_ai.conversation.id"]),
    AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
    ToolName = tostring(customDimensions["gen_ai.tool.name"]),
    ToolResult = tostring(customDimensions["gen_ai.tool.callresult"])
| where isnotempty(ConversationId)
| where ConversationId == LatestRoot
    or ConversationId startswith strcat(LatestRoot, "_")
| extend
    Depth = countof(ConversationId, "_"),
    AgentRole = iff(ConversationId == LatestRoot, "root", "sub-agent")
| extend
    InputMessages = parse_json( tostring(customDimensions["gen_ai.input.messages"]) ),
    OutputMessages = parse_json( tostring(customDimensions["gen_ai.output.messages"]) )
| extend
    UserInput = tostring(InputMessages[0].parts[0].content),
    AgentOutput = tostring(OutputMessages[0].parts[0].content)
| order by timestamp asc
| project
    timestamp, name, AgentRole, Depth, AgentName, ToolName, ToolResult, UserInput,
    AgentOutput, id, operation_Id, operation_ParentId, ConversationId, duration,
    target, type, cloud_RoleName, resultCode, customDimensions

القيود والاعتبارات المعروفة

  • قيمة duration غير متوفرة لتتبعات العوامل التي تعمل باستخدام الهارنس القياسي.
  • لا تنعكس أخطاء تنفيذ العامل والأداة حاليًا بصورة صحيحة فِي حالات التتبُّع.
  • بناء على متطلبات إقامة البيانات الخاصة بك، قد ترغب في استخدام موارد Application Insights مخصصة لكل منطقة بيئة.
  • تكون نطاقات الوكيل الفرعي حاليًا تابعة للنطاق الأصل InvokeAgent الذي استدعى الوكيل، بدلًا من النطاق InvokeAgent داخل التتبّع الخاص بها.
  • تُصدَر حاليًا معرّفات التتبّع ونطاق كمعرّفات GUID (مع بادئة عند الحاجة) بدلًا مِنْ أن تكون معرّف تتبّع مكوّنًا مِنْ 32 حرفًا سداسيًا عشريًا ومعرّف span مكوّنًا مِنْ 16 حرفًا سداسيًا عشريًا، ومتوافقين بالكامل مع معيار OpenTelemetry.
  • تأكد من تفعيل المصادقة المحلية على مورد Application Insights المستهدف.
  • تصدير التليمترية ليس إجراء معاملاتيا. خلال أحداث الخدمة المؤقتة، يمكن أن يحدث فقدان صغير للبيانات.
  • قد تحدث تناقضات في البيانات مع نشر تحديثات الإدخال المتعلقة بالمخطط.
  • الأحداث المتعلقة بالموضوع مثل TopicStart، TopicAction، و TopicEnd لا يتم التقاطها باستخدام القياس عن بعد على مستوى البيئة.
  • لتبسيط إعداد التقارير واستكشاف الأخطاء وإصلاحها، تجنب إرسال بيانات تتبع الاستخدام على مستوى الوكيل وعلى مستوى البيئة كليهما إلى مثيل Application Insights نفسه.
  • قد تختلف بيانات القياس عن بُعد الصادرة عن العوامل الذين تم تأليفهم باستخدام بيئة تشغيل GitHub Copilot عن تلك الصادرة عن العوامل الذين تم إنشاؤهم باستخدام تجربة التأليف المعتمدة على بيئة التشغيل القياسية.