microsoftgraph / microsoftgraph/msgraph-sdk-dotnet
Out of the box reliability telemetry
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 789
- Forks
- 264
- Avg merge
- 15h 17m
- Merged PRs (30d)
- 3
Description
Is your feature request related to a problem? Please describe.
Developers and their customers do not have a way to understand behavior as seen by the client, particularly for timeouts, latency, and other issues. We need a way to see this across all deployments of their application. This can help developers and customers determine the health of infrastructure between the application and Microsoft Graph frontends and distinguish between client issues and problems with API services themselves.
Describe the solution you'd like
- Ability to opt-in to sharing reliability information (request status code, request id, total time between request and the first response). This must not include identity information such as user or application identifiers or client ip addresses.
- Ability to configure the destination of this data
- Ability to control the behavior at runtime (i.e. disable it)
- The capability should use a standard interface and format for logging and telemetry transport rather than a specialized implementation.
- Everything about the solution must comply with any policies or regulations regarding data and privacy that apply to the environment running the graph SDK.
Consider using the same approach as the MSAL library which is often used with Microsoft Graph SDK:
- MSAL feature: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/3511
- MSAL Code: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/tree/main/src/client/Microsoft.Identity.Client/TelemetryCore
- MSAL Docs (still pending): https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/3541
Describe alternatives you've considered
Having developers install additional monitoring tools that log and aggregate Microsoft Graph performance information is certainly possible but requires significant effort from customers.
Additional context
Note that if each application is left to define its own reliability tracing coverage will be (and is already!) very uneven. Each application must make the effort to do this raising the cost
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked MSAL TelemetryCore implementation and its associated feature and documentation issues. Compare that approach with the requested opt-in controls, configurable destination, runtime disablement, standard transport, and privacy constraints. Done means these requirements have an agreed implementation scope for the .NET Graph SDK.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- observability
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100