Giter VIP home page Giter VIP logo

plugintraceviewer's Introduction

Welcome to @rappen!

๐Ÿ”ข The Numbers

Stats


๐Ÿ’ฌ The Social

Twitter Follow

Website


๐Ÿ›  The Stuff


๐Ÿš€ The Releases

Repo NuGet AzDO GitHub
FXB Nuget AzDO GitHub
PTV Nuget AzDO GitHub
BDU Nuget AzDO GitHub
ShB Nuget AzDO GitHub
ShR Nuget AzDO GitHub
ShD Nuget AzDO GitHub
ANM Nuget AzDO GitHub
LCG Nuget AzDO GitHub
UDG Nuget AzDO GitHub
CAPIT Nuget AzDO GitHub
CAT Nuget AzDO GitHub
EPM Nuget AzDO GitHub
RRA Nuget AzDO GitHub
PAC Nuget AzDO GitHub
XIT Nuget AzDO GitHub
XRMTR Nuget AzDO GitHub
๐Ÿค GitHub
๐Ÿ’ป GitHub

plugintraceviewer's People

Contributors

dependabot-preview[bot] avatar fowl2 avatar gitter-badger avatar rappen avatar shytikov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plugintraceviewer's Issues

Export logs to file

Export for further analysis in Excel or similar would be great.
Option to include message and exception.

Add Step Name column

Step Name is probably a more interesting column than Plugin Name.
Add it to the view.

Filter by Operation

Add possibility to filter by Operation: Plugin or Workflow Activity or All.

Layout problem when moving screens

When I move the XrmToolBox from one screen to another, the right hand pane doesn't resize its panels. So when going from (for example) portrait to landscape, the Exception panel mostly vanishes:

exception_panel_gone

Layout problem on narrow screens

When the XrmToolBox window is resized narrower and narrower (for example to fit on a portrait oriented screen with a pitiful 1080 x 1920 resolution), most of the items on the right side of the left-hand pane stay fixed in place, ultimately vanishing underneath the right-hand pane; the Retrieve button moves relative to the border, and goes underneath some items, and over others as it moves left.

Without stealing real estate from the right-hand pane, I'm not sure what the best solution is, and UX certainly isn't my area :-) But the attached is more compact, so would survive any sensible narrow-ness

suggestion

Show Step Name

Usually the name of the Step has more information than the name of the plugin class.
Show it in the trace log grid, easy now as #42 is implemented.

Filter on Entity

It should be possible to filter logs by entity name, including wildcards.

Allow multiple filters

When filtering plugin and entity it would be great to be able to specify several names separated by commas.
Names should still be wildcardable.

Open external text editor for log files

I think every developer has their own preference in text editors. So it would be nice to open log entry in that editor when we're double-clicking on log entry.

Fix Placement of Units

image

In this image, you can see "Exec. Time / Day (s)" in the label. At first glance this is read as "Execution time per days".

Recommend changing to "Exec. Time (s/day)" as I am assuming, your units are seconds per day.

Toggle Tracelogs

I'd like to be able to toggle trace-logging (all/exceptions only/none) from within the plugin, rather than having to go through the D365 UI

Show all Plugin Statistics

Display a view with all plugin statistics.
Somehow make it possible to select plugins and filter PTV by these.

Save settings on each retrieve

Currently the PluginClose is only issued when the single plugin is closed, but not when closing XTB.
So another event has to be used to always store settings.
Until XTB issues some event for all kinds of closing, the easiest way is to save each time Retrieve Logs is executed.

Check CRM version before loading plugin

This plugin is not valid for older versions of CRM. Prior to 2015 OnLine, I guess.

For example, when I'm connecting to CRM 2013 I'm getting following exception, that actually makes sense for me as a developer, but looks too techy for normal user:

---------------------------
Load
---------------------------
Failed to load date constraints:
The entity with a name = 'plugintracelog' was not found in the MetadataCache.
---------------------------
OK   
---------------------------

It's possible to dismiss that message and see plugin. Which will be completely unusable.

I think it would be better to inform user right away, that organization he tries to connect is not supported, since required entities are missing.

Show Plugin Statistics for selected plugin

Right click on a log record to open plugin statistics for that plugin class.
Or add an optional info panel with plugin stats automatically populated when navigating through the log records.

Add Group By CorrelationId

Would be nice to be able to group traces by the context CorrelationId to see all plugins triggered in the execution process.
This should make it easier to identify if the a plugin is triggering multiple times in the same process.

Filter by Stage

Now that #42 is done and Stage is displayed, it would be nice to be able to filter on this attribute too.
Add filter like this:

image

Add quick search function

It would be nice to be able to quickly search for a phrase in already selected log entries. It would nice to navigate to first matching record as you type, like some browsers does in "Find in page" function.

Add columns Stage and Rank

These are available if joining sdkmessageprocessingstep on pluginstepid.

    <link-entity name="sdkmessageprocessingstep" from="sdkmessageprocessingstepid" to="pluginstepid" link-type="outer" alias="step" >
      <attribute name="rank" />
      <attribute name="stage" />
    </link-entity>

Show/hide columns easier

You don't always want to see all columns, and you don't want to have to drag their width down to not see them.
So an option to show/hide each column would be nice.

Save/Open filters

Having the possibility to save the selected filter makes it possible to distribute filters to colleagues, for collaboration during plugin trace investigation.

Errors opening against certain orgs

When I open the trace viewer against an on-prem connection that uses current credentials, I get the following errors. When I open the viewer against a different IFD org, I don't get the errors.

This started happening an update or two ago, but I don't recall if it was an update to the toolbox or the plugin when I started getting the errors.

Load
Failed to load entities:
The communication object, System.ServiceModel.Channels.HttpsChannelFactory`1+HttpsRequestChannel[System.ServiceModel.Channels.IRequestChannel], cannot be used for communication because it has been Aborted.

Load
Failed to load messages:
Cannot access a disposed object.

Object name: 'System.ServiceModel.Channels.ServiceChannel'.

  1. (this one happens twice)

Load
Failed to load messages:
Cannot access a disposed object.

Object name: 'System.ServiceModel.Channels.ServiceChannel'.

Load
Failed to load date constraints:
Cannot access a disposed object.

Object name: 'System.ServiceModel.Security.TransportSecurityProtocol'.

Load
Failed to load date constraints:
AggregateQueryRecordLimit exceeded. Cannot perform this operation.

Delete log records

Being able to delete existing log records would really make debugging easier when you cannot see the trees for the forest.

Extract inner exception message and display in grid

If a trace has an exception message, try to extract the actual message and display in a separate column in the grid.
That would make browsing errors a lot easier than parsing large blocks och call stacks etc.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.