# mosn/holmes

self-aware Golang profile dumper

Repository: https://github.com/mosn/holmes
Canonical: https://ross.abutalabs.com/products/mosn-holmes
Language: Go
License: Apache-2.0
License Family: permissive
Last push: 2025-04-23T09:42:58+00:00

## Health v2 (maintenance only)
Score: 31/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 18, release rhythm 8, longevity 100
- inputs: {"age_days": 2137, "days_push": 497, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1147, forks 134 (observed 2026-08-28T04:03:45.939442+00:00)

## What it is
Holmes is a self-aware Go library that automatically collects runtime metrics (goroutine count, RSS memory, CPU usage) and dumps pprof-style profiles when anomalies like spikes are detected. It lets developers capture diagnostic profiles of production incidents without being online when they occur.

## Use cases
- automatically dump goroutine profile when goroutine number spikes
- capture cpu profile when cpu load spikes in production
- dump heap profile when memory RSS spikes or OOM risk
- diagnose midnight OOM crashes without being woken up
- change profiling configuration at runtime without restart
- run automatic profiling inside docker or cgroup-limited environments
- send dump events to a custom reporter or monitoring system

## When to choose
- you run Go services in production and need automatic profile capture on resource spikes
- you want post-mortem diagnostics for OOM kills or goroutine leaks without manual intervention
- you need lightweight, embeddable profiling that triggers only on anomalies

## When to avoid
- you need continuous always-on profiling rather than spike-triggered dumps
- your application is not written in Go
- you need full APM/observability with tracing and metrics dashboards rather than profile dumping

## Facets
- artifact type: library
- maturity: active
- function: monitoring, logging, developer-tools
- domain: developer-tools, monitoring, performance, backend
- platform: go, cross-platform
- tags: profiling, go-runtime, auto-diagnostics, goroutine-dump, heap-profile, cpu-profile, oom-debugging, linux, docker

## Member repositories
- mosn/holmes (main) score 31

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:45.939442+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:34:03.305729+00:00, confidence not recorded.
  - readme: https://github.com/mosn/holmes (fetched 2026-08-28T04:03:45.939442+00:00, sha 929b0d989e5d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
