analyze-metric-dotnet

Interpret .NET CLR runtime metrics on Grafana dashboards for Prometheus.

12|2|Updated May 4, 2020
One-click install
npx skills add https://github.com/hoangnh2412/jarvis --skill analyze-metric-dotnet
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: analyze-metric-dotnet
Source: https://github.com/hoangnh2412/jarvis/tree/main/.opencode/skills/analyze-metric-dotnet
Command: npx skills add https://github.com/hoangnh2412/jarvis --skill analyze-metric-dotnet

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Developers and SREs often struggle to interpret .NET CLR runtime metrics (GC, JIT, thread pool, exceptions) on Grafana dashboards, frequently confusing them with HTTP request metrics or custom application metrics, leading to incorrect root cause analysis during incidents.

Core Features & Use Cases

  • Runtime Metric Interpretation: Provides clear explanations for all panels on the Dotnet Runtime Metrics dashboard, covering both built-in .NET 9+ dotnet_* metrics and OpenTelemetry.Runtime process_runtime_dotnet_* metrics.
  • Incident Troubleshooting: Offers a structured workflow to diagnose empty Grafana panels, missing metric series, and common configuration issues with Prometheus scraping or .NET runtime instrumentation.
  • Use Case: When you see a GC pause time spike correlated with increased P99 latency after a deploy, this skill helps you quickly determine if the spike is expected JIT warm-up activity or a sign of memory pressure requiring further investigation.

Quick Start

Use the analyze-metric-dotnet skill to explain the Gen2 GC collection spike and rising committed memory trend on your Dotnet Runtime Metrics dashboard for the payment-service job over the last 2 hours.

Frequently Asked Questions about analyze-metric-dotnet

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I interpret .NET CLR runtime metrics on a Grafana dashboard?

To interpret .NET CLR runtime metrics on Grafana, you analyze dotnet_* or process_runtime_dotnet_* series to understand GC, JIT, thread pool, and exception behavior, distinguishing them from HTTP or custom application metrics for accurate root cause analysis.

Why are my Prometheus dotnet runtime metric panels empty in Grafana?

Empty Prometheus dotnet runtime metric panels in Grafana usually stem from configuration issues with Prometheus scraping or .NET runtime instrumentation. You need to verify your instrumentation setup and scrape configuration to ensure the metric series are being exported correctly.

How can I tell if a .NET GC pause time spike is causing application latency?

To determine if a .NET GC pause time spike is causing application latency, correlate Gen2 GC collection metrics with P99 latency trends. A spike might be expected JIT warm-up or a sign of memory pressure requiring further investigation.

Does this .NET runtime metric analysis support OpenTelemetry process_runtime_dotnet_* metrics?

Yes, .NET runtime metric analysis supports OpenTelemetry process_runtime_dotnet_* metrics alongside built-in .NET 9+ dotnet_* metrics, providing context-aware interpretations for GC, JIT, thread pool, exception, and assembly metric series on Grafana dashboards.

What is the difference between .NET CLR runtime metrics and HTTP request metrics in Prometheus?

.NET CLR runtime metrics in Prometheus reflect internal runtime behavior like GC, JIT, thread pool, and assembly loading, whereas HTTP request metrics track external endpoint traffic and response times. Confusing them leads to incorrect root cause analysis during incidents.

How do I troubleshoot thread pool starvation using dotnet runtime metrics?

To troubleshoot thread pool starvation using dotnet runtime metrics, monitor thread pool queue length and available worker thread counts on your Grafana dashboard. Correlating these CLR behavior patterns with increased CPU usage helps identify if thread exhaustion is impacting application performance.