Κοινή χρήση μέσω


Συμβάντα τηλεμετρίας για Microsoft Dataverse

Αυτή τη στιγμή η ροή δεδομένων παρέχει δεδομένα επιδόσεων που σχετίζονται με εισερχόμενες κλήσεις API Dataverse, κλήσεις εκτέλεσης προσθήκης Dataverseκαι κλήσεις Dataverse SDK. Επίσης, παρέχει δεδομένα για αποτυχίες στις λειτουργίες προσθήκης και Dataverse SDK.

Εισερχόμενες κλήσεις API Dataverse

Αυτές είναι οι κλήσεις που γίνονται στο Dataverse API. Μπορούν να προέρχονται από Ενοποιημένο περιβάλλον εργασίας (UCI), το πρόγραμμα-πελάτη web παλαιού τύπου, προσαρμοσμένα προγράμματα-πελάτες που χρησιμοποιούν το SDK και άλλα. Μπορείτε να τα βρείτε στον πίνακα αιτήματα του Application Insights, ο οποίος έχει τα ακόλουθα πεδία.

  • Όνομα: ο τύπος αιτήματος. Αυτά τα στοιχεία εμπίπτουν σε δύο κατηγορίες:

    • Αίτημα API Web: Ένα αίτημα στο τελικό σημείο OData v4 που χρησιμοποιείται συνήθως από τους πελάτες Ενοποιημένου περιβάλλοντος εργασίας και τους σύγχρονους υπολογιστές-πελάτες. Αυτό το αίτημα μετασχηματώνεται σε μια λειτουργία που είναι κοινή και για τα δύο. Το WEB API είναι ένα "wrapper" για την ενεργοποίηση του μοντέλου προγραμματισμού RESTful, αλλά μετά τη λήψη των δεδομένων, όλα εξισώνονται μέσα στο διακομιστή. Όταν η απόκριση επιστραφεί, μετατρέπεται σε JSON εάν το αίτημα προήλθε από το API Web.
    • Αίτημα υπηρεσίας οργανισμού: Ένα αίτημα για το τελικό σημείο API του οργανισμού χρησιμοποιείται από υπολογιστές-πελάτες SDK ή το πρόγραμμα-πελάτη Web παλαιού τύπου.
  • Διάρκεια: Το χρονικό διάστημα που χρειάστηκε ο διακομιστής για να ανταποκριθεί στο αίτημα.

  • Url: Η διεύθυνση URL στην οποία έγινε η κλήση.

  • CustomDimensions:

    • UserAgent: Το Application Insights συμπληρώνει αυτόματα το πεδίο εκπρόσωπου χρήστη με Η/Υ καθώς αυτά τα αρχεία καταγραφής ωθούνται από ένα διακομιστή σε ένα κέντρο δεδομένων. Το Application Insights δεν επιτρέπει την παράκαμψη του πεδίου "Εκπρόσωπος χρήστη". Μερικές φορές, το πεδίο "εκπρόσωπος χρήστη" δεν είναι διαθέσιμο για συμπλήρωση. Ο εκπρόσωπος χρήστη από τον οποίο έγινε η κλήση μπορεί να προβληθεί χρησιμοποιώντας το ακόλουθο ερώτημα:

      requests
      | summarize count() by tostring(customDimensions.userAgent)
      

      Application Insights CustomDimensions UserAgent.

  • Operation_Name: Το όνομα της λειτουργίας που εμφανίζεται σε προβολές με δυνατότητα ανάγνωσης, όπως η προβολή συναλλαγής από άκρο σε άκρο.

Αρχεία καταγραφής εκτέλεσης προσθήκης Dataverse

Αυτά τα αρχεία καταγραφής για προσαρμοσμένες προσθήκες που εκτελούνται για μια συγκεκριμένη λειτουργία βρίσκονται στον πίνακα εξάρτηση. Ακολουθεί ένα δείγμα ερωτήματος:

