Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not ignore messages we've been explicitly asked to log #76843

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

CyrusNajmabadi
Copy link
Member

No description provided.

@CyrusNajmabadi CyrusNajmabadi requested a review from a team as a code owner January 21, 2025 23:59
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead labels Jan 21, 2025
@jasonmalinowski
Copy link
Member

@CyrusNajmabadi @arunchndr How much testing have we done for this change? IIRC we have some places we log ETW events via the logging thing that are very chatty, and this would be a huge flood to the telemetry systems. The design here was places log, and we might produce different events in different places that are appropriate for different systems.

That all said, if we want to say only use the logging methods if it's appropriate for VS Telemetry and delete a bunch of stuff here, I'm OK with that. But I imagine merging this as is might be problematic unless you've tested more.

@CyrusNajmabadi
Copy link
Member Author

This method currently serves no purpose. There is no way to configure it. If you report calling the, it is simply sent to the ether. Despite the clients explicitly adding this telemetry exactly to get this data.

and this would be a huge flood to the telemetry systems

We have asked telemetry to give us a system to log that isn't problematic. At this point, we need to be able to answer these questions. And if that's an issue for this subsystem, it has to be improved.

@ToddGrun
Copy link
Contributor

and this would be a huge flood to the telemetry systems

My understanding is the same as Jason's, that telemetry has this filter to avoid flooding the telemetry system. Other loggers can handle that increased payload.

@CyrusNajmabadi
Copy link
Member Author

So we literally have an API, that if you call, nothing happens. And that's by design?

@ToddGrun
Copy link
Contributor

And that's by design?

I found (and still find) the design of the logging system surprisingly complicated. In the end, telemetry takes part in the logging system, but it also exposes itself to callers that just wish to do telemetry through the TelemetryLogging class (not TelemetryLogger). If telemetry is invoked through TelemetryLogger, the intent is that users fall into a pit of success, whereas changing telemetry through ILogger seemed too scary when I looked at this area when I first joined the team.

@CyrusNajmabadi
Copy link
Member Author

the intent is that users fall into a pit of success

That this API swallows the messages unilaterally, and behaves that way by default, with default args, with no docs saying anything like that, is opposite of pit of success to me :-)

@ToddGrun
Copy link
Contributor

this API

By this API, you mean TelemetryLogger's ILogger implementation (not TelemetryLogging), right? Yes, I agree, the ILogger API is intended for general logging, and callers will not get telemetry through it unless they send in a specially crafted message indicating they wish to.

@CyrusNajmabadi
Copy link
Member Author

and callers will not get telemetry

No. I mean this API literally swallows all these messages, regardless of telemetry or not. It literally just says: the level was lower than this fixed (non configurable) value? Dropped

If you call this API with default values, it does nothing. That's broken.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants