alibaba/arthas

Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas

13
Hotness score
68
Reliability score
37,438
Stars
almost 8 years
Age
0
Published reviews
0
Questions

Scores

Hotness and reliability

The two headline scores, measured daily, with 30, 90, and 180 day views.

Hotness score

Jul 19, 2026

Current13

Previous18

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Hotness formula

40% Hot today + 40% Hot this week + 20% Breakout.

  • 40% Hot today: 21
  • 40% Hot this week: 18
  • 20% Breakout: 12
  • Stars gained: 1d: 2
  • Stars gained: 7d: 7
  • Stars gained: 14d: 22
  • Stars gained: 30d: 66
  • Stars gained: 90d: 252

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Jul 19, 2026

Current68

Previous69

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Reliability formula

30% Continuity + 30% Closure + 20% Shipping + 10% Liveness + 10% Support burden.

  • 30% Continuity: 64
  • 30% Closure: 64
  • 20% Shipping: 78
  • 10% Liveness: 100
  • 10% Support burden: 79

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

Reliability breakdown

What drives the reliability score

Component scores measured daily from GitHub activity (2026-07-19).

Continuity30% of headline64

Activity on 45 of 90 tracked days in the last 90 and 17 of 30 in the last 30.

Closure30% of headline64

Merged 35 of 45 PRs opened and closed 10 of 20 issues opened over the last 90 tracked days — PR flow carries 55% of this component, issue flow 45%.

Shipping20% of headline78

9 releases in the last 180 days, 6 in the last 90 and 1 in the last 30 — a steady cadence scores highest.

Liveness10% of headline100

Last push 0 days ago — freshness decays as pushes age (roughly halves every 83 days without a push).

Support burden10% of headline79

390 open issues against 37,438 stars — about 10 open issues per 1,000 stars. Lighter backlogs score higher.

Adoption confidence99

Modeled — how confidently teams are adopting this repo. Stargazers

Maintenance quality73

Modeled from PR/issue responsiveness and upkeep signals. Activity pulse

Risk score21

Modeled — lower is better; adoption and continuity risk. Repository

Stays active (30d)64%

Modeled chance the repo stays active over 30 days. Activity pulse

Stays active (90d)77%

Modeled chance the repo stays active over 90 days. Activity pulse

Release rhythm (180d)78

Regularity of releases over the last 180 days. Releases

Maintainer bus risk (90d)31%

Modeled — lower is better; concentration of commits in few maintainers. Contributors graph

Topics

Explore related topics

Jump into the topic listings this repository belongs to.

Measured history

Project metrics

Weekly GitHub totals with 30, 90, and 180 day views.

Issues opened

Jul 19, 2026

Current2

Previous3

Weekly total

320
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Jul 19, 2026

Current2

Previous0

Weekly total

420
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

179 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Jul 19, 2026

Current3

Previous3

Weekly total

630
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Jul 19, 2026

Current7

Previous2

Weekly total

840
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

179 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Jul 19, 2026

Current7

Previous0

Weekly total

740
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue

Issue close ratio (daily)

Jul 15, 2026

Current0.00

Previous0.00

Daily ratio — a gap means nothing was opened that day

How this works: each day's value is issues closed that day ÷ issues opened that day. Days when nothing was opened render as gaps — never a rolling average or a made-up zero. Values above 1 mean the project closed more issues than arrived that day.

2.001.000.00
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

31 observed daily rows. Missing days are not fabricated.

Per-day formula: issues closed that day ÷ issues opened that day; blank when nothing was opened (a gap, not a zero).

DateIssues openedIssues closedStored score

Pull request close ratio (daily)

Jul 18, 2026

Current2.00

Previous4.00

Daily ratio — a gap means nothing was opened that day

How this works: each day's value is pull requests closed that day ÷ pull requests opened that day. Days when nothing was opened render as gaps — never a rolling average or a made-up zero. Values above 1 mean the project closed more pull requests than arrived that day.

4.002.000.00
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

45 observed daily rows. Missing days are not fabricated.

Per-day formula: pull requests closed that day ÷ pull requests opened that day; blank when nothing was opened (a gap, not a zero).

DatePRs openedPRs closedStored score

