Skip to content

Move Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes to stable#7253

Merged
amadeuszl merged 8 commits into
dotnet:mainfrom
amadeuszl:users/alechniak/move-k8s-package-to-stable
May 27, 2026
Merged

Move Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes to stable#7253
amadeuszl merged 8 commits into
dotnet:mainfrom
amadeuszl:users/alechniak/move-k8s-package-to-stable

Conversation

@amadeuszl

@amadeuszl amadeuszl commented Feb 2, 2026

Copy link
Copy Markdown
Contributor
Microsoft Reviewers: Open in CodeFlow

@amadeuszl

Copy link
Copy Markdown
Contributor Author

@evgenyfedorov2 We probably should drop reading requests in Linux due to change in formula for weights from #7239.
Here's proposal.

internal sealed class KubernetesResourceQuotaProvider : ResourceQuotaProvider
{
 public override ResourceQuota GetResourceQuota()
 {
     ResourceQuota quota = new()
     {
         BaselineCpuInCores = ConvertMillicoreToCpuUnit(_kubernetesMetadata.RequestsCpu),
         MaxCpuInCores = ConvertMillicoreToCpuUnit(_kubernetesMetadata.LimitsCpu),
         BaselineMemoryInBytes = _kubernetesMetadata.RequestsMemory,
         MaxMemoryInBytes = _kubernetesMetadata.LimitsMemory,
     };

     // On Linux, CPU requests are determined with weights, where eg. 1 CPUs' weight is equal to 1.02539062
     // If we decide to read from K8s metadata it will have different results.
     if (OperatingSystem.IsLinux())
     {
         if (_useLinuxCalculationV2)
         {
             quota.BaselineCpuInCores = _parser.GetCgroupRequestCpuV2();
         }
         else
         {
             quota.BaselineCpuInCores = _parser.GetCgroupRequestCpu();
         }
     }

     if (quota.BaselineCpuInCores <= 0.0)
     {
         quota.BaselineCpuInCores = quota.MaxCpuInCores;
     }

     if (quota.BaselineMemoryInBytes == 0)
     {
         quota.BaselineMemoryInBytes = quota.MaxMemoryInBytes;
     }

     return quota;
 }
}

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR transitions the Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes library from experimental/dev stage to stable by removing experimental attributes and increasing quality thresholds. However, there is a critical issue with an invalid Stage value that must be corrected.

Changes:

  • Removes experimental attribute injection and dev stage diagnostic ID (EXTEXP0016)
  • Changes Stage from "dev" to "stable" (invalid - should be "normal")
  • Increases MinMutationScore requirement from 90 to 95

amadeuszl and others added 3 commits February 2, 2026 12:36
…ing.Kubernetes/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes.csproj

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@amadeuszl amadeuszl requested a review from a team as a code owner February 4, 2026 13:47
@amadeuszl

Copy link
Copy Markdown
Contributor Author

@evgenyfedorov2 We probably should drop reading requests in Linux due to change in formula for weights from #7239.

Actually according to doc, we should measure it against pod specs, so we're good.

@dotnet-comment-bot

Copy link
Copy Markdown
Collaborator

‼️ Found issues ‼️

Project Coverage Type Expected Actual
Microsoft.Extensions.Diagnostics.Testing Line 99 98.65 🔻
Microsoft.Extensions.Telemetry Line 93 91.95 🔻
Microsoft.Extensions.AI Line 89 88.4 🔻
Microsoft.Extensions.AI Branch 89 88.49 🔻
Microsoft.Extensions.AI.OpenAI Line 75 62.62 🔻
Microsoft.Extensions.AI.OpenAI Branch 75 49.63 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Line 75 4.46 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Branch 75 0 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Line 99 96.03 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Branch 99 94.39 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes Line 99 97.73 🔻
Microsoft.Extensions.ServiceDiscovery.Dns Line 75 69.93 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Line 75 42.11 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Branch 75 42.86 🔻
Microsoft.Extensions.ServiceDiscovery Line 75 67.96 🔻
Microsoft.Extensions.ServiceDiscovery Branch 75 71.43 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Line 75 73.85 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Branch 75 70 🔻
Microsoft.Extensions.VectorData.Abstractions Line 75 37.39 🔻
Microsoft.Extensions.VectorData.Abstractions Branch 75 22.73 🔻

🎉 Good job! The coverage increased 🎉
Update MinCodeCoverage in the project files.

Project Expected Actual
Microsoft.Gen.BuildMetadata 97 100
Microsoft.Gen.MetadataExtractor 57 73
Microsoft.Gen.MetricsReports 67 69
Microsoft.Extensions.AI.Abstractions 82 85
Microsoft.Extensions.AI.Evaluation.NLP 0 78
Microsoft.Extensions.Caching.Hybrid 82 84
Microsoft.Extensions.DataIngestion 75 89
Microsoft.Extensions.DataIngestion.Markdig 75 90
Microsoft.Extensions.Http.Resilience 97 100

Full code coverage report: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1437054&view=codecoverage-tab

@dotnet-comment-bot

Copy link
Copy Markdown
Collaborator

‼️ Found issues ‼️

Project Coverage Type Expected Actual
Microsoft.Extensions.Diagnostics.Testing Line 99 98.65 🔻
Microsoft.Extensions.Telemetry Line 93 91.95 🔻
Microsoft.Extensions.AI Line 89 88.59 🔻
Microsoft.Extensions.AI Branch 89 88.49 🔻
Microsoft.Extensions.AI.OpenAI Line 75 62.62 🔻
Microsoft.Extensions.AI.OpenAI Branch 75 49.63 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Line 75 4.46 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Branch 75 0 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Line 99 96.03 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Branch 99 94.39 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes Line 99 97.73 🔻
Microsoft.Extensions.ServiceDiscovery.Dns Line 75 68.32 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Line 75 42.11 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Branch 75 42.86 🔻
Microsoft.Extensions.ServiceDiscovery Line 75 67.81 🔻
Microsoft.Extensions.ServiceDiscovery Branch 75 71.43 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Line 75 73.85 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Branch 75 70 🔻
Microsoft.Extensions.VectorData.Abstractions Line 75 37.39 🔻
Microsoft.Extensions.VectorData.Abstractions Branch 75 22.73 🔻

🎉 Good job! The coverage increased 🎉
Update MinCodeCoverage in the project files.

Project Expected Actual
Microsoft.Gen.BuildMetadata 97 100
Microsoft.Gen.MetadataExtractor 57 73
Microsoft.Gen.MetricsReports 67 69
Microsoft.Extensions.AI.Abstractions 82 85
Microsoft.Extensions.AI.Evaluation.NLP 0 78
Microsoft.Extensions.Caching.Hybrid 82 85
Microsoft.Extensions.DataIngestion 75 89
Microsoft.Extensions.DataIngestion.Markdig 75 90
Microsoft.Extensions.Http.Resilience 97 100

Full code coverage report: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1437154&view=codecoverage-tab

@amadeuszl amadeuszl merged commit 950106e into dotnet:main May 27, 2026
6 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 27, 2026
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.

5 participants