Skip to content

Add Kubernetes Resource Monitoring documentation#54134

Open
amadeuszl wants to merge 9 commits into
dotnet:mainfrom
amadeuszl:alechniak/k8s-rm-docs-update
Open

Add Kubernetes Resource Monitoring documentation#54134
amadeuszl wants to merge 9 commits into
dotnet:mainfrom
amadeuszl:alechniak/k8s-rm-docs-update

Conversation

@amadeuszl

@amadeuszl amadeuszl commented Jun 3, 2026

Copy link
Copy Markdown

Copilot AI review requested due to automatic review settings June 3, 2026 10:10
@amadeuszl amadeuszl requested review from a team and tommcdon as code owners June 3, 2026 10:10
@dotnetrepoman dotnetrepoman Bot added this to the June 2026 milestone Jun 3, 2026

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 adds documentation and a runnable snippet that explains how to use Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes to calculate resource monitoring metrics based on Kubernetes Downward API-provided limits/requests.

Changes:

  • Added a new “Kubernetes resource monitoring” section to the existing resource monitoring article, including Downward API configuration guidance.
  • Added a new runnable snippet project and minimal host-based sample that registers Kubernetes resource monitoring.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 12 comments.

File Description
docs/core/diagnostics/diagnostic-resource-monitoring.md Adds a Kubernetes-focused resource monitoring section, including configuration guidance, metric list, and example output.
docs/core/diagnostics/snippets/resource-monitoring-kubernetes/Program.cs Adds a minimal host-based snippet showing AddKubernetesResourceMonitoring("MY_APP_").
docs/core/diagnostics/snippets/resource-monitoring-kubernetes/resource-monitoring-kubernetes.csproj Adds a new snippet project referencing the Kubernetes resource monitoring package and hosting/logging dependencies.

Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md Outdated
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md
Comment thread docs/core/diagnostics/diagnostic-resource-monitoring.md Outdated
amadeuszl and others added 4 commits June 3, 2026 12:35
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment thread docs/core/diagnostics/built-in-metrics-diagnostics.md
@amadeuszl

Copy link
Copy Markdown
Author

@tommcdon can you please review?

@amadeuszl

Copy link
Copy Markdown
Author

@dotnet/docs can you please review?

@BillWagner BillWagner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hi @amadeuszl

I added a few comments, and then this is ready to merge.


<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is there a reason for .NET 8 instead of .NET 10?

@@ -0,0 +1,13 @@
// <setup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit, but because you include the entire file, you don't need the snippet tags:

Suggested change
// <setup>


In your application code, call <xref:Microsoft.Extensions.DependencyInjection.KubernetesResourceQuotaServiceCollectionExtensions.AddKubernetesResourceMonitoring*> with the environment variable prefix that matches your Kubernetes manifest:

:::code source="snippets/resource-monitoring-kubernetes/Program.cs" id="setup":::

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If you make the changes I suggested in program.cs, you can remove the id here:

Suggested change
:::code source="snippets/resource-monitoring-kubernetes/Program.cs" id="setup":::
:::code source="snippets/resource-monitoring-kubernetes/Program.cs":::

.Build();

await app.RunAsync();
// </setup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

to match:

Suggested change
// </setup>


When you run your application inside a Kubernetes pod with the environment variables configured, the metrics produce values such as:

```

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Add the language tag for proper formatting:

Suggested change
```
```console

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants