Jaa


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)
      

      Application Insights 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

Application Insightsin Dataverse-laajennuksen suorituslokit

  • 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

Application Insights -kyselyn SDK

  • 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.

Application Insightsin poikkeustaulukko

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.

Application Insightsin poikkeustaulukon määritteen tiedot

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"

Application Insightsin SDK:n noutokysely

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 

Application Insightsin ohjelmointirajapinnan suorituskyvyn aikakaavio

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ää.

Application Insightsin virheen tiedot

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

Laajennuksen käytön suorituskyky

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.

Kokonaisvaltainen tapahtuma

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>