dependencies
| where type == "Plugin"
| take 100

Αρχεία καταγραφής εκτέλεσης προσθήκης Dataverse Application Insights.

  • Όνομα/προορισμός: Το πλήρως προσδιορισισμένο όνομα τύπου για την προσθήκη που εκτελείται.
  • Διάρκεια: Ο χρόνος που χρειάστηκε για την εκτέλεση της προσθήκης.
  • CustomDimensions:
    • Βάθος: Το τρέχον Βάθος της εκτέλεσης στη στοίβα κλήσεων.
    • EntityName: Το όνομα της οντότητας στην οποία ενεργούσε η προσθήκη.
    • IsolationType: Μια τιμή που υποδεικνύει αν η προσθήκη εκτελείται στο φίλτρο:
      • 1: Κανένα
      • 2: Φίλτρο
      • 3: Εξωτερικό
    • PluginName: Όνομα φιλικό προς το χρήστη για την προσθήκη.
    • PluginType: Το όνομα του τύπου της προσθήκης που εκτελείται.
    • PluginVersion: Η έκδοση της δημοσιευμένης προσθήκης. Σκοπός εδώ είναι να μπορείτε να χρησιμοποιήσετε αυτές τις πληροφορίες για να αντιμετωπίσετε τυχόν ενημερώσεις εκδόσεων.
    • Stage: Αντιστοιχίζει τις ακόλουθες τιμές:
      • PreValidation = 10
      • PreOperation = 20
      • PreOperationBeforeExternalPlugins = 15
      • PreOperationAfterExternalPlugins = 25
      • MainOperation = 30
      • PostOperationBeforeExternalPlugins = 35
      • PostOperationAfterExternalPlugins = 45
      • PostOperation = 40
      • PostOperationDeprecated = 50
    • StepName: Το όνομα του βήματος επεξεργασίας του μηνύματος SDK. Αυτό συνήθως δημιουργείται από το εργαλείο εγγραφής προσθηκών χρησιμοποιώντας πληροφορίες σχετικά με τα PluginName, PluginType και το όνομα της λειτουργίας - για παράδειγμα ErrorMessageTest.ThrowException: Δημιουργία λογαριασμού.

Τηλεμετρία εντός του κώδικα προσθήκης

Για να κατανοήσετε τι συμβαίνει μέσα στον κώδικα της προσθήκης, μπορείτε να συμπεριλάβετε προσαρμοσμένη τηλεμετρία μέσα από την προσθήκη σας, χρησιμοποιώντας το Περιβάλλον εργασίας χρήστη microsoft.Xrm.Sdk.PluginMetry.ILogger στον κώδικα προσθηκών για να γράψετε δεδομένα τηλεμετρίας απευθείας στον πόρο Application Insights. Περισσότερες πληροφορίες: Εγγραφή τηλεμετρίας στον πόρο Application Insights με χρήση του ILogger (Έκδοση προεπισκόπησης)

Αρχεία καταγραφής Dataverse SDK

Αυτά είναι αρχεία καταγραφής για λειτουργίες SDK που ενεργοποιούνται ως μέρος ενός εισερχόμενου αιτήματος. Αυτά καταγράφονται στον πίνακα εξάρτησης στο Application Insights, επειδή παρακολουθούνται ως εξαρτήσεις για την εκτέλεση του αιτήματος. Αναγνωρίζονται από το όνομα του τύπου, που ξεκινά με SDK. Ακολουθεί ένα δείγμα ερωτήματος:

dependencies
| where type startswith "SDK"
| take 10

