# uber-common/jvm-profiler

JVM Profiler Sending Metrics to Kafka, Console Output or Custom Reporter

Repository: https://github.com/uber-common/jvm-profiler
Canonical: https://ross.abutalabs.com/products/jvm-profiler
Language: Java
License: NOASSERTION
License Family: other
Topics: java, agent, profiler, performance
Last push: 2026-05-21T02:04:42+00:00

## Health v2 (maintenance only)
Score: 70/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 83, release rhythm 35, longevity 100
- inputs: {"age_days": 3162, "days_push": 105, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1804, forks 341 (observed 2026-08-28T04:05:38.319917+00:00)

## What it is
A Java Agent library from Uber that collects CPU, memory, IO metrics and stacktraces from JVM processes in a distributed way, with reporters for Kafka, console, file, Redis, and InfluxDB. It also traces arbitrary Java methods and arguments without code changes, originally built for profiling Spark applications across many machines.

## Use cases
- profile CPU and memory metrics of Spark executors across a cluster
- trace HDFS name node call latency for Spark applications
- identify hot files read or written by Spark jobs
- attach a javaagent to any JVM process to collect metrics
- ship JVM metrics to Kafka for downstream analysis
- trace method durations and arguments without modifying user code

## When to choose
- you need distributed metrics collection for dozens or hundreds of JVM processes in one application
- you want method-level tracing of JVM code with zero code changes
- you run Spark or Hadoop workloads and need to correlate metrics across executors

## When to avoid
- you need a full interactive profiler UI with flame graphs
- you profile non-JVM languages or native code
- you need continuous sampling-style CPU profiling rather than interval metrics

## Facets
- artifact type: library
- maturity: maintenance
- function: monitoring, tracing, benchmarking
- domain: performance, developer-tools, big-data
- platform: jvm, cross-platform
- tags: java-agent, spark, hadoop, kafka-reporter, jvm-metrics, method-tracing

## Member repositories
- uber-common/jvm-profiler (main) score 70

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:38.319917+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-30T03:21:50.542465+00:00, confidence not recorded.
  - readme: https://github.com/uber-common/jvm-profiler (fetched 2026-08-28T04:05:38.319917+00:00, sha 15404a3762da)
- Data as of 2026-08-30T08:39:29.467469+00:00.
