Skip to content

Conversation

@ManickaP
Copy link
Member

Unified naming conventions in existing networking EventSources to follow the namespace to which they belong, as well as correspond to the newly added telemetries.

Added suffix ".InternalDiagnostics" for old logging events to prevent them from being accidentally turned on with the new telemetry.

Existing EventSources that haven't been changed:

Contributes to #38754

Rational: the logging is useful for diagnostics, we shouldn't just delete it without proper replacement.
In 6.0 we can go through individual events and clean it. This is compromise that's doable in such short time.

@ghost
Copy link

ghost commented Aug 13, 2020

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

@ManickaP ManickaP requested a review from a team August 13, 2020 15:53
@karelz
Copy link
Member

karelz commented Aug 13, 2020

@geoffkizer @scalablecory are you ok with the suffix 'InternalDiagnostics' as name?

@ghost
Copy link

ghost commented Aug 13, 2020

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@geoffkizer
Copy link
Contributor

This changes the naming to use '.' instead of '-'. Is that the common convention? Is that used elsewhere?

@geoffkizer
Copy link
Contributor

What are the non-internal EventSources called?

I'm a little worried that this is renaming stuff unnecessarily. Some folks (e.g. ASP.NET perf test scripts) undoubtedly have familiarity with the existing names and are going to get tripped up here. Is the value in renaming worth this inconvenience?

@ManickaP
Copy link
Member Author

ManickaP commented Aug 13, 2020

This changes the naming to use '.' instead of '-'. Is that the common convention? Is that used elsewhere?

Also stripping "Microsoft" from the beginning. And yes, it is newer convention, it's used across libraries, e.g.: https://github.com/dotnet/runtime/blob/master/src/libraries/System.Data.OleDb/src/System/Data/Common/DataCommonEventSource.cs#L9, https://github.com/dotnet/runtime/blob/master/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/ParallelETWProvider.cs#L19, also our new telemetry.
Some background info from Noah Falk: #38754 (comment)

What are the non-internal EventSources called?

The same without the ".InternalDiagnostics", e.g.: "System.Net.Http"

I'm a little worried that this is renaming stuff unnecessarily. Some folks (e.g. ASP.NET perf test scripts) undoubtedly have familiarity with the existing names and are going to get tripped up here. Is the value in renaming worth this inconvenience?

This comes as a result of Stephen's complaint, that having two completely different event sources in a single lib is confusing: #38620 (comment)
Initially, the ask was just to delete existing tracing, because customers aren't using it anyway and it's too verbose. But that would leave us completely without ability to diagnose internal issues. I personally have been heavily relying on our tracing to debug issues.

Either way, we should reach consensus before tomorrow.

@geoffkizer
Copy link
Contributor

Ok, I guess I see the value of renaming.

My suggestion would be to name these something completely different than the "official" event sources, so it's extremely clear that these are not intended for public use. Right now they look too official, as if they are just more detailed versions of the standard events.

Something like "InternalOnlyDiagnostics.Net.[Http|Sockets|etc]"

@stephentoub should add his thoughts as well, if he has a chance.

@geoffkizer
Copy link
Contributor

@noahfalk might have thoughts as well.

@ManickaP
Copy link
Member Author

Side note: I'm aware that these changes must be propagated to our diagnostic tests. I'll do that if/when we settle on the final name.

@tommcdon
Copy link
Member

@noahfalk fyi

@danmoseley
Copy link
Member

Please just a single area label at a time 🐱

@noahfalk
Copy link
Member

noahfalk commented Aug 14, 2020

I'm not sure I fully understand the plan. Is the idea that we would change the name now and then in the future delete these EventSources after migrating the events we cared about? I agree with @geoffkizer that I am unclear what value these particular name changes are giving us. The original premise, as I understood it, was that these old EventSources are completely unused except by a small number of internal Microsoft engineers. If external customers aren't aware of the current names nor will they be aware of the new names then I can't tell what benefit we are getting by changing them?

