חקירת שיחות MCP באמצעות Trace

בעזרת Cloud Trace אתם יכולים לנתח את ההתנהגות והביצועים של אפליקציות מבוססות-סוכנים ששולחות קריאות לשרתי MCP מרוחקים של Google Cloud. אתם יכולים להגדיר את האפליקציה כך שתתעד הנחיות, תשובות וקריאות ל-method, בזמן ששרתי MCP מרוחקים יוצרים span לקריאות API לכלי. מעקב מתעד את הפעולה מקצה לקצה כדי להציג רצפי קריאות ואת זמן האחזור הכולל, וטווחים נפרדים מספקים פרטים על הסטטוס והתזמון של פונקציות ספציפיות.

מידע על הכלים

כלים מאפשרים לנציג לאסוף מידע מחוץ לנתוני האימון שלו, בדרך כלל באמצעות אינטראקציה עם ממשקי API חיצוניים. באמצעות שרתי MCP של Google Cloud, האפליקציות מבוססות-הסוכנים יכולות להפעיל כלים שמפעילים שיטות API של Google Cloud . לדוגמה, האפליקציה יכולה להפעיל את הכלי list_log_entries כדי לאחזר נתונים מהיומן.

‫Model Context Protocol (MCP) הוא מפרט שמגדיר דרך סטנדרטית שבה סוכני AI יכולים לתקשר ולקיים אינטראקציה עם כלים, מקורות נתונים ומשאבים חיצוניים. במאמר מוצרים נתמכים מופיעה רשימה מלאה של מוצרים שמספקים שרת MCP וקישורים למאמרי העזרה שלהם.

איך הקשר יומן המעקב מועבר לשרת MCP

בדפי העזרה של MCP, כמו המאמר בנושא list_log_entries, יש דוגמה לפקודת curl שאפשר להשתמש בה כדי לשלוח בקשות HTTP לכלי. מטען הייעודי (payload) של ה-JSON שנשלח בבקשה דומה לזה:

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "NAME",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "id": 1
}

הערך של השדה name מפרט את שם הכלי, למשל list_log_entries. השדה arguments מכיל את המידע שנדרש לפעולה כדי להשלים את הבקשה.

תקן MCP מגדיר שדה _meta, שמאפשר ללקוחות ולשרתים לצרף מטא-נתונים לאינטראקציות שלהם. לקוחות ושרתים יכולים להשתמש בשדה הזה כדי להעביר את הקשר יומן המעקב:

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "NAME",
    "arguments": {
      // provide these details according to the tool's MCP specification
    },
    "_meta": {
        "traceparent": "00-TRACE_ID-PARENT_SPAN_ID-SAMPLED_FLAG",
        "tracestate": "Vendor specific information."
      },
  },
  "id": 1
}

הנתונים של _meta כוללים את השדה traceparent. הפורמט של הערך בשדה הזה מוגדר בכותרת traceparent של World Wide Web Consortium‏ (W3C). הערך כולל את:

  • גרסת המפרט של traceparent ‏(00).
  • מזהה המעקב (TRACE_ID).
  • המזהה של ה-span ששלח קריאה (PARENT_SPAN_ID).
  • אם הטווח הקורא דגם את הבקשה (SAMPLED_FLAG). הערך של השדה הזה הוא 01 כשהבקשה נדגמה, ו-00 כשהיא לא נדגמה.

השדה tracestate מכיל מידע מעקב ספציפי לספק.

מגבלות

  • הקשר יומן המעקב חייב לעמוד בתקן W3C Trace Context, והדגל sampled חייב להיות מוגדר ל-1.

  • שרתי MCP מרוחקים של Google Cloud יכולים ליצור span אחד לפעולת tools/call, אבל הם לא יוצרים spans לסוגים אחרים של פעולות או spans צאצאים לפעולת tools/call.

  • שרתי MCP מרוחקים של Google Cloud יוצרים span רק כשהבקשה מאומתת, מורשית ועוברת בדיקות פנימיות אחרות.

שרתי MCP שתומכים במעקב

בקטע הזה מפורטים שרתי Google ו- Google Cloud שרתי MCP מרוחקים שתומכים במעקב. בנוסף, מוסבר איך שרתי MCP באירוח עצמי יכולים ליצור טווחי מעקב.

שרתים באירוח עצמי

מומלץ להגדיר את שרתי ה-MCP באירוח עצמי כך שישלחו נתוני טלמטריה לפרויקט ב- Google Cloud . אם אתם משתמשים ב-Python, האינסטרומנטציה יכולה ליצור span לפעולות של tools/call. מידע נוסף זמין במאמר הוספת כלים לשרת MCP באירוח עצמי באמצעות OpenTelemetry.

שרתי Google ו- Google Cloud MCP מרוחקים שתומכים במעקב

המוצרים הבאים כוללים שילוב שמאפשר לשרת ה-MCP המרוחק שלהם ליצור טווח מעקב לפעולת tools/call:

מוצר חומרי עזר
Cloud Logging הפניית MCP ל-Cloud Logging
Cloud Monitoring חומר עזר בנושא Cloud Monitoring MCP
Maps Grounding Lite הפניה ל-MCP של Maps Grounding Lite
GKE חומר עזר בנושא GKE MCP
Cloud Run חומר עזר בנושא Cloud Run MCP
Compute Engine חומר עזר בנושא MCP ב-Compute Engine
Google Security Operations הפניית MCP של Google SecOps
‫AlloyDB ל-PostgreSQL הפניית MCP של AlloyDB ל-PostgreSQL
חיפוש מבוסס סוכנים הפניית MCP לחיפוש מבוסס סוכנים
Cloud SQL
BigQuery הפניית MCP ל-BigQuery
‫Service Health בהתאמה אישית הפניית MCP למרכז האישי ב-Service Health
חיוב ב-Cloud חומר עזר בנושא חיוב ב-Cloud MCP
פותר הבעיות שקשורות למדיניות הפניה ל-MCP של פותר הבעיות שקשורות למדיניות
Managed Service for Apache Airflow חומר עזר בנושא Managed Service for Apache Airflow MCP
Datastream חומר עזר בנושא Datastream MCP
כלי הניתוח למדיניות הפניית MCP לכלי הניתוח למדיניות
Unified Maintenance הפניית MCP ל-Unified Maintenance
ניהול זהויות והרשאות גישה הפניה ל-MCP של ניהול זהויות והרשאות גישה
שירות מדיניות הארגון הפניה ל-MCP של שירות מדיניות הארגון
Spanner חומר עזר בנושא Spanner MCP
Security Command Center הפניית MCP של Security Command Center
Colaboratory הפניית MCP ב-Colab

הגדרת האפליקציה

אפשר להשתמש בכל framework או SDK שמעבירים את הקשר יומן המעקב באמצעות השדה _meta. המסגרות וערכות ה-SDK האלה כוללות את אלה שתומכות במוסכמות הסמנטיות של OpenTelemetry ל-MCP.

לדוגמה, אתם יכולים להשתמש במסגרת של ערכת הפיתוח לסוכנים (ADK). מידע נוסף זמין במאמר שדרוג אפליקציות ADK באמצעות OpenTelemetry.

הצגת טווחי זמן

כדי לראות את נתוני המעקב, משתמשים ב-Trace Explorer. בדף הזה אפשר לראות מידע נצבר על נתוני המעקב, ולבחון מעקבים וטווחים ספציפיים. מידע נוסף זמין במאמר חיפוש ועיון במעקבים.

כדי לראות את הטווחים שנוצרו על ידי שרתי MCP, סננו את נתוני המעקב לפי שם הטווח. לדוגמה, חלק משרתי ה-MCP המרוחקים של Google Cloud יכולים ליצור טווח מעקב כשהם מקבלים פעולת tools/call. השמות של הטווחים האלה נבנים לפי המוסכמה הבאה:

tools/call NAME

בביטוי הקודם, NAME מתייחס לכלי שהופעל, לדוגמה list_keys. מוסכמת מתן השמות הזו מוגדרת במוסכמות הסמנטיות של OpenTelemetry ל-MCP.

כדי למצוא את הטווחים האלה, משתמשים בסרגל הסינון ומוסיפים מסנן מאפיינים ל-mcp.method.name. מגדירים את ערך המסנן בתור tools/call. מידע מפורט על השלבים האלה זמין במאמר הצגת קריאות לשרתי MCP מרוחקים.

דוגמאות לאינסטרומנטציה

במאמר בחירת גישה למדידת ביצועים מפורטות המלצות למדידת ביצועים.

דוגמאות למכשור שאנחנו מספקים משתמשות ב-OpenTelemetry: