@microsoft/agents-a365-observability package
Luokat
| Agent365ExporterOptions |
Span-tilojen enimmäismäärä vientierää kohti. |
| BaggageBuilder |
Pyynnön matkatavaranmuodostin OpenTelemetry-kontekstin levittämistä varten. Tämä luokka tarjoaa sujuvan ohjelmointirajapinnan matkatavaraarvojen asettamiseen, jotka välitetään OpenTelemetry-kontekstissa. Esimerkki
|
| BaggageScope |
Matkatavaralaajuuteen tarkoitettu kontekstihallinta. Tämä luokka hallitsee matkatavaraarvojen elinkaariarvoja asettaen ne syötettäväksi ja palauttaen edellisen kontekstin poistumisen yhteydessä. |
| Builder |
Muodostin Agent 365:n määrittämiselle OpenTelemetry-jäljitystoiminnolla |
| ExecuteToolScope |
Tarjoaa OpenTelemetry-jäljitysalueen tekoälytyökalujen suoritustoiminnoille. |
| InferenceScope |
Tarjoaa OpenTelemetry-jäljitysalueen luotaville tekoälyn tunnistustoiminnoille. |
| InvokeAgentScope |
Tarjoaa OpenTelemetry-jäljitysalueen tekoälyagentin kutsutoiminnoille. |
| ObservabilityConfiguration |
Havainnoitavuuspaketin määritys. Perii suorituspalveluasetukset ja lisää säilöttävyyskohtaiset asetukset. |
| ObservabilityManager |
Tärkein aloituskohta agentille 365, joka tarjoaa OpenTelemetry-jäljityksen tekoälyagenteille ja työkaluille |
| OpenTelemetryConstants |
Agentti 365:n avoimetTelemetry-vakiot |
| OpenTelemetryScope |
OpenTelemetry-jäljitysalueiden perusluokka |
| OutputScope |
Tarjoaa OpenTelemetry-jäljitysalueen tulosviestin seurannalle ja ylätason alueen linkitykselle. |
| PerRequestSpanProcessorConfiguration |
PerRequestSpanProcessor-määritys. Perii suorituspalveluasetukset (clusterCategory, isNodeEnvDevelopment) ja lisää pyyntökohtaiset suorittimen suojakaiteet. Tämä on erotettu ObservabilityConfiguration-määrityksestä, koska PerRequestSpanProcessor-ominaispiirrettä käytetään vain tietyissä tilanteissa, eikä näitä asetuksia saa näyttää yleisessä ObservabilityConfiguration-kohteessa. |
Liittymät
| AgentDetails |
Tietoja tekoälyagentista |
| BlobPart |
Sisäiset binaaritiedot (base64-koodattu). |
| BuilderOptions |
Agent 365 Observability Builderin määritysvaihtoehdot |
| CallerDetails |
Soittajan tiedot laajuuden luomista varten. Tukee ihmiskutsujia, agentin soittajia tai molempia (A2A, jonka ketjussa on ihminen).
Siirtohuomautus: v1:ssä nimi Katso UserDetails — ihmissoittajan käyttäjätiedot (aiemmin |
| Channel |
Edustaa -kanavaa kutsulle |
| ChatMessage |
Malliin lähetetty syöteviesti (OTEL gen-ai -semanttiset käytännöt). |
| FilePart |
Viittaus valmiiksi ladattuun tiedostoon. |
| GenericPart |
Laajennettava osa mukautetuille/tuleville tyypeille. |
| GenericServerToolCall |
Laajennettava palvelintyökalu kutsuu tietoja tyypillä syrjijä. |
| GenericServerToolCallResponse |
Laajennettava palvelintyökalu kutsuu vastausta tyyppi syrjivällä toiminnolla. |
| ILogger |
Agent 365:n mukautettu lokitoimintoliittymä Ota käyttöön tämä liittymä taustatietojen kirjaamisen tukemiseksi |
| InferenceDetails |
Päätekutsun tiedot |
| InferenceResponse |
Tiedot päätekutsun vastauksen tallentamista varten |
| InputMessages | |
| InvokeAgentScopeDetails |
Agentin vaikutusalueen kutsumisen tiedot. |
| OutputMessage |
Mallin tuottama tulosteviesti (OTEL gen-ai-semanttiset käytännöt). |
| OutputMessages | |
| OutputResponse |
Edustaa vastausta, joka sisältää agentin tulosteviestit. Käytetään outputScopen kanssa tulosviestien seurantaan. Hyväksyy tavalliset merkkijonot, jäsennettyjä OTEL OutputMessage -objekteja tai raakaddiktin (käsitellään työkalukutsutuloksena OTEL-ominaisuuskohtaa kohden). |
| ParentSpanRef |
Viittaus pääkohteeseen, joka koskee eksplisiittistä pääkohde-alikohde-linkkiä asynkronisten rajojen yli. Käytetään, kun automaattinen kontekstin levitys epäonnistuu (esimerkiksi WebSocket-takaisinkutsut, ulkoiset tapahtumakäsittelijät). |
| ReasoningPart |
Mallin päättely / ajatusketjusisältö. |
| Request |
Edustaa pyyntöä telemetriakontekstin avulla. Käytetään kaikissa kanava- ja keskustelutyypeissä. |
| ServerToolCallPart |
Palvelinpuolen työkalukutsu. |
| ServerToolCallResponsePart |
Palvelinpuolen työkalun vastaus. |
| ServiceEndpoint |
Edustaa agentin kutsun päätepistettä |
| SpanDetails |
Alueen luonnin span-määritystiedot. Ryhmät OpenTelemetry kattaa -asetukset yksittäiseen objektiin, joten vaikutusaluemenetelmän allekirjoitus pysyy vakaana, kun uusia asetuksia lisätään. |
| TextPart |
Pelkkää tekstiä käsittelevä sisältö. |
| ToolCallDetails |
Agentin tekemän työkalukutsun tiedot |
| ToolCallRequestPart |
Mallin pyytämä työkalukutsu. |
| ToolCallResponsePart |
Työkalukutsun tulos. |
| UriPart |
Ulkoinen URI-viittaus. |
| UserDetails |
Tietoa ihmiskäyttäjän soittajasta. |
Tyypin aliakset
| EnhancedAgentDetails | |
| HeadersCarrier |
Operaattorityyppi HTTP-otsikoille, joita käytetään jäljityskontekstin levittämisessä. Yhteensopiva Node.js IncomingHttpHeaders- ja tavallisen merkkijonokarttojen kanssa. |
| InputMessagesParam |
Hyväksytty syöte ön |
| MessagePart |
Kaikki viestiosatyypit OTEL Gen-ai -semanttisten käytäntöjen mukaisesti. Huomautus: GenericPart toimii yhteensopivuuden takaajana eteenpäin mukautettujen tai tulevien osatyyppien kanssa. Koska se |
| ObservabilityConfigurationOptions |
Havainnoitavuuden määritysasetukset – laajentaa suorituksenaikaisia asetuksia. Kaikki ohitukset ovat funktioita, joita kutsutaan kullakin ominaisuuden käyttöoikeudella. Peritty kohteesta RuntimeConfigurationOptions:
Huomautus: |
| OutputMessagesParam |
Hyväksytty syöte ön |
| ParentContext |
Pääkonteksti span-luontia varten. Hyväksyy jommankumman seuraavista:
|
| PerRequestSpanProcessorConfigurationOptions |
PerRequestSpanProcessor-määritysasetukset laajentavat suorituksenaikaisia asetuksia. Kaikki ohitukset ovat funktioita, joita kutsutaan kullakin ominaisuuden käyttöoikeudella. Peritty kohteesta RuntimeConfigurationOptions:
|
| ResponseMessagesParam |
Hyväksytty syöte ön |
Luetteloinnit
| ExporterEventNames |
Agent365Exporterin kirjaamiseen ja valvontaan käyttämät tapahtumien nimet. Nämä ovat pienen kardinaliteetin tapahtumatyyppejä tehokkaan seurannan ja koostamisen varmistamiseksi. |
| FinishReason |
Miksi mallia ei enää muodostettu OTEL Gen-ai -semanttisten käytäntöjen mukaisesti. |
| InferenceOperationType |
Edustaa eri toimintoa mallin tunnistustyypeille |
| InvocationRole |
Edustaa eri rooleja, jotka voivat kutsua agentin |
| MessageRole |
Viestien osallistujan rooli OTEL Gen-ai -semanttisten käytäntöjen mukaisesti. |
| Modality |
Blob-objekti-, tiedosto- ja URI-osien mediamuotoisuus. |
Funktiot
| create |
Luo uuden kontekstin, jossa on eksplisiittinen päätason span-viittaus. Näin alikohteita voidaan pitää oikein ylätasossa, vaikka asynkroninen konteksti olisi rikki. |
| extract |
Poimii jäljityskontekstin saapuvista HTTP-otsikoista käyttämällä maailmanlaajuisesti rekisteröityä W3C-levittäjää. Palauttaa OTel-kohteen ParentContext , joka voidaan välittää vaikutusalueluokkiin ParentContext-arvona. Esimerkki
|
| format |
Muotoile virhe-objekti viestin ja pinon jäljityksen kirjaamista varten |
| get |
Nouda pyyntökohtainen vientitunnus tietystä OTel-kontekstista (tai aktiivisesta). |
| get |
Hae nykyinen lokitoiminnon esiintymä |
| inject |
Lisää nykyisen jäljityskontekstin ( Esimerkki
|
| is |
Tarkista, onko pyyntökohtainen vienti käytössä. Käsittelyjärjestys: sisäinen ohittaa > määrityspalvelun > ympäristömuuttujan. Kun se on käytössä, käytetään PerRequestSpanProcessor-kohdetta BatchSpanProcessor-kohteen sijaan. Tunnus välitetään OTel Contextin (asynkroninen paikallinen tallennustila) kautta vientiaikana. |
| normalize |
Normalisoi kohteen
|
| normalize |
Normalisoi kohteen
|
| reset |
Konsolin oletuskirjaustoiminnon palauttaminen (pääasiassa testausta varten) |
| run |
Suorita kontekstissa funktio, joka sisältää pyyntökohtaisen vientitunnuksen. Tämä säilyttää tunnuksen vain OTel Contextissa (ALS), ei koskaan missään rekisterissä. Tunnus voidaan päivittää myöhemmin |
| run |
Poimii jäljityskontekstin saapuvista HTTP-otsikoista ja suorittaa takaisinkutsun tässä kontekstissa. Kaikki takaisinkutsun sisällä luodut ajanjaksot ovat poimitun jäljityksen pääkohde. Esimerkki
|
| run |
Suorittaa takaisinkutsufunktion kontekstissa, jolla on eksplisiittinen pääkohdeviittaus. Tästä on hyötyä luotaessa alikohteita asynkronisissa takaisinkutsuissa, joissa kontekstin välitys ei toimi. |
| safe |
Varmistaa, että arvo on aina JSON-jäsennettävissä oleva merkkijono.
|
| serialize |
Sarjoittaa JSON-muotoon versiotetun sanoman rivittimen. Tuloksena on täysi rivitysobjekti: Try/catch varmistaa, että telemetriatallennus ei heittele, vaikka viestiosat sisältävät ei-JSON-sarjoitettavissa olevia arvoja (esimerkiksi BigInt, pyöreät tarkenteet). |
| set |
Määritä mukautettu lokitoiminnon toteutus havaittavuus-SDK:lle Esimerkki Winstonin kanssa:
|
| update |
Päivitä vientitunnus aktiivisessa OTel-kontekstissa. Kutsu tätä päivittääksesi tunnuksen ennen kuin pääalue päättyy, kun alkuperäinen tunnus on saattanut vanhentua pitkäkestoisen pyynnön aikana. On kutsuttava samassa asynkroninen kontekstissa, jonka on |
Muuttujat
| A365_MESSAGE_SCHEMA_VERSION | |
| default |
ObservabilityConfiguration-kohdan jaettu oletuspalvelu. |
| default |
Jaettu oletuspalvelu perRequestSpanProcessorConfiguration-toiminnolle. |
| logger | Oletusarvoinen lokitoiminnon esiintymä yhteensopivuuden vuoksi aiempien versioiden kanssa. Delegoijat yleiseen lokitoimintoon, joka voidaan korvata setLogger()-arvolla. |
Funktion tiedot
createContextWithParentSpanRef(Context, ParentSpanRef)
Luo uuden kontekstin, jossa on eksplisiittinen päätason span-viittaus. Näin alikohteita voidaan pitää oikein ylätasossa, vaikka asynkroninen konteksti olisi rikki.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
Parametrit
- base
-
Context
Peruskonteksti, jota laajennetaan (yleensä context.active())
- parent
- ParentSpanRef
Päätason viittaus, joka sisältää traceId- ja spanId-tunnuksen
Palautukset
Context
Uusi konteksti, jossa päätason span-asetus on määritetty
extractContextFromHeaders(HeadersCarrier, Context)
Poimii jäljityskontekstin saapuvista HTTP-otsikoista käyttämällä maailmanlaajuisesti rekisteröityä W3C-levittäjää. Palauttaa OTel-kohteen ParentContext , joka voidaan välittää vaikutusalueluokkiin ParentContext-arvona.
Esimerkki
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
Parametrit
- headers
- HeadersCarrier
Saapuvat HTTP-pyyntöotsikot, jotka sisältävät kohteen traceparent/tracestate.
- baseCtx
-
Context
Valinnainen peruskonteksti, jota haluat laajentaa. Oletusarvon mukaan aktiivinen konteksti.
Palautukset
Context
OTel-konteksti, joka sisältää poimitut jäljitystiedot.
formatError(unknown)
Muotoile virhe-objekti viestin ja pinon jäljityksen kirjaamista varten
function formatError(error: unknown): string
Parametrit
- error
-
unknown
Palautukset
string
getExportToken(Context)
Nouda pyyntökohtainen vientitunnus tietystä OTel-kontekstista (tai aktiivisesta).
function getExportToken(ctx?: Context): string | undefined
Parametrit
- ctx
-
Context
Palautukset
string | undefined
getLogger()
injectContextToHeaders(Record<string, string>, Context)
Lisää nykyisen jäljityskontekstin (traceparent/tracestate otsikot) annettuun otsikko-objektiin käyttämällä yleisesti rekisteröityä W3C-levittäjää.
Esimerkki
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>
Parametrit
- headers
-
Record<string, string>
Muunnettava objekti, jossa kirjoitetaan jäljityskontekstiotsikot.
- ctx
-
Context
Valinnainen OTel-konteksti, josta injisoidaan. Oletusarvon mukaan aktiivinen konteksti.
Palautukset
Record<string, string>
Tämä on sama headers objekti ketjutuksen kätevyyden kannalta.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
Tarkista, onko pyyntökohtainen vienti käytössä. Käsittelyjärjestys: sisäinen ohittaa > määrityspalvelun > ympäristömuuttujan. Kun se on käytössä, käytetään PerRequestSpanProcessor-kohdetta BatchSpanProcessor-kohteen sijaan. Tunnus välitetään OTel Contextin (asynkroninen paikallinen tallennustila) kautta vientiaikana.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
Parametrit
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
Valinnainen määrityspalvelu. Oletusarvona on defaultPerRequestSpanProcessorConfigurationProvider, jos sitä ei ole määritetty.
Palautukset
boolean
normalizeInputMessages(InputMessagesParam)
Normalisoi kohteen InputMessagesParam versioksi paketoijaksi InputMessages .
-
string/string[]→ muunnettuna ja paketoitunaChatMessage[] -
InputMessages→ palautettu as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
Parametrit
- param
- InputMessagesParam
Palautukset
normalizeOutputMessages(OutputMessagesParam)
Normalisoi kohteen OutputMessagesParam versioksi paketoijaksi OutputMessages .
-
string/string[]→ muunnettuna ja paketoitunaOutputMessage[] -
OutputMessages→ palautettu as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
Parametrit
- param
- OutputMessagesParam
Palautukset
resetLogger()
Konsolin oletuskirjaustoiminnon palauttaminen (pääasiassa testausta varten)
function resetLogger()
runWithExportToken<T>(string, () => T)
Suorita kontekstissa funktio, joka sisältää pyyntökohtaisen vientitunnuksen. Tämä säilyttää tunnuksen vain OTel Contextissa (ALS), ei koskaan missään rekisterissä.
Tunnus voidaan päivittää myöhemmin updateExportToken() ennen jäljityksen huuhtelua . Se on hyödyllinen, kun takaisinkutsu on pitkäkestoinen ja alkuperäinen tunnus voi vanhentua ennen vientiä.
function runWithExportToken<T>(token: string, fn: () => T): T
Parametrit
- token
-
string
- fn
-
() => T
Palautukset
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
Poimii jäljityskontekstin saapuvista HTTP-otsikoista ja suorittaa takaisinkutsun tässä kontekstissa. Kaikki takaisinkutsun sisällä luodut ajanjaksot ovat poimitun jäljityksen pääkohde.
Esimerkki
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
Parametrit
- headers
- HeadersCarrier
Saapuvat HTTP-pyyntöotsikot, jotka sisältävät kohteen traceparent/tracestate.
- callback
-
() => T
Funktio, joka suoritetaan poimitussa kontekstissa.
Palautukset
T
Takaisinkutsun tulos.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
Suorittaa takaisinkutsufunktion kontekstissa, jolla on eksplisiittinen pääkohdeviittaus. Tästä on hyötyä luotaessa alikohteita asynkronisissa takaisinkutsuissa, joissa kontekstin välitys ei toimi.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
Parametrit
- parent
- ParentSpanRef
Päätason viittaus
- callback
-
() => T
Pääkontekstilla suoritettava funktio
Palautukset
T
Takaisinkutsun tulos
safeSerializeToJson(string | Record<string, unknown>, string)
Varmistaa, että arvo on aina JSON-jäsennettävissä oleva merkkijono.
- Objektit sarjoitetaan JSON.stringify-tiedostolla.
- Merkkijonot, jotka ovat jo kelvollisia JSON-objekteja/-matriiseja, välitetään.
- Kaikki muut merkkijonot (mukaan lukien paljaat JSON-primitivit) on pakattu:
{ [key]: value }.
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
Parametrit
- value
-
string | Record<string, unknown>
Sarjoitettava arvo.
- key
-
string
Avain, jota käytetään, kun rivität pelkkää merkkijonoa.
Palautukset
string
serializeMessages(InputMessages | OutputMessages)
Sarjoittaa JSON-muotoon versiotetun sanoman rivittimen.
Tuloksena on täysi rivitysobjekti: {"version":"0.1.0","messages":[...]}.
Try/catch varmistaa, että telemetriatallennus ei heittele, vaikka viestiosat sisältävät ei-JSON-sarjoitettavissa olevia arvoja (esimerkiksi BigInt, pyöreät tarkenteet).
function serializeMessages(wrapper: InputMessages | OutputMessages): string
Parametrit
- wrapper
Palautukset
string
setLogger(ILogger)
Määritä mukautettu lokitoiminnon toteutus havaittavuus-SDK:lle
Esimerkki Winstonin kanssa:
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)
Parametrit
- customLogger
- ILogger
Mukautetun lokitoiminnon toteutus
updateExportToken(string)
Päivitä vientitunnus aktiivisessa OTel-kontekstissa. Kutsu tätä päivittääksesi tunnuksen ennen kuin pääalue päättyy, kun alkuperäinen tunnus on saattanut vanhentua pitkäkestoisen pyynnön aikana.
On kutsuttava samassa asynkroninen kontekstissa, jonka on runWithExportTokenluonut .
function updateExportToken(token: string): boolean
Parametrit
- token
-
string
Vientiin käytettävä tuore tunnus.
Palautukset
boolean
true, jos tunnus päivitettiin onnistuneesti, false, jos tunnuksen haltijaa ei löytynyt.
Muuttujan tiedot
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
Tyyppi
string
defaultObservabilityConfigurationProvider
ObservabilityConfiguration-kohdan jaettu oletuspalvelu.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
Tyyppi
defaultPerRequestSpanProcessorConfigurationProvider
Jaettu oletuspalvelu perRequestSpanProcessorConfiguration-toiminnolle.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
Tyyppi
logger
Oletusarvoinen lokitoiminnon esiintymä yhteensopivuuden vuoksi aiempien versioiden kanssa. Delegoijat yleiseen lokitoimintoon, joka voidaan korvata setLogger()-arvolla.
logger: ILogger