Releases

Jul 19, 2026

Current0

Previous0

Weekly total

210
Full metrics details

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue

Project Overview

Arthas is an interactive Java diagnostic tool that you run against a live JVM process to inspect behavior in real time. You can attach to a running service, execute diagnostic commands, and detach without rebuilding or redeploying.

You use it when logs and static metrics are not enough: high CPU spikes, slow endpoints, classloader conflicts, unexpected exceptions, or method-level latency that appears only under real traffic. Arthas is focused on runtime observability and troubleshooting, not long-term metric storage or dashboarding.

You can see ongoing maintenance activity directly in the GitHub repository, and you can use the official documentation at arthas.aliyun.com for command references and operational patterns.

Key Challenges Addressed

You often need answers from a JVM that is already in production-like state, where restarting with extra flags is risky or too slow. Arthas targets that constraint with live attach and command-based inspection.

  • Runtime visibility without restart: you can inspect threads, memory, class metadata, and method execution while the process stays online.

  • Method-level tracing on demand: you can trace invocation paths and timings for selected methods instead of adding temporary logging and redeploying.

  • Bytecode and class inspection in place: you can decompile loaded classes and verify what is actually running in memory, which is critical when packaging or classpath drift appears.

  • Incident-time diagnostics: you can run short, focused checks during outages, then detach to minimize overhead.

Getting Started

You can install Arthas from the official quick-start path and run arthas-boot.jar against a target JVM process. A first useful workflow is to attach, inspect, and trace one hot path.

# Start Arthas and select a JVM process interactively
java -jar arthas-boot.jar

# Inside Arthas shell
dashboard
thread -n 5
sc -d com.yourteam.orders.OrderService
trace com.yourteam.orders.OrderService placeOrder

Sharp edges you should expect immediately:

  • You need JVM/process access permissions on the host.

  • You should limit command scope (class-pattern, method-pattern, condition expressions) to avoid excessive runtime overhead.

  • You should rehearse attach/detach and command safety in staging before incident use.

Features and Use Cases

Arthas is strongest when you need direct runtime answers fast.

  • dashboard, thread, and memory commands: you can identify hot threads, blocked states, and system pressure quickly.

  • trace, watch, and tt (time tunnel): you can inspect method latency, arguments, return values, and execution paths for targeted code paths.

  • jad and classloader inspection: you can confirm loaded bytecode and diagnose class shadowing or version conflicts.

  • profiler integration paths: you can capture profiling data when command-level checks are not enough.

  • Tunnel and remote operation modes: you can run diagnostics for distributed deployments where direct shell access is constrained.

Typical scenarios for your team include debugging intermittent latency in one service method, validating which class version is loaded after rollout, and triaging CPU saturation caused by lock contention or expensive reflection paths.

Ecosystem and Dependencies

Arthas integrates with standard JVM operational tooling rather than replacing your full observability stack. You can pair it with log aggregation and metrics systems for incident workflows where you first detect an anomaly, then attach with Arthas for root-cause detail.

At runtime, you rely on JVM attach/instrumentation capabilities and command execution inside the target process. You should align Arthas usage with your service ownership model, access controls, and incident playbooks so diagnostics stay auditable and safe.

If you evaluate adjacent tools, you will likely compare Java Mission Control, VisualVM, async-profiler, and BTrace.

Architectural Overview

Arthas follows a live-attach architecture:

  • Bootstrap/attach entrypoint: you launch arthas-boot.jar and connect to a target JVM.

  • Agent inside target JVM: command handlers run in-process so you can inspect classes, threads, and method execution directly.

  • Command shell and protocol layer: you execute interactive diagnostics and receive structured output.

  • Optional remote/tunnel mode: you can operate across network boundaries for controlled remote diagnostics.

This design matters because you get low-latency diagnostics during incidents without redeploy cycles. You trade some operational complexity for that speed: your team needs disciplined command scopes, access controls, and runbooks to keep overhead predictable.

Pros and Cons

  • Pro: you get deep JVM runtime introspection without restart.

  • Pro: you can narrow diagnostics to exact classes/methods during live incidents.

  • Pro: command coverage is broad enough for most Java troubleshooting workflows.

  • Con: safe use requires practiced operators and explicit guardrails.

  • Con: interactive shell workflows can be harder to standardize than fully automated profiling pipelines.

  • Con: in-process diagnostics can add overhead if command scope is too wide or left running too long.

Comparison and Alternatives

Measured 90-day trends for this project and its alternatives.

GitHub stars

Weekly star gains

3,2431,6210
Full metrics details

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

Arthas

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

82 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Issues opened

Weekly total

530
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Arthas

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Weekly total

630
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Arthas

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

179 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

38 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

38 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Weekly total

840
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Arthas

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Weekly total

1470
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Arthas

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

179 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

38 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

38 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Weekly total

1260
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Arthas

GitHub API observation. Historical values render only when the source provides a real observation for that day.

179 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub API observation. Historical values render only when the source provides a real observation for that day.

38 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed pull request ratio

Weekly average

100500
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Arthas

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

82 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed issues ratio

Weekly average

100500
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Arthas

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

82 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Releases

Weekly total

210
Full metrics details

GitHub release published_at events bucketed by UTC day; drafts are excluded.

Arthas

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
Java Mission Control

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
VisualVM

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
async-profiler

GitHub release published_at events bucketed by UTC day; drafts are excluded.

82 observed daily rows. Missing days are not fabricated.

DateValue
BTrace

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue

Hotness score

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

Arthas

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
Java Mission Control

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
VisualVM

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
async-profiler

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

82 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
BTrace

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

Arthas

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
Java Mission Control

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
VisualVM

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
async-profiler

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

82 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
BTrace

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

You can evaluate Arthas against several mature and focused options.

  • Java Mission Control: strong JVM telemetry and profiling workflows with a mature ecosystem around JVM performance analysis.

  • VisualVM: GUI-first profiling and monitoring that is easy to start with for local and remote JVM inspection.

  • async-profiler: low-overhead sampling profiler focused on CPU and allocation profiling depth.

  • BTrace: tracing via dynamic instrumentation scripts for targeted runtime probes.

Project Repo Adoption confidence (~6mo) PRs merged (~6mo) Star growth (~6mo)
Arthas https://github.com/alibaba/arthas 44.06 50 1369
Java Mission Control https://github.com/openjdk/jmc 5.47 0 94
VisualVM https://github.com/oracle/visualvm 25.78 0 275
async-profiler https://github.com/async-profiler/async-profiler 63.50 220 1000
BTrace https://github.com/btraceio/btrace 43.18 54 154

Java Mission Control is the best overall alternative from this set. You get strong documentation depth, long-running JVM performance workflows, and mature operational patterns for repeatable analysis.

Conclusion

Arthas is best when you need precise, live JVM diagnostics during real incidents and you cannot wait for redeploy-based instrumentation. You gain fast root-cause depth, but your team needs disciplined runtime usage, scoped commands, and practiced runbooks to control overhead. You can start from the official repository, use the documentation, and track maintenance and issue workflows through the community discussions on GitHub.

Join the conversation

Reviews · Questions · Posts

Share what you know about arthas — write a review from your real experience, ask an implementation question, or publish a post about how you use it.

Share your experience

Write or update your review

Explain what worked, what broke down, and what another team should know before adopting arthas.

Write your review now — it saves locally and publishes automatically after you sign in.

Rating
Positive attributes
Negative attributes

Project Q&A

Questions and answers

Browse implementation threads tied directly to alibaba/arthas. Each question links through to the full answer page.

Q&A No threads yet

Be the first to ask how teams run arthas in production. Every question you post becomes a durable, searchable answer page other developers can find.

Ask the first question

Related posts

Posts tagged with the same topics

These posts come from the same topic surface as this repo, so readers can move from project evaluation into practical writeups and migration notes without leaving context.

Posts No topic-linked posts yet

Share how your team uses arthas — a migration note, an architecture writeup, or a comparison. Your post reaches everyone browsing these same topics.

Write the first post
Get a weekly email with the hottest new projects in the Language Compilers and Jvm world.
No Spam. Unsubscribe easily at any time.

Copyright 2018-2026 Awesome Open Source.  All rights reserved.