Coder Social home page Coder Social logo

Comments (10)

rappen avatar rappen commented on July 17, 2024

Thanks @ClintWoods - now that I see this, I realize I have noticed the change too.
It definitely seems MS has pushed two changes here:

  1. Fully qualified assembly name is included in the typename column
  2. If the execution throws an exception, nothing traced will be available in the messageblock, it can only be found at the end of the exception block.

Perhaps @JimDaly has any comments to this?

from plugintraceviewer.

JimDaly avatar JimDaly commented on July 17, 2024

That doesn't look right. I'm not so concerned about the TypeName value being more verbose. Should I be?
But the fact that traces aren't being written to the message block seems a serious issue.
I've alerted the dev team to check it out.

from plugintraceviewer.

JimDaly avatar JimDaly commented on July 17, 2024

But as always - Opening up a support case is the best first step for something like this.

from plugintraceviewer.

rappen avatar rappen commented on July 17, 2024

Can I open a support ticket to say "your change broke my tool"? 😉
The underlying issue here of making the typename more verbose is that the filtering possibilities allow for specifying several plugintypes (including * wildcards) separated by comma, and the new plugintypes returned include lots of commas within what used to be the fully qualified class name (the plugin type!) and now includes classname, assembly name, version, culture, token.
So the query performed by PTV is something like:

<fetch>
  <entity name='plugintracelog' >
    <attribute name='correlationid' />
    <attribute name='performanceexecutionstarttime' />
    <attribute name='operationtype' />
    <attribute name='messagename' />
    <attribute name='plugintracelogid' />
    <attribute name='primaryentity' />
    <attribute name='exceptiondetails' />
    <attribute name='messageblock' />
    <attribute name='performanceexecutionduration' />
    <attribute name='createdon' />
    <attribute name='typename' />
    <attribute name='depth' />
    <attribute name='mode' />
    <attribute name='requestid' />
    <filter type='and' >
      <filter type='or' >
        <condition attribute='typename' operator='eq' value='CRMK.xxxx.Synchronization.SetNextSyncTime' />
        <condition attribute='typename' operator='eq' value='CRMK.xxxx.Synchronization' />
        <condition attribute='typename' operator='eq' value='Version=1.0.0.32' />
        <condition attribute='typename' operator='eq' value='Culture=neutral' />
        <condition attribute='typename' operator='eq' value='PublicKeyToken=e7cab53c0186a699' />
      </filter>
    </filter>
    <order attribute='performanceexecutionstarttime' descending='true' />
    <order attribute='correlationid' descending='false' />
    <order attribute='depth' descending='true' />
    <link-entity name='sdkmessageprocessingstep' to='pluginstepid' from='sdkmessageprocessingstepid' link-type='outer' alias='step' >
      <attribute name='name' />
      <attribute name='rank' />
      <attribute name='stage' />
    </link-entity>
  </entity>
</fetch>

...which of course will render 0 hits.

So it would be good to know if this is something temporary that sneaked out, or a deliberate change to stay this way. Might there possibly even be something to read about it somewhere...? (doubting that, since it is a very semi-internal change).

from plugintraceviewer.

ClintWoods avatar ClintWoods commented on July 17, 2024

Yes @JimDaly, the type name isn't even an annoyance IMO. I was just noting that there was a change and then the filter stopped working. This particular client of mine uses the tool extensively, so you can be proud of that @rappen! It's "production". LOL.

Just curious... wouldn't "begins with" work better in the Fetch? Thanks for jumping right into this. We appreciate it.

from plugintraceviewer.

rappen avatar rappen commented on July 17, 2024

@ClintWoods New release with new option to show FQN is now available with version 1.2021.1.1.
Feel free to get back with any comments / requests!
And yes, I am proud! 😉

The resulting fetchxml you see above is due to PTV thinks the user wants to filter by multiple different plugins - the comma in the FQN does that.... I'm now handling it in a better way, I think 😀

from plugintraceviewer.

JimDaly avatar JimDaly commented on July 17, 2024

@rappen Calling support to say 'you broke my tool' is perfectly legitimate to me.
We shouldn't push out changes like this without consideration and announcement. But isn't the additional data more useful?
Seems like you have adapted already?

The more concerning issue to me is that the data in the message block is missing. Devs tell me they found the problem and have Pushed a PR to fix. Still waiting to know when that will take effect. Thanks for letting me know.

from plugintraceviewer.

rappen avatar rappen commented on July 17, 2024

Thanks @JimDaly ! 🙏
Yes, I adapted PTV to handle this longer plugintype and pushed a new version.

from plugintraceviewer.

ClintWoods avatar ClintWoods commented on July 17, 2024

Hey @rappen, I don't think that quite did it. I updated the tool at the client site and got the same results.

image

image

from plugintraceviewer.

rappen avatar rappen commented on July 17, 2024

Hm... Curious about your step by step.
This is how I do: https://www.screencast.com/t/cfixCPceWs
If you make sure the Plugin filter field is empty, and then add filter by plugin, does it still show the FQN in the filter text box?
Note that the text in the filter box should be the "simple" class name (everything before the first comma) followed by an asterisk as wildcard.

Also is this checked or unchecked?
image

from plugintraceviewer.

Related Issues (20)

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.