@microsoft/agents-a365-observability package
الفصول
| Agent365ExporterOptions |
الحد الأقصى لعدد الامتدادات لكل دفعة تصدير. |
| BaggageBuilder |
لكل منشئ أمتعة طلب لنشر سياق القياس المفتوح. توفر هذه الفئة واجهة برمجة تطبيقات بطلاقة لإعداد قيم الأمتعة التي سيتم نشرها في سياق OpenTelemetry. مثال
|
| BaggageScope |
مدير السياق لنطاق الأمتعة. تدير هذه الفئة دورة حياة قيم الأمتعة، ووضعها عند الدخول واستعادة السياق السابق عند الخروج. |
| Builder |
منشئ لتكوين Agent 365 مع تتبع OpenTelemetry |
| ExecuteToolScope |
يوفر نطاق تتبع OpenTelemetry لعمليات تنفيذ أداة الذكاء الاصطناعي. |
| InferenceScope |
يوفر نطاق تتبع OpenTelemetry لعمليات الاستدلال الذكاء الاصطناعي التوليدية. |
| InvokeAgentScope |
يوفر نطاق تتبع OpenTelemetry لعمليات استدعاء عامل الذكاء الاصطناعي. |
| ObservabilityConfiguration |
تكوين حزمة إمكانية المراقبة. يرث إعدادات وقت التشغيل ويضيف إعدادات خاصة بقابلية الملاحظة. |
| ObservabilityManager |
نقطة الإدخال الرئيسية للعامل 365 التي توفر تتبع القياس المفتوح لوكلاء وأدوات الذكاء الاصطناعي |
| OpenTelemetryConstants |
ثوابت OpenTelemetry للعامل 365 |
| OpenTelemetryScope |
الفئة الأساسية لنطاقات تتبع OpenTelemetry |
| OutputScope |
يوفر نطاق تتبع OpenTelemetry لتتبع رسائل الإخراج مع ارتباط الامتداد الأصل. |
| PerRequestSpanProcessorConfiguration |
تكوين PerRequestSpanProcessor. يرث إعدادات وقت التشغيل (clusterCategory، isNodeEnv Developer) ويضيف حواجز حماية المعالج لكل طلب. يتم فصل هذا عن ObservabilityConfiguration لأن PerRequestSpanProcessor يستخدم فقط في سيناريوهات معينة ولا يجب كشف هذه الإعدادات في تكوين إمكانية المراقبة الشائعة. |
الواجهات
| AgentDetails |
تفاصيل حول عامل الذكاء الاصطناعي |
| BlobPart |
البيانات الثنائية المضمنة (مرمزة ب base64). |
| BuilderOptions |
خيارات التكوين ل Agent 365 Observability Builder |
| CallerDetails |
تفاصيل المتصل لإنشاء النطاق. يدعم المتصلين البشريين أو المتصلين بالوكلاء أو كليهما (A2A مع إنسان في السلسلة).
ملاحظة الترحيل: في الإصدار 1، يشير الاسم راجع قسم UserDetails — هوية المتصل البشري (سابقا |
| Channel |
يمثل قناة للادعاء |
| ChatMessage |
رسالة إدخال مرسلة إلى نموذج (اصطلاحات دلالية OTEL gen-ai). |
| FilePart |
مرجع إلى ملف تم تحميله مسبقا. |
| GenericPart |
جزء قابل للتوسيع للأنوان المخصصة / المستقبلية. |
| GenericServerToolCall |
تفاصيل استدعاء أداة خادم قابلة للتوسيع بنوع تمييزي. |
| GenericServerToolCallResponse |
استجابة استدعاء أداة خادم قابلة للتوسيع بنوع تمييزي. |
| ILogger |
واجهة مسجل مخصصة لقابلية مراقبة العامل 365 تنفيذ هذه الواجهة لدعم الواجهات الخلفية للتسجيل |
| InferenceDetails |
تفاصيل مكالمة استدلال |
| InferenceResponse |
تفاصيل تسجيل الاستجابة من مكالمة استدلال |
| InputMessages | |
| InvokeAgentScopeDetails |
تفاصيل استدعاء نطاق العامل. |
| OutputMessage |
رسالة إخراج ينتجها نموذج (اصطلاحات دلالية OTEL gen-ai). |
| OutputMessages | |
| OutputResponse |
يمثل استجابة تحتوي على رسائل إخراج من عامل. يستخدم مع OutputScope لتتبع رسائل الإخراج. يقبل السلاسل العادية، أو كائنات OTEL OutputMessage المنظمة، أو الإملاء الخام (يتم التعامل معه كنتيجة استدعاء أداة لكل مواصفات OTEL). |
| ParentSpanRef |
مرجع إلى نطاق أصل للارتباط الصريح بين الأصل والتابع عبر الحدود غير المتزامنة. يستخدم عند فشل نشر السياق التلقائي (على سبيل المثال، عمليات رد اتصال WebSocket، معالجات الأحداث الخارجية). |
| ReasoningPart |
تحليل النموذج / محتوى سلسلة التفكير. |
| Request |
يمثل طلبا مع سياق بيانات تتبع الاستخدام. يستخدم عبر جميع أنواع النطاقات لتعقب القناة والمحادثات. |
| ServerToolCallPart |
استدعاء الأداة من جانب الخادم. |
| ServerToolCallResponsePart |
استجابة الأداة من جانب الخادم. |
| ServiceEndpoint |
يمثل نقطة نهاية لادعاء العامل |
| SpanDetails |
تفاصيل تكوين النطاق لإنشاء النطاق. مجموعات خيارات OpenTelemetry span في كائن واحد بحيث يظل توقيع أسلوب النطاق مستقرا مع إضافة خيارات جديدة. |
| TextPart |
محتوى النص العادي. |
| ToolCallDetails |
تفاصيل استدعاء الأداة التي أجراها وكيل |
| ToolCallRequestPart |
استدعاء أداة طلبه النموذج. |
| ToolCallResponsePart |
نتيجة استدعاء أداة. |
| UriPart |
مرجع URI خارجي. |
| UserDetails |
تفاصيل حول المتصل المستخدم البشري. |
النوع أسماء مستعارة
| EnhancedAgentDetails | |
| HeadersCarrier |
نوع الناقل لرؤوس HTTP المستخدمة في نشر سياق التتبع. متوافق مع Node.js الواردHttpHeaders وخرائط السلسلة العادية. |
| InputMessagesParam |
الإدخال المقبول ل |
| MessagePart |
اتحاد جميع أنواع أجزاء الرسائل لكل اصطلاحات دلالية OTEL gen-ai. ملاحظة: يعمل GenericPart كجمع شامل للتوافق مع إعادة التوجيه مع أنواع الأجزاء المخصصة أو المستقبلية. لأن الخاص به |
| ObservabilityConfigurationOptions |
خيارات تكوين إمكانية المراقبة - توسيع خيارات وقت التشغيل. جميع التجاوزات هي دالات يتم استدعاؤها على كل وصول إلى الخاصية. موروث من RuntimeConfigurationOptions:
ملاحظة: |
| OutputMessagesParam |
الإدخال المقبول ل |
| ParentContext |
سياق أصل لإنشاء النطاق. يقبل إما:
|
| PerRequestSpanProcessorConfigurationOptions |
خيارات التكوين ل PerRequestSpanProcessor - توسيع خيارات وقت التشغيل. جميع التجاوزات هي دالات يتم استدعاؤها على كل وصول إلى الخاصية. موروث من RuntimeConfigurationOptions:
|
| ResponseMessagesParam |
الإدخال المقبول ل |
التعدادات
| ExporterEventNames |
أسماء الأحداث المستخدمة من قبل Agent365Exporter للتسجيل والمراقبة. هذه هي أنواع الأحداث ذات العلاقة الأساسية المنخفضة لضمان المراقبة والتجميع الفعالين. |
| FinishReason |
سبب توقف النموذج عن الإنشاء لكل اصطلاحات دلالية OTEL gen-ai. |
| InferenceOperationType |
يمثل عملية مختلفة للأنوع لاستدلال النموذج |
| InvocationRole |
يمثل أدوارا مختلفة يمكنها استدعاء عامل |
| MessageRole |
دور مشارك رسالة لكل اصطلاحات دلالية OTEL gen-ai. |
| Modality |
طريقة الوسائط لأجزاء الكائن الثنائي كبير الحجم والملف وURI. |
الوظائف
| create |
إنشاء سياق جديد مع مرجع نطاق أصل صريح. يسمح هذا لامتدادات الطفل أن تكون أصلية بشكل صحيح حتى عندما يكون السياق غير المتزامن معطلا. |
| extract |
استخراج سياق التتبع من رؤوس HTTP الواردة باستخدام نشر W3C المسجل عالميا. إرجاع OTel ParentContext الذي يمكن تمريره إلى فئات النطاق ك ParentContext. مثال
|
| format |
تنسيق كائن الخطأ للتسجيل باستخدام تتبع الرسائل والمكدس |
| get |
استرداد رمز التصدير لكل طلب من سياق OTel معين (أو سياق نشط). |
| get |
الحصول على مثيل المسجل الحالي |
| inject |
إدراج سياق التتبع الحالي ( مثال
|
| is |
تحقق مما إذا كان التصدير لكل طلب ممكنا. الأسبقية: يتجاوز > متغير بيئة موفر > التكوين الداخلي. عند التمكين، يتم استخدام PerRequestSpanProcessor بدلا من BatchSpanProcessor. يتم تمرير الرمز المميز عبر OTel Context (التخزين المحلي غير المتزامن) في وقت التصدير. |
| normalize |
تطبيع
|
| normalize |
تطبيع
|
| reset |
إعادة التعيين إلى مسجل وحدة التحكم الافتراضي (بشكل رئيسي للاختبار) |
| run |
تشغيل دالة ضمن سياق يحمل الرمز المميز للتصدير لكل طلب. هذا يحافظ على الرمز المميز فقط في سياق OTel (ALS)، أبدا في أي سجل. يمكن تحديث الرمز المميز لاحقا قبل |
| run |
استخراج سياق التتبع من رؤوس HTTP الواردة وتشغيل رد الاتصال ضمن هذا السياق. سيتم تربية أي امتدادات تم إنشاؤها داخل رد الاتصال إلى التتبع المستخرج. مثال
|
| run |
تشغيل دالة رد اتصال ضمن سياق يحتوي على مرجع نطاق أصل صريح. هذا مفيد لإنشاء امتدادات فرعية في عمليات رد الاتصال غير المتزامنة حيث يتم قطع نشر السياق. |
| safe |
يضمن أن القيمة دائما سلسلة قابلة لتحليل JSON.
|
| serialize |
تسلسل برنامج تضمين رسالة تم إصداره إلى JSON. الإخراج هو كائن برنامج التضمين الكامل: يضمن try/catch عدم طرح تسجيل بيانات تتبع الاستخدام حتى عندما تحتوي أجزاء الرسائل على قيم غير قابلة للتسلسل JSON (على سبيل المثال BigInt، refs دائرية). |
| set |
تعيين تطبيق مسجل مخصص ل SDK القابلة للمراقبة مثال على Winston:
|
| update |
تحديث رمز التصدير المميز في سياق OTel النشط. قم باستدعاء هذا لتحديث الرمز المميز قبل إنهاء النطاق الجذر عند انتهاء صلاحية الرمز المميز الأصلي أثناء طلب طويل الأمد. يجب استدعاء ضمن نفس السياق المتزامن الذي تم إنشاؤه بواسطة |
المتغيرات
| A365_MESSAGE_SCHEMA_VERSION | |
| default |
الموفر الافتراضي المشترك ل ObservabilityConfiguration. |
| default |
الموفر الافتراضي المشترك ل PerRequestSpanProcessorConfiguration. |
| logger | مثيل المسجل الافتراضي للتوافق مع الإصدارات السابقة. المفوضون إلى المسجل العمومي الذي يمكن استبداله عبر setLogger(). |
تفاصيل الوظيفة
createContextWithParentSpanRef(Context, ParentSpanRef)
إنشاء سياق جديد مع مرجع نطاق أصل صريح. يسمح هذا لامتدادات الطفل أن تكون أصلية بشكل صحيح حتى عندما يكون السياق غير المتزامن معطلا.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
المعلمات
- base
-
Context
السياق الأساسي المراد توسيعه (عادة context.active())
- parent
- ParentSpanRef
مرجع الامتداد الأصل الذي يحتوي على traceId و spanId
المرتجعات
Context
سياق جديد مع مجموعة الامتداد الأصل
extractContextFromHeaders(HeadersCarrier, Context)
استخراج سياق التتبع من رؤوس HTTP الواردة باستخدام نشر W3C المسجل عالميا. إرجاع OTel ParentContext الذي يمكن تمريره إلى فئات النطاق ك ParentContext.
مثال
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
المعلمات
- headers
- HeadersCarrier
عناوين طلب HTTP الواردة التي traceparent/tracestateتحتوي على .
- baseCtx
-
Context
سياق أساسي اختياري لتوسيعه. الإعدادات الافتراضية للسياق النشط.
المرتجعات
Context
سياق OTel يحتوي على معلومات التتبع المستخرجة.
formatError(unknown)
تنسيق كائن الخطأ للتسجيل باستخدام تتبع الرسائل والمكدس
function formatError(error: unknown): string
المعلمات
- error
-
unknown
المرتجعات
string
getExportToken(Context)
استرداد رمز التصدير لكل طلب من سياق OTel معين (أو سياق نشط).
function getExportToken(ctx?: Context): string | undefined
المعلمات
- ctx
-
Context
المرتجعات
string | undefined
getLogger()
injectContextToHeaders(Record<string, string>, Context)
إدراج سياق التتبع الحالي (traceparent/tracestate الرؤوس) في كائن الرؤوس المتوفرة باستخدام نشر W3C المسجل عالميا.
مثال
const headers: Record<string, string> = {};
injectContextToHeaders(headers);
await fetch('http://service-b/process', { headers });
function injectContextToHeaders(headers: Record<string, string>, ctx?: Context): Record<string, string>
المعلمات
- headers
-
Record<string, string>
كائن قابل للتغيير حيث ستتم كتابة عناوين سياق التتبع.
- ctx
-
Context
سياق OTel اختياري لإدخال منه. الإعدادات الافتراضية للسياق النشط.
المرتجعات
Record<string, string>
نفس headers الكائن، لراحة التسلسل.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
تحقق مما إذا كان التصدير لكل طلب ممكنا. الأسبقية: يتجاوز > متغير بيئة موفر > التكوين الداخلي. عند التمكين، يتم استخدام PerRequestSpanProcessor بدلا من BatchSpanProcessor. يتم تمرير الرمز المميز عبر OTel Context (التخزين المحلي غير المتزامن) في وقت التصدير.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
المعلمات
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
موفر التكوين الاختياري. الإعدادات الافتراضية ل defaultPerRequestSpanProcessorConfigurationProvider إذا لم يتم تحديدها.
المرتجعات
boolean
normalizeInputMessages(InputMessagesParam)
تطبيع InputMessagesParam إلى برنامج تضمين تم إصداره InputMessages .
-
string/string[]→ تحويلها إلىChatMessage[]ملفوفة -
InputMessages→ إرجاع as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
المعلمات
- param
- InputMessagesParam
المرتجعات
normalizeOutputMessages(OutputMessagesParam)
تطبيع OutputMessagesParam إلى برنامج تضمين تم إصداره OutputMessages .
-
string/string[]→ تحويلها إلىOutputMessage[]ملفوفة -
OutputMessages→ إرجاع as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
المعلمات
- param
- OutputMessagesParam
المرتجعات
resetLogger()
إعادة التعيين إلى مسجل وحدة التحكم الافتراضي (بشكل رئيسي للاختبار)
function resetLogger()
runWithExportToken<T>(string, () => T)
تشغيل دالة ضمن سياق يحمل الرمز المميز للتصدير لكل طلب. هذا يحافظ على الرمز المميز فقط في سياق OTel (ALS)، أبدا في أي سجل.
يمكن تحديث الرمز المميز لاحقا قبل updateExportToken() مسح التتبع — وهو مفيد عندما يكون رد الاتصال قيد التشغيل لفترة طويلة وقد تنتهي صلاحية الرمز المميز الأصلي قبل التصدير.
function runWithExportToken<T>(token: string, fn: () => T): T
المعلمات
- token
-
string
- fn
-
() => T
المرتجعات
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
استخراج سياق التتبع من رؤوس HTTP الواردة وتشغيل رد الاتصال ضمن هذا السياق. سيتم تربية أي امتدادات تم إنشاؤها داخل رد الاتصال إلى التتبع المستخرج.
مثال
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
المعلمات
- headers
- HeadersCarrier
عناوين طلب HTTP الواردة التي traceparent/tracestateتحتوي على .
- callback
-
() => T
الدالة المراد تنفيذها ضمن السياق المستخرج.
المرتجعات
T
نتيجة رد الاتصال.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
تشغيل دالة رد اتصال ضمن سياق يحتوي على مرجع نطاق أصل صريح. هذا مفيد لإنشاء امتدادات فرعية في عمليات رد الاتصال غير المتزامنة حيث يتم قطع نشر السياق.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
المعلمات
- parent
- ParentSpanRef
مرجع النطاق الأصل
- callback
-
() => T
الدالة المراد تنفيذها مع السياق الأصل
المرتجعات
T
نتيجة رد الاتصال
safeSerializeToJson(string | Record<string, unknown>, string)
يضمن أن القيمة دائما سلسلة قابلة لتحليل JSON.
- يتم تسلسل الكائنات عبر JSON.stringify.
- يتم تمرير السلاسل الصالحة بالفعل لكائنات/صفائف JSON.
- يتم التفاف
{ [key]: value }جميع السلاسل الأخرى (بما في ذلك البدائيات JSON العارية): .
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
المعلمات
- value
-
string | Record<string, unknown>
القيمة المراد تسلسلها.
- key
-
string
المفتاح الذي يجب استخدامه عند التفاف سلسلة عادية.
المرتجعات
string
serializeMessages(InputMessages | OutputMessages)
تسلسل برنامج تضمين رسالة تم إصداره إلى JSON.
الإخراج هو كائن برنامج التضمين الكامل: {"version":"0.1.0","messages":[...]}.
يضمن try/catch عدم طرح تسجيل بيانات تتبع الاستخدام حتى عندما تحتوي أجزاء الرسائل على قيم غير قابلة للتسلسل JSON (على سبيل المثال BigInt، refs دائرية).
function serializeMessages(wrapper: InputMessages | OutputMessages): string
المعلمات
- wrapper
المرتجعات
string
setLogger(ILogger)
تعيين تطبيق مسجل مخصص ل SDK القابلة للمراقبة
مثال على Winston:
import * as winston from 'winston';
import { setLogger } from '@microsoft/agents-a365-observability';
const winstonLogger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
setLogger({
info: (msg, ...args) => winstonLogger.info(msg, ...args),
warn: (msg, ...args) => winstonLogger.warn(msg, ...args),
error: (msg, ...args) => winstonLogger.error(msg, ...args),
event: (eventType, isSuccess, durationMs, message, details) => {
// eventType is ExporterEventNames enum value
winstonLogger.log({ level: isSuccess ? 'info' : 'error', eventType, isSuccess, durationMs, message, ...details });
}
});
function setLogger(customLogger: ILogger)
المعلمات
- customLogger
- ILogger
تنفيذ المسجل المخصص
updateExportToken(string)
تحديث رمز التصدير المميز في سياق OTel النشط. قم باستدعاء هذا لتحديث الرمز المميز قبل إنهاء النطاق الجذر عند انتهاء صلاحية الرمز المميز الأصلي أثناء طلب طويل الأمد.
يجب استدعاء ضمن نفس السياق المتزامن الذي تم إنشاؤه بواسطة runWithExportToken.
function updateExportToken(token: string): boolean
المعلمات
- token
-
string
الرمز المميز الجديد الذي يجب استخدامه للتصدير.
المرتجعات
boolean
true إذا تم تحديث الرمز المميز بنجاح، خطأ إذا لم يتم العثور على حامل رمز مميز.
تفاصيل المُتغيّر
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
النوع
string
defaultObservabilityConfigurationProvider
الموفر الافتراضي المشترك ل ObservabilityConfiguration.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
النوع
defaultPerRequestSpanProcessorConfigurationProvider
الموفر الافتراضي المشترك ل PerRequestSpanProcessorConfiguration.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
النوع
logger
مثيل المسجل الافتراضي للتوافق مع الإصدارات السابقة. المفوضون إلى المسجل العمومي الذي يمكن استبداله عبر setLogger().
logger: ILogger