Skip to content

Latest commit

 

History

History
203 lines (144 loc) · 13.9 KB

File metadata and controls

203 lines (144 loc) · 13.9 KB

Glowroot

Latest release Build License Java
GitHub stars GitHub forks Contributors Discussions

Easy to use, very low overhead, open source Java APM.

  • (Very) easy to use — drop in a -javaagent, open the UI, see traces and profiles
  • Very (very) low overhead — tuned with extensive microbenchmarking
  • Embedded or central — local H2 collector out of the box, or scale out with a central collector

Website: glowroot.org · Features: glowroot.org/features · Releases: GitHub Releases · UI preview: archived demo snapshot (the live demo.glowroot.org host is currently unreachable — see #1102)

Features

  • Trace capture for slow requests and errors
  • Continuous profiling (with filtering) and flame graphs
  • Response time breakdown and percentile charts
  • SQL and service-call capture with aggregation
  • MBean attribute capture and charts
  • Configurable alerting and historical rollups
  • Full support for async requests that span multiple threads
  • Responsive UI (including mobile)
  • Optional central collector

See the full list and instrumentation coverage on the features and instrumentation pages.

Requirements

  • Java 8+ for the agent
  • Java 17+ for glowroot-central

Quick start (embedded)

  1. Download and unzip the latest stable agent distribution from GitHub Releases (glowroot-*-dist.zip)
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args — before -jar if you use an executable JAR (where are my application server's JVM args?)
  3. Ensure the user that runs the JVM can write to the glowroot folder
  4. Start your application
  5. Open http://localhost:4000 (wait for a UI listening on … line in the agent log)

Post-install details: Agent Installation (Embedded Collector).

Central collector? Start with Agent Installation (for Central Collector) (agents on app JVMs, glowroot-central + Cassandra on a monitor host).

Deployment

Mode What you run Typical use
Embedded (default) -javaagent + local H2 + UI in the same JVM as your app Single app, dev, small installs
Central -javaagent on each app JVM → glowroot-central (+ Cassandra) on a monitor host Many agents, shared UI, longer retention

Central needs its own install — see Agent Installation (for Central Collector) and Central Collector with Docker. Embedded JSON/H2 storage is not a substitute for Central.

Documentation

Topic Wiki
Wiki home github.com/glowroot/glowroot/wiki
Embedded vs Central Choosing Embedded vs Central
Embedded install Agent Installation (with Embedded Collector)
Central install Agent Installation (for Central Collector)
Central on Docker Central Collector with Docker
Troubleshooting Troubleshooting Tips
JBoss / WildFly GeneratedMethodMeta CNFE See FAQ below (jboss.modules.system.pkgs) · #1112
Storage (H2 / Cassandra TTL) Administration-Storage
HTTP /health vs /readiness (0.14.8+) docs/health-endpoints.md · 0.14.8 upgrade notes
Embedded H2 1.x → 2.x upgrade docs/embedded-h2-upgrade.md
Plugins / custom Instrumentation Plugins · Instrumentation
Empty Queries / Service Calls / Web? Plugin coverage gaps · What Glowroot does not do
UI orientation (tabs, alerts, gauges, …) Transaction tabs · wiki UI / configuration
JVM thread “Allocated memory” meaning docs/jvm-thread-stats-allocated-memory.md (wiki paste: JVM-thread-stats-allocated-memory) · #630
Contributing (modules / engine map) For contributors · Plugin and Pointcut basics
Community Q&A GitHub Discussions
AI assistant (glowroot-ops) skills/glowroot-ops/

FAQ

Where should I download Glowroot?
Use the glowroot-*-dist.zip from GitHub Releases. Do not point production at random JARs from a partial Maven build (agent/shaded/* is not the distribution).

Which Java versions are supported?
Java 8+ for the agent. Java 17+ for glowroot-central. There is no maintained agent for Java 6/7.

Spring Boot 3 / Jakarta EE (jakarta.servlet)?
Use a current 0.14.x agent from Releases.

The UI does not open / I never see “UI listening”.
Confirm -javaagent is on the JVM that runs your app, the glowroot directory is writable, and nothing else is bound to port 4000. With embedded mode the UI starts after application startup — if the JVM exits immediately, the UI never binds. Bind/port details: Administration-Web.

Several JVMs on one host.
Embedded: give each JVM its own data.dir (or use Central). Central: use a unique agent.id per JVM; you can group agents in the UI with rollup IDs (for example App::pod in Kubernetes). See Multiple JVMs and agent.id and Agents and rollups.

Agent cannot connect to Central.
Set collector.address to the Central host and gRPC port (8181 by default) — not the UI port (4000). Use host:port only (no URL path). Check firewall/nc from the agent host. See the Central install wiki and Troubleshooting Tips.

H2 “locked by another process”.
Only one embedded collector may use a given data directory. Stop the other JVM or point data.dir / multi.dir at separate folders.

Few traces / empty Queries tab?
Aggregates cover all traffic; Traces only store requests above the slow threshold (Transaction configuration). Queries come from the JDBC plugin, not custom Instrumentation (Plugins · Transaction tabs).

Can I run Glowroot together with another Java APM agent?
Usually no — two bytecode-weaving agents on the same JVM is fragile. Pick one agent per process.

JBoss / WildFly: ClassNotFoundException: GeneratedMethodMeta* (or NoClassDefFoundError)?
JBoss Modules isolation: woven app classes get a MetaHolder in the deployment ModuleClassLoader, but GeneratedMethodMeta* / related weaving classes live in the agent/bootstrap loader. Mark Glowroot as a system package so deployments can see those classes:

-Djboss.modules.system.pkgs=org.glowroot

If the property is already set (e.g. for Byteman), append org.glowroot to the comma-separated list. Keep using only -javaagent:/path/to/glowroot.jar. Do not ship glowroot.jar inside the EAR once system.pkgs is set. See #1112.

Support

Pick the channel that fits — it helps everyone respond faster:

Need Where
Questions, how-to, configuration doubts, “is this expected?” GitHub Discussions → Q&A
Ideas, proposals, “would it make sense to…?” GitHub Discussions → Ideas
Reproducible bugs (with steps, version, logs) GitHub Issues
Release announcements / community Google Group · @glowroot

Discussions (Q&A or Ideas) are usually the best fit for questions and feature ideas. Issues work best when you can share Glowroot version, deployment mode (embedded or central), JDK version, and steps to reproduce — that keeps the tracker useful for real defects.

AI assistant (glowroot-ops)

Portable skill pack for AI tools (Cursor, Claude Code, Copilot, ChatGPT, and others). It helps with install, UI, traces, and JVM questions by fetching the live wiki instead of guessing from model memory.

What it does What it does not do
Classify your question (how-to, expected behavior, bug, idea) Open GitHub Issues for you
Point to the right wiki page Change configs or JVM args
Suggest Discussion vs Issue when unsure Replace reading the docs

Install

Paste into any coding agent:

Install the /glowroot-ops skill globally from https://github.com/glowroot/glowroot/tree/main/skills/glowroot-ops

From a local clone of this repo:

npx skills add ./skills/glowroot-ops --skill glowroot-ops --global --yes --copy

Windows: .\skills\glowroot-ops\install.ps1 · macOS/Linux: ./skills/glowroot-ops/install.sh

Customize

Copy skills/glowroot-ops/ORG-CONTEXT.md.template to ORG-CONTEXT.md and fill in your install paths, JDK, and app server. The skill uses that file for org-specific advice; the template ships without any vendor data.

Use

Tool How
Cursor /glowroot-ops <your question>
Claude Code invoke skill glowroot-ops
Any chat paste PROMPT.md + your question

Example: /glowroot-ops Service Calls empty on @Service — is that normal?

More detail: skills/glowroot-ops/README.md · INSTALL.md

Contributing

Build instructions, UI sandbox, integration tests, and code-quality checks: CONTRIBUTING.md.

Code orientation (modules, agent data path, embedded vs central in the tree): wiki For contributors.

Star History

Star History Chart

Chart served by star-history.dera.page — a token-free fork that uses public star snapshots (GitHub restricted the stargazers API in 2026).

License

Glowroot source code is licensed under the Apache License, Version 2.0.

See Third Party Software for license detail of third party software included in the binary distribution.