EDIT: Although I don't see the value in these particular name changes I also don't have any concerns other than it appears like unnecessary labor. If you feel the new names will aid you and we aren't going to advertise it to customers then go for it : )

@stephentoub
Copy link
Member

I'm sad we're not able to do the "right thing" for this release. But if we're really out of time to move the few valuable events to the new sources and delete the old cruft, c'est la vie. My concern with not deleting and not renaming is we're going to be advertising the event sources much more than we did in the past (which was basically not at all), which is much more likely to create adoption of any sources that exist, at which point we'll have a harder time removing them in 6.0 (which I would still like us to do). At least having "internal" in the name suggests folks shouldn't depend on it.

Added suffix "InternalDiagnostics" for old logging events to not to accidentally turn them on with the new telemetry.
@ManickaP ManickaP force-pushed the mapichov/38754_old_telemetry branch from a08531f to d33f0ac Compare August 14, 2020 14:53
@geoffkizer
Copy link
Contributor

I'm not sure I fully understand the plan. Is the idea that we would change the name now and then in the future delete these EventSources after migrating the events we cared about?

Yes. And so we want names that convey "please don't rely on this as it's not intended for public use".

@ManickaP ManickaP force-pushed the mapichov/38754_old_telemetry branch from d33f0ac to f795fbc Compare August 14, 2020 19:30
@ManickaP ManickaP force-pushed the mapichov/38754_old_telemetry branch from f795fbc to ab84a9e Compare August 14, 2020 19:32
Copy link
Contributor

@geoffkizer geoffkizer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change looks good, pending final naming approach here.

I'm approving now so @ManickaP is unblocked on Monday, assuming we close on naming by then.

@noahfalk
Copy link
Member

we're going to be advertising the event sources much more than we did in the past (which was basically not at all), which is much more likely to create adoption of any sources that exist

Yeah if we think customers are going to start discovering the existing EventSources despite our goal to not have customers depend on them, then picking a name that makes our intentions clear has some benefit. This might be one of the amusing times where picking a name that is long, awkward, and you feel embarrassed writing it in your code is exactly what we want : ) I think there are many potential names that fit that criteria but one example could be: Private.Obsolete.PlannedForDeletion.System.Net.Http

@danmoseley
Copy link
Member

We have _DONT_USE_InternalThread as prior art in Thread.cs 😸

@geoffkizer
Copy link
Contributor

How about "Private.Internal.System.Net.*"? That seems like it makes things pretty clear without going overboard here.

@geoffkizer
Copy link
Contributor

Or "Private.InternalDiagnostics.System.Net.*", to maintain the "InternalDiagnostics" part from the original proposal.

@karelz
Copy link
Member

karelz commented Aug 15, 2020

I like @geoffkizer's last proposal "Private.InternalDiagnostics.System.Net"

@ManickaP
Copy link
Member Author

I like @geoffkizer's last proposal "Private.InternalDiagnostics.System.Net"

Isn't Private and Internal kind of redundant. What about PrivateDiagnostics.System.Net.* or just InternalDiagnostics.System.Net.*? And we can document that events with "InternalDiagnostic" in a name are subject to change and to not to depend on them.

@geoffkizer
Copy link
Contributor

Isn't Private and Internal kind of redundant.

Yeah, it's a bit redundant, but that's sort of the point. We want to ensure that it's super clear that these are not public, supported events.

And we can document that events with "InternalDiagnostic" in a name are subject to change and to not to depend on them.

We should certainly document this, but we can't assume users will read docs. Most don't :)

@ManickaP ManickaP changed the title Renamed EventSources from "Microsoft-" to follow its namespace. Renamed EventSources "Microsoft-"->"Private.InternalDiagnostics.". Aug 17, 2020
@ManickaP ManickaP merged commit ba7c518 into dotnet:master Aug 17, 2020
@ManickaP ManickaP deleted the mapichov/38754_old_telemetry branch August 17, 2020 11:10
@karelz karelz added this to the 5.0.0 milestone Aug 18, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants