Microsoft Dataversen telemetriatapahtumat
Tietovirta sisältää tällä hetkellä suorituskykytietoja, jotka liittyvät Dataverse-ohjelmointirajapinnan saapuviin kutsuihin, Dataverse-laajennuksen suorituskutsuihin ja Dataverse SDK -kutsuihin. Siinä on tietoja myös laajennuksen ja Dataverse SDK -toimintojen virheistä.
Dataverse-ohjelmointirajapinnan saapuvat kutsut
Dataverse-ohjelmointirajapintaan tehdään seuraavia kutsuja. Niitä voidaan tehdä esimerkiksi Unified Interfacesta (UCI), vanhasta verkkosovelluksesta ja SDK:ta käyttävistä mukautetuista asiakasohjelmista. Kutsut sijaitsevat Application Insightsin pyynnöt-taulukossa, jossa on seuraavat kentät:
Nimi: pyynnön tyyppi. Pyyntöluokkia on kaksi:
- Verkko-ohjelmointirajapintapyyntö: Pyyntö OData v4 -päätepiste, jota Unified Interface ja nykyaikaiset asiakkaat käyttävät yleisesti. Tämä pyyntö muunnetaan kummallekin yhteiseksi toiminnoksi. Verkkoasiakasohjelma on paketoija, jonka avulla RESTful-ohjelmointimalli on mahdollinen. Tietojen vastaanottamisen jälkeen, kaikki on kuitenkin samanlaista palvelimessa. Kun vastaus palautetaan, se muunnetaan JSON-muotoon, jos pyyntö tuli verkko-ohjelmointirajapinnasta.
- Organisaation palvelupyyntö: SDK-asiakkaiden tai vanhan verkkoasiakasohjelman päätepiste käyttää pyyntö organisaation ohjelmointirajapintaan.
Kesto: Aika, joka palvelimelta kului pyyntöön vastaamiseen.
URL: URL-osoite, johon puhelu soitettiin.
Mukautetut mitat:
UserAgent: Application Insights täyttää käyttäjäagenttikentän automaattisesti PC: llä , kun näitä lokeja työnnetään palvelinkeskuksen palvelimelta. Application Insights ei salli käyttäjäagenttikentän korvaamista. Joskus käyttäjäagenttikenttää ei ole käytettävissä täyttämistä varten. Käyttäjäagenttia, josta kutsu lähetettiin, voidaan tarkastella seuraavalla kyselyllä:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: Näkymissä, kuten päästä päähän -tapahtumanäkymässä, näytettävän toiminnon luettavissa oleva nimi.
Dataverse-laajennuksen suorituslokit
Nämä tietyssä toiminnossa suoritettavien mukautettujen laajennusten sijaitsevat riippuvuus-taulukossa. Seuraavassa on esimerkkikysely:
dependencies
| where type == "Plugin"
| take 100
- Nimi/kohde: Suoritettavan laajennuksen täydellinen tyyppinimi.
- Kesto: Aika, joka laajennuksen suorittamiseen kului.
- Mukautetut mitat:
- Syvyys: Suorituksen nykyinen syvyys puhelupinossa.
- EntityName: sen entiteetin nimi, jota laajennus käsittelee.
- IsolationType: Arvo , joka ilmaisee, suoritetaanko laajennus eristyksessä:
- 1: Ei ole
- 2: Eristysympäristö
- 3: Ulkoinen
- PluginName: Laajennuksen käyttäjäystävällinen nimi.
- PluginType: Suoritettavan laajennuksen tyypin nimi.
- PluginVersion: Julkaistun laajennuksen versio. Tarkoituksena on, että näitä tietoja voidaan käyttää versiopäivitysten vianmäärityksessä.
- Vaihe: Kartat seuraaviin arvoihin:
- Esivahvistaminen = 10
- Esitoiminto = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- Jälkitoiminto = 40
- PostOperationDeprecated = 50
- StepName: SDK Message Processing -vaihe nimi. Tämä nimi luodaan yleensä laajennusten rekisteröintityökalussa käyttämällä PluginName- ja PluginType-tietoja sekä toiminnon nimeä. Esimerkki: ErrorMessageTest.ThrowException: Tilin luonti.
Laajennuskoodin telemetria
Jos haluat ymmärtää, mitä laajennuskoodissasi tapahtuu , voit sisällyttää mukautetun telemetrian laajennukseen käyttämällä Microsoft. Xrm.Sdk.PluginTelemetry.ILogger-liitäntä laajennuskoodissasi telemetriatietojen kirjoittamiseksi suoraan resurssiin Application Insights . Lisätietoja: Telemetrian kirjoittamine nApplication Insights -resurssiin ILoggerin avulla (esiversio)
Dataversen SDK-lokit
Nämä lokit koskevat saapuvan pyynnön osana käynnistyviä SDK-toimintoja. Ne kirjataan lokiin Application Insightsin riippuvuus-taulukossa, sillä niitä seurataan suoritettavan pyynnön riippuvuuksina. Niiden tunnisteena on tyyppinimi ja niiden alussa on SDK. Seuraavassa on esimerkkikysely:
dependencies
| where type startswith "SDK"
| take 10
- Tyyppi: käynnistetyn SDK-pyynnön tyyppi. Esimerkkejä: Nouda, RetrieveMultiple, FetchXmlToQueryExpression ja WhoAmI.
- Nimi/kohde: Tämä on SDK-operaation kohteena olevan entiteetin nimi.
- Mukautetut mitat:
- ClientType: Asiakastyyppi, jolta puhelu tulee. Mahdollisia arvoja ovat esimerkiksi Web, UCIClient ja OutlookFull.
- EntityId: Käytettävän entiteetin yksilöivä tunnus.
- EntityName: Käytettävän entiteetin nimi.
Poikkeukset
Application Insightsissa on näkyvissä laajennuksia ja SDK-toimintoja koskevia virheitä. Virheet-paneeli perustuu Application Insightsin poikkeukset-taulukkoon. Näiden virheiden tiedot vastaavat laajennuksen ja SDK-kutsujen muita tapahtumia kokonaisvaltaisessa näkymässä. Kaikki käytettävissä olevat tiedot lisätään mahdollisuuksien mukaan sarakkeisiin ja customDimensions-kenttään, jos täsmällistä sarakevastinetta ei ole.
Kaikkia poikkeukset-taulukon kenttiä ei kuitenkaan ole täytetty. Tämä johtuu siitä, että kentät voidaan määrittää vain, jos lApplication Insightsin SDK lähettää lokit lähteestä. Tämä ominaisuus kerää ympäristön telemetrian ja lähettää sen sitten Application Insightsiin Application Insights -rakenteen mukaisesti.
exceptions
| take 10
Tämä kysely palauttaa kaikki määritteen tiedot poikkeus-taulukosta.
- problemId/type: Poikkeuksen tyyppi.
- outerMessage: Poikkeussanoma.
- mukautetut mitat:
- clientType: Asiakastyyppi, jolta puhelu tulee. Mahdollisia arvoja ovat esimerkiksi Web, UCIClient ja OutlookFull.
- exceptionSource: Laajennus tai kohta, johon poikkeus heitettiin.
- entityName: Käytettävän entiteetin nimi.
- pluginName: Sen laajennuksen nimi, johon poikkeus heitettiin.
Jos käyttäjä ilmoittaa virheestä, käyttäjätunnusta (Microsoft Entra ID -tunnus) voidaan käyttää tulkitsemaan poikkeus-taulukon tietoja.
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Entiteetin tunnus ja entiteetin nimi on käytettävissä riippuvuus-taulukon customDimensions-kentässä.
dependencies
| where type == "SDK Retrieve"
Usein kysyttyjä kysymyksiä
Esimerkiksi seuraavia Dataversen telemetritapahtumia koskevia kysymyksiä kysytään usein.
Miten selvitetään, heikensikö laajennuksen päivitys suorituskykyä?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Laajennuksen nimeen pitäisi sisältyä myös mukautettujen laajennusten versio.
Mikä oli ohjelmointirajapinnan suorituskyky ennen ilmoitettua ongelmaa tiettynä vuorokaudenaikana tai tietyssä sijainnissa? Heikentyikö ohjelmointirajapinta vähitellen vai äkillisesti?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Tässä kaaviossa voidaan tarkastella ohjelmointirajapinnan päätepisteen suorituskykyä tietyllä aikavälillä ja verrata sitä tehtyjen pyyntöjen määrään.
Lisäksi voidaan määrittää hälytys, joka perustuu tietyn ohjelmointirajapinnan suorituskykyyn Application Insightsissa.
Onko tietyn ajankohdan tai tietyn käyttäjän virheisiin mahdollista porautua, mikä auttaisi hahmottamaan kutsupinon?
Virheet-paneelin saa yleiskuvan virheistä tiettynä ajankohtana. Tämän jälkeen voidaan tarkentaa tiettyyn virheeseen ohjelmointirajapintakutsun tai riippuvuustyypin perusteella ja tarkastella kokonaisvaltaista näkymää.
Onko mukautettujen koontinäyttöjen luonti mahdollista?
Kyllä. Mukautettuja koontinäyttöjä voi luoda Application Insightsin avulla.
Onko ruuhka-aikana tapahtuvan laajennuksen suorituskyvyn (vasteaika) ja virheprosentin selvittäminen mahdollista?
Kyllä. Seuraava esimerkkikysely auttaa hahmottamaan, miten laajennukset toimivat.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Sisältääkö tämä telemetria käytön rajoittamisen?
Kyllä. Tällä hetkellä annetaan 429 virheen perustiedot.
Onko suorituspolkujen hahmottaminen mahdollista? Hidastavatko laajennuksen tekevät kutsut laajennusta?
Kyllä. Kaikkia kullekin pyynnölle suoritettuja sanomia ja laajennuksia voidaan tarkastella.
Kaikkien sanomien ja laajennuksen suorituksen kesto kirjataan lokiin. Jos jonkin laajennuksen suorittaminen kestää muita kauemmin, kyseinen laajennus on tunnistettavissa. Jos laajennus tekee vastakutsun Dataverseen, kyseisen kutsun kesto kirjataan lokiin. Lisää laajennusta koskevia tietoja suunnitellaan tulevaan käyttöönottoon.
Kaikki laajennuksen tekemät lähtevät kutsut kirjataan automaattisesti lokiin riippuvuutena.
Voiko tietyn pyynnön telemetriaa tarkastella?
Dataversen palauttamien kaikkien pyyntöjen otsikkovastauksia on x-ms-service-requestId. Tämän requestId-määritteen avulla tehdä kyselyjä kaikessa telemetriassa.
union *
| where operation_ParentId contains <requestId>