إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا المقال، ستتعلم ما الذي يصدره إدارة Azure API لحركة المرور إلى خوادم MCP، وكيفية تفعيل تسجيل الحمولة لأدوات الوسائط والنتائج، وكيفية الاستعلام عن البيانات في Azure Monitor.
المتطلبات المسبقه
مثيل إدارة API يحتوي على خادم MCP واحد على الأقل. انظر إلى Expose a REST API كخادم MCP أو كشف خادم MCP موجود.
مورد Application Insights مرتبط بمثيل إدارة واجهة برمجة التطبيقات الخاص بك. لمزيد من المعلومات، راجع Configure Application Insights for إدارة Azure API.
القياس الافتراضي لخوادم MCP
لكل طلب MCP، تكتب إدارة API صف طلبات Application Insights بأبعاد محددة ل MCP وتحدد حقل المدة القياسي. يمكنك رسم جدول زمن الاستجابة لكل أداة دون تغيير أي تكوين. للتفاصيل، راجع قسم مرجع القياس عن بعد MCP ، لاحقا في هذا المقال.
ملحوظة
تتبع بيانات MCP الدلالية الخاصة ب OpenTelemetry للذكاء الاصطناعي التوليدي، والتي تحدد أسماء سمات التليمترية القياسية (على سبيل المثال، gen_ai.*) بحيث تكون البيانات متسقة عبر الأدوات.
تمكين تسجيل الحمولة للوسائط والنتائج
بشكل افتراضي، لا تلتقط إدارة API الوسائط ونتائج استدعاءات الأدوات. لتمكين الالتقاط لخادم MCP:
في مدخل Microsoft Azure، انتقل إلى مثيل APIM.
اختر خوادم MCP الخاصة بواجهات البرمجة (APIs>)، ثم اختر خادم MCP الذي تريد تسجيله.
اختر الإعدادات>وسجلات التشخيص.
تمكين تسجيل حمولة الواجهة الأمامية والخلفية. اختر حفظ.
إنذار
يمكن أن تشمل حجج الأدوات والنتائج المحفزات، بيانات العملاء، أو الأسرار. فعل تسجيل الحمولة فقط لخوادم MCP والبيئات التي تحتاجها. طبق قوائم المسح أو المطالبات قبل النشر الواسع.
استعلام حركة مرور MCP باستخدام KQL
فيما يلي نماذج استفسارات Kusto يمكنك تشغيلها في Azure Monitor لتحليل حركة مرور MCP. في هذه الأمثلة، استبدل sales-mcp باسم خادم MCP الخاص بك حيثما كان ذلك مناسبا.
قم بإدراج آخر 50 استدعاء أداة على خادم MCP معين
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["service.name"] == "sales-mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| project timestamp,
tool = customDimensions["gen_ai.tool.name"],
session = customDimensions["gen_ai.conversation.id"],
client = strcat(customDimensions["user_agent.name"], "/",
customDimensions["user_agent.version"]),
durationMs = duration,
success
| order by timestamp desc
| take 50
أفضل عملاء MCP حسب حجم استدعاء الأدوات
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| summarize calls = count()
by client = strcat(customDimensions["user_agent.name"], "/",
customDimensions["user_agent.version"])
| top 10 by calls desc
زمن الاستجابة P50 وP95 لكل أداة خلال آخر 24 ساعة
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
and timestamp > ago(24h)
| summarize p50 = percentile(duration, 50),
p95 = percentile(duration, 95),
calls = count()
by tool = tostring(customDimensions["gen_ai.tool.name"])
| order by p95 desc
معدل الخطأ لكل أداة عبر الزمن
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| summarize total = count(),
failures = countif(success == false)
by bin(timestamp, 5m),
tool = tostring(customDimensions["gen_ai.tool.name"])
| extend errorRate = todouble(failures) / total
| render timechart
فحص الحجج المرسلة إلى أداة معينة
في هذا السيناريو، تأكد من تفعيل تسجيل الحمولة على خادم MCP.
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["service.name"] == "sales-mcp"
and customDimensions["gen_ai.tool.name"] == "create_quote"
and timestamp > ago(1h)
| project timestamp,
session = customDimensions["gen_ai.conversation.id"],
args = customDimensions["gen_ai.tool.call.arguments"],
result = customDimensions["gen_ai.tool.call.result"]
أضف أبعاد مخصصة باستخدام سياسة التتبع
لالتقاط البيانات غير الموجودة في المخطط المدمج - مثل رأس مخصص x-agent-id ، أو مطالبة JWT، أو معرف ارتباط - استخدم سياسة التتبع في نطاق خادم MCP.
التحذير
لا تدخل context.Response.Body من السياسات المرتبطة بنطاق MCP. يتم بث ردود MCP، وقراءة الجسد تكسر التيار.
مرجع القياس عن بعد MCP
تظهر الأبعاد التالية في كل طلب MCP:
| الملكية | Description |
|---|---|
gen_ai.operation.name |
طريقة JSON-RPC (أدوات/قائمة أو أدوات/استدعاء). |
gen_ai.conversation.id |
معرف جلسة MCP. |
network.protocol.name |
اسم البروتوكول (MCP). |
network.protocol.version |
نسخة البروتوكول. |
auth.type |
طريقة المصادقة الداخلة. |
user_agent.name |
اسم عميل MCP (على سبيل المثال، vscode أو claude-desktop). |
user_agent.version |
نسخة العميل MCP. |
service.name |
اسم خادم MCP. |
service.version |
نسخة خادم MCP. |
api.type |
مميز نوع API (Mcp). |
error.message |
سلسلة خطأ، عند الفشل. |
error.type |
فئة الخطأ، عند الفشل. |
حقول إضافية على الأدوات/القائمة
| القياس | Description |
|---|---|
ToolCount |
عدد الأدوات التي أعيدت في الرد. |
حقول إضافية على الأدوات/الاستدعاء
| الملكية | Description |
|---|---|
gen_ai.tool.name |
أداة استدعاها العميل. |
gen_ai.tool.type |
نوع الأداة. |
gen_ai.tool.call.arguments |
الحجج JSON. يظهر فقط عند تفعيل تسجيل الحمولة. |
gen_ai.tool.call.result |
النتيجة: JSON. يظهر فقط عند تفعيل تسجيل الحمولة. |