SDK ερωτήματος Application Insights.

  • Τύπος: Ο τύπος αιτήματος SDK που ενεργοποιείται. Παραδείγματα είναι τα εξής: Ανάκτηση, RetrieveMultiple, FetchXmlToQueryExpression και WhoAmI.
  • Όνομα/Προορισμός: Αυτό είναι το όνομα της οντότητας που στοχεύεται από τη λειτουργία SDK.
  • CustomDimensions:
    • ClientType: Ο τύπος του προγράμματος-πελάτη από τον οποίο προέρχεται η κλήση. Ορισμένες πιθανές τιμές είναι: Web, UCIClient και OutlookFull.
    • EntityId: Το μοναδικό αναγνωριστικό της οντότητας που χρησιμοποιείται.
    • EntityName: Το όνομα της οντότητας που χρησιμοποιείται.

Εξαιρέσεις

Θα δείτε λεπτομέρειες για αποτυχίες στις λειτουργίες προσθήκης και SDK στο Application Insights. Ο πίνακας εξαιρέσεις στο Application Insights τροφοδοτεί τον πίνακα Αποτυχίες. Αυτές οι λεπτομέρειες αποτυχίας συσχετίζονται με τα υπόλοιπα συμβάντα στις κλήσεις προσθήκης και SDK στην προβολή από άκρο σε άκρο. Όλες οι διαθέσιμες πληροφορίες προστίθενται σε στήλες όταν είναι δυνατό και σε customDimensions όταν δεν υπάρχει ακριβής αντιστοίχιση στηλών.

Θα παρατηρήσετε ότι ορισμένα πεδία στον πίνακα εξαιρέσεις δεν συμπληρώνονται. Αυτό συμβαίνει επειδή αυτά τα πεδία μπορούν να οριστούν μόνο αν το Application Insights SDK χρησιμοποιείται για την αποστολή αρχείων καταγραφής από την προέλευση. Αυτή η δυνατότητα συλλέγει την τηλεμετρία πλατφόρμας και, στη συνέχεια, την προωθεί στο Application Insights σύμφωνα με το σχήμα Application Insights.

Πίνακας εξαιρέσεων Application Insights.

exceptions
| take 10

Αυτό το ερώτημα θα επιστρέψει όλες τις λεπτομέρειες του χαρακτηριστικού από τον πίνακα εξαιρέσεις.

  • problemId/type: Ο τύπος εξαίρεσης.
  • outerMessage: Το μήνυμα εξαίρεσης.
  • customDimensions:
    • clientType: Ο τύπος του προγράμματος-πελάτη από τον οποίο προέρχεται η κλήση. Ορισμένες πιθανές τιμές είναι: Web, UCIClient και OutlookFull.
    • exceptionSource: Η προσθήκη ή το σημείο όπου παρουσιάστηκε η εξαίρεση.
    • entityName: Το όνομα της οντότητας που χρησιμοποιείται.
    • pluginName: Το όνομα της προσθήκης όπου παρουσιάστηκε η εξαίρεση.

Λεπτομέρειες χαρακτηριστικού πίνακα εξαιρέσεων Application Insights.

Εάν ένας χρήστης αναφέρει ένα σφάλμα, μπορείτε να χρησιμοποιήσετε το αναγνωριστικό χρήστη (Microsoft Entra ID) για να κατανοήσετε τις λεπτομέρειες από τον πίνακα εξαιρέσεων.

exceptions
| where user_Id == '12345678-68cd-4e73-908f-126342b36315'

Το αναγνωριστικό οντότητας και το όνομα οντότητας είναι διαθέσιμα στο customDimensions στον πίνακα εξάρτησης.

dependencies
| where type == "SDK Retrieve"

Ερώτημα ανάκτησης SDK Application Insights.

Συνήθεις ερωτήσεις

Ακολουθούν ορισμένες συνήθεις ερωτήσεις σχετικά με τα συμβάντα τηλεμετρίας για το Dataverse.

Πώς μπορώ να προσδιορίσω εάν η αναβάθμιση της προσθήκης μου προκάλεσε υποβάθμιση των επιδόσεων;

dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name

Το όνομα της προσθήκης πρέπει επίσης να περιέχει την έκδοση για τις προσαρμοσμένες προσθήκες.

Πώς απέδιδε το API πριν από ένα πρόβλημα που αναφέρθηκε, με βάση την ώρα της ημέρας ή την τοποθεσία; Ήταν η υποβάθμιση του API σταδιακή ή απότομη;

requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart 

Διάγραμμα απόδοσης βάσει χρόνου του API Application Insights.

Σε αυτό το γράφημα, μπορείτε να δείτε την απόδοση του τελικού σημείου του API σε μια χρονική περίοδο σε σχέση με τον αριθμό των αιτημάτων που πραγματοποιούνται.

Επίσης, μπορείτε να ρυθμίσετε μια ειδοποίηση με βάση την απόδοση ενός συγκεκριμένου API μέσα στο Application Insights.

Μπορώ να ερευνώ λεπτομερώς σφάλματα ή αποτυχίες σε συγκεκριμένους χρόνους ή για συγκεκριμένους χρήστες ώστε να είναι δυνατή η κατανόηση της στοίβας κλήσεων;

Εξετάζοντας τον πίνακα Αποτυχίες μπορείτε να δείτε μια επισκόπηση των αποτυχιών σε ένα δεδομένο χρονικό διάστημα. Στη συνέχεια, μπορείτε να περιορίσετε την προβολή σε μια συγκεκριμένη αποτυχία που βασίζεται στον τύπο κλήσης ή εξάρτησης API για να δείτε την προβολή από άκρο σε άκρο.

Λεπτομέρειες αποτυχίας Application Insights.

Μπορώ να δημιουργήσω προσαρμοσμένους πίνακες εργαλείων;

Ναι. Μπορείτε να δημιουργήσετε προσαρμοσμένους πίνακες εργαλείων με το Application Insights.

Μπορώ να προσδιορίσω την απόδοση χρήσης της προσθήκης (χρόνος απόκρισης) και τα ποσοστά αποτυχίας κατά τη χρήση αιχμής;

Ναι. Ανατρέξτε στο παρακάτω δείγμα ερωτήματος για να κατανοήσετε τον τρόπο με τον οποίο εκτελούνται οι προσθήκες σας.

dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart

Επιδόσεις χρήσης της προσθήκης.

Η τηλεμετρία αυτή θα έχει επιτάχυνση;

Ναι. Παρέχονται επί του παρόντος λεπτομέρειες του βασικού σφάλματος 429.

Μπορώ να κατανοήσω τις διαδρομές εκτέλεσης; Οι κλήσεις που εκτελούνται από την προσθήκη καθυστερούν την προσθήκη;

Ναι. Μπορείτε να προβάλετε όλα τα μηνύματα και τις προσθήκες που εκτελούνται για κάθε αίτημα.

Η διάρκεια όλων των μηνυμάτων και της εκτέλεσης της προσθήκης καταγράφεται. Εάν κάποια προσθήκη απαιτεί περισσότερο χρόνο, μπορείτε να εντοπίσετε αυτή την προσθήκη. Εάν η προσθήκη εκτελεί επιστροφή κλήσης στο Dataverse, η διάρκεια αυτής της κλήσης καταγράφεται. Περισσότερες πληροφορίες σχετικά με τις προσθήκες προβλέπονται για τη μελλοντική ανάπτυξη.

Οποιαδήποτε εξερχόμενη κλήση που εκτελείται από την προσθήκη θα καταγράφεται αυτόματα ως εξάρτηση.

Συναλλαγή από άκρο σε άκρο.

Μπορώ να προβάλω την τηλεμετρία για ένα συγκεκριμένο αίτημα;

Το Dataverse επιστρέφει x-ms-service-requestId στην κεφαλίδα της απόκρισης σε όλα τα αιτήματα. Χρησιμοποιώντας αυτό το requestId, μπορείτε να υποβάλετε ερωτήματα για όλη την τηλεμετρία.

union *
| where operation_ParentId contains <requestId>