Heartbeat 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Heartbeat --version 0.1.0                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Heartbeat --version 0.1.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Heartbeat&version=0.1.0                
nuke :add-package Heartbeat --version 0.1.0                

Heartbeat

Diagnostics utility to analyze memory dumps of a .NET application

Installation

NuGet Badge

dotnet tool install --global Heartbeat

Summary

The purpose of the Heartbeat is finding runtime issues of .NET application in the production environment such as spontaneous high memory / CPU usage, high latency and so on. Usually such situations occur unpredictable and after that there is not enough information to find the cause. The detailed information is required to find the cause, but it is impossible to collect detailed information about running processes all the time, collecting such data consumes huge resources. The collected data needs to be interpreted, it is long and not always straightforward process that could be automated.

Overview

The system consists of three major parts: Monitor, Data Collector and Issue Finder:

Monitor example:

  • CPU usage;
  • RAM usage;
  • Performance counter;
  • I/O latency;
  • Events from application code;
  • Timers from application code.

Data Collector example:

  • Full Memory Dump;
  • Record ETW events;
  • Record network events;
  • Attach .NET invasive debugger and collect .NET specific information (ClrMd).

Issue Finder example:

  • Find a place with huge memory allocation;
  • Find hot stack traces;
  • Find hung System.Threading.Tasks.Task objects;
  • Find System.Threading.Tasks.Task state.

Usage

  Heartbeat [options]

Options:
  --dump <dump> (REQUIRED)  Path to a dump file
  --dac-path <dac-path>     A full path to the matching DAC dll for this
                            process.
  --ignore-dac-mismatch     Ignore mismatches between DAC versions
  --version                 Show version information
  -?, -h, --help            Show help and usage information
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.8.1 122 2/5/2024
0.8.1-rc.36 68 2/5/2024
0.8.0 72 2/5/2024
0.8.0-rc.34 56 2/5/2024
0.7.0 75 2/1/2024
0.7.0-rc.32 62 2/5/2024
0.7.0-rc.30 55 2/1/2024
0.6.0 74 1/30/2024
0.6.0-rc.28 55 2/1/2024
0.6.0-rc.26 55 1/31/2024
0.6.0-rc.24 59 1/30/2024
0.6.0-rc.22 55 1/30/2024
0.6.0-rc.20 51 1/30/2024
0.5.0 72 1/29/2024
0.5.0-rc.18 58 1/29/2024
0.5.0-rc.16 53 1/29/2024
0.4.0 74 1/27/2024
0.4.0-rc.14 54 1/27/2024
0.3.0 76 1/25/2024
0.3.0-rc.12 54 1/25/2024
0.2.0 86 1/20/2024
0.2.0-rc.10 55 1/20/2024
0.1.0 80 1/18/2024
0.1.0-rc.8 53 1/18/2024