Συμβάντα τηλεμετρίας για 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 στην οποία πραγματοποιήθηκε η κλήση.
Προσαρμοσμένες διαστάσεις:
UserAgent: Application Insights συμπληρώνει αυτόματα το πεδίο παράγοντα χρήστη με υπολογιστή , καθώς αυτά τα αρχεία καταγραφής προωθούνται από ένα διακομιστή σε ένα κέντρο δεδομένων. Το Application Insights δεν επιτρέπει την παράκαμψη του πεδίου "Εκπρόσωπος χρήστη". Μερικές φορές, το πεδίο "εκπρόσωπος χρήστη" δεν είναι διαθέσιμο για συμπλήρωση. Ο εκπρόσωπος χρήστη από τον οποίο έγινε η κλήση μπορεί να προβληθεί χρησιμοποιώντας το ακόλουθο ερώτημα:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: Το αναγνώσιμο όνομα της λειτουργίας που θα εμφανίζεται σε προβολές, όπως η προβολή συναλλαγών από άκρο σε άκρο.
Αρχεία καταγραφής εκτέλεσης προσθήκης Dataverse
Αυτά τα αρχεία καταγραφής για προσαρμοσμένες προσθήκες που εκτελούνται για μια συγκεκριμένη λειτουργία βρίσκονται στον πίνακα εξάρτηση. Ακολουθεί ένα δείγμα ερωτήματος:
dependencies
| where type == "Plugin"
| take 100
- Όνομα/Προορισμός: Το πλήρως προσδιορισμένο όνομα τύπου για την προσθήκη που εκτελείται.
- Διάρκεια: Ο χρόνος που χρειάστηκε για να εκτελεστεί η προσθήκη.
- Προσαρμοσμένες διαστάσεις:
- Βάθος: Το τρέχον βάθος εκτέλεσης στη στοίβα κλήσεων.
- EntityName: Το όνομα της οντότητας στην οποία γίνεται ενέργεια από την προσθήκη.
- IsolationType: Μια τιμή που υποδεικνύει εάν η προσθήκη εκτελείται στο περιβάλλον προστατευμένης εκτέλεσης:
- 1: Κανένα
- 2: Φίλτρο
- 3: Εξωτερικό
- PluginName: Το φιλικό προς το χρήστη όνομα της προσθήκης.
- PluginType: Το όνομα του τύπου της προσθήκης που εκτελείται.
- PluginVersion: Η έκδοση της δημοσιευμένης προσθήκης. Σκοπός εδώ είναι να μπορείτε να χρησιμοποιήσετε αυτές τις πληροφορίες για να αντιμετωπίσετε τυχόν ενημερώσεις εκδόσεων.
- Στάδιο: Αντιστοιχίζεται στις ακόλουθες τιμές:
- 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.PluginTelemetry.ILogger Interface στον κώδικα plug-in για να γράψετε δεδομένα τηλεμετρίας απευθείας στον πόρο σας Application Insights . Περισσότερες πληροφορίες: Εγγραφή τηλεμετρίας στον πόρο Application Insights με χρήση του ILogger (Έκδοση προεπισκόπησης)
Αρχεία καταγραφής Dataverse SDK
Αυτά είναι αρχεία καταγραφής για λειτουργίες SDK που ενεργοποιούνται ως μέρος ενός εισερχόμενου αιτήματος. Αυτά καταγράφονται στον πίνακα εξάρτησης στο Application Insights, επειδή παρακολουθούνται ως εξαρτήσεις για την εκτέλεση του αιτήματος. Αναγνωρίζονται από το όνομα του τύπου, που ξεκινά με SDK. Ακολουθεί ένα δείγμα ερωτήματος:
dependencies
| where type startswith "SDK"
| take 10
- Τύπος: Ο τύπος του αιτήματος SDK που ενεργοποιήθηκε. Παραδείγματα είναι τα εξής: Ανάκτηση, RetrieveMultiple, FetchXmlToQueryExpression και WhoAmI.
- Όνομα/Στόχος: Αυτό είναι το όνομα της οντότητας που στοχεύει η λειτουργία SDK.
- Προσαρμοσμένες διαστάσεις:
- ClientType: Ο τύπος προγράμματος-πελάτη από τον οποίο προέρχεται η κλήση. Ορισμένες πιθανές τιμές είναι: Web, UCIClient και OutlookFull.
- EntityId: Το μοναδικό αναγνωριστικό της οντότητας που χρησιμοποιείται.
- EntityName: Το όνομα της οντότητας που χρησιμοποιείται.
Εξαιρέσεις
Θα δείτε λεπτομέρειες για αποτυχίες στις λειτουργίες προσθήκης και SDK στο Application Insights. Ο πίνακας εξαιρέσεις στο Application Insights τροφοδοτεί τον πίνακα Αποτυχίες. Αυτές οι λεπτομέρειες αποτυχίας συσχετίζονται με τα υπόλοιπα συμβάντα στις κλήσεις προσθήκης και SDK στην προβολή από άκρο σε άκρο. Όλες οι διαθέσιμες πληροφορίες προστίθενται σε στήλες όταν είναι δυνατό και σε customDimensions όταν δεν υπάρχει ακριβής αντιστοίχιση στηλών.
Θα παρατηρήσετε ότι ορισμένα πεδία στον πίνακα εξαιρέσεις δεν συμπληρώνονται. Αυτό συμβαίνει επειδή αυτά τα πεδία μπορούν να οριστούν μόνο αν το Application Insights SDK χρησιμοποιείται για την αποστολή αρχείων καταγραφής από την προέλευση. Αυτή η δυνατότητα συλλέγει την τηλεμετρία πλατφόρμας και, στη συνέχεια, την προωθεί στο Application Insights σύμφωνα με το σχήμα Application Insights.
exceptions
| take 10
Αυτό το ερώτημα θα επιστρέψει όλες τις λεπτομέρειες του χαρακτηριστικού από τον πίνακα εξαιρέσεις.
- problemId/type: Ο τύπος εξαίρεσης.
- outerMessage: Το μήνυμα εξαίρεσης.
- customΔιαστάσεις:
- clientType: Ο τύπος προγράμματος-πελάτη από τον οποίο προέρχεται η κλήση. Ορισμένες πιθανές τιμές είναι: Web, UCIClient και OutlookFull.
- exceptionSource: Η προσθήκη ή το σημείο όπου δημιουργήθηκε η εξαίρεση.
- entityName: Το όνομα της οντότητας που χρησιμοποιείται.
- pluginName: Το όνομα της προσθήκης όπου δημιουργήθηκε η εξαίρεση.
Εάν ένας χρήστης αναφέρει ένα σφάλμα, μπορείτε να χρησιμοποιήσετε το αναγνωριστικό χρήστη (Microsoft Entra ID) για να κατανοήσετε τις λεπτομέρειες από τον πίνακα εξαιρέσεων.
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Το αναγνωριστικό οντότητας και το όνομα οντότητας είναι διαθέσιμα στο customDimensions στον πίνακα εξάρτησης.
dependencies
| where type == "SDK Retrieve"
Συνήθεις ερωτήσεις
Ακολουθούν ορισμένες συνήθεις ερωτήσεις σχετικά με τα συμβάντα τηλεμετρίας για το 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 σε μια χρονική περίοδο σε σχέση με τον αριθμό των αιτημάτων που πραγματοποιούνται.
Επίσης, μπορείτε να ρυθμίσετε μια ειδοποίηση με βάση την απόδοση ενός συγκεκριμένου API μέσα στο Application Insights.
Μπορώ να ερευνώ λεπτομερώς σφάλματα ή αποτυχίες σε συγκεκριμένους χρόνους ή για συγκεκριμένους χρήστες ώστε να είναι δυνατή η κατανόηση της στοίβας κλήσεων;
Εξετάζοντας τον πίνακα Αποτυχίες μπορείτε να δείτε μια επισκόπηση των αποτυχιών σε ένα δεδομένο χρονικό διάστημα. Στη συνέχεια, μπορείτε να περιορίσετε την προβολή σε μια συγκεκριμένη αποτυχία που βασίζεται στον τύπο κλήσης ή εξάρτησης API για να δείτε την προβολή από άκρο σε άκρο.
Μπορώ να δημιουργήσω προσαρμοσμένους πίνακες εργαλείων;
Ναι. Μπορείτε να δημιουργήσετε προσαρμοσμένους πίνακες εργαλείων με το 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>