- Java 8+ for agent
- Java 17+ for glowroot-central
- Download and unzip glowroot-0.14.3-beta.4-dist.zip
- Add
-javaagent:path/to/glowroot.jar
to your application's JVM args [where are my application server's JVM args?] - Check that the user account that runs the JVM has write access to the glowroot folder
- Start your application
- Point your browser to http://localhost:4000
See the wiki for optional post-installation steps.
- Follow @glowroot on Twitter, or
- Subscribe to the Google group
The usual:
mvn clean install
Binary distribution is built under agent/dist/target.
Building requires Java 11+ and Maven 3.8.0+.
Glowroot uses Immutables annotation processing to eliminate maintenance on lots of boilerplate code. If you are using Eclipse, this requires installing the m2e-apt plugin and changing Window > Preferences > Maven > Annotation Processing to "Automatically configure JDT APT".
To work on the UI, run org.glowroot.ui.sandbox.UiSandboxMain under a debugger inside your favorite IDE. This starts Glowroot and generates a variety of sample traces to give the UI something to display. Connect your browser to http://localhost:4000.
Also, Glowroot uses Bower and Grunt to build its web assets (dependency management, Javascript concat/minify, LESS compile/uncss/minify, AngularJS template concat/minify, asset revving and more). The first time you run mvn clean install
, Node, Bower and Grunt are installed locally under the ui
directory (thanks to the frontend-maven-plugin).
If you are modifying web assets, you either need to run grunt to re-build them after each change, or (better) run ./grunt serve
from the ui
directory and connect your browser to http://localhost:9000.
./grunt serve
serves up the Glowroot web assets to the browser without the concat/minify/rev step, which makes testing/debugging much easier. It reverse proxies non- static resource requests to http://localhost:4000 to be handled by Glowroot. It also watches for changes to the files and performs live-reload of web assets inside the browser.
./grunt serve:demo
does the same as above, except that it reverse proxies non- static resource requests to https://demo.glowroot.org instead of http://localhost:4000.
Integration tests are run during Maven's standard integration-test
lifecycle phase.
The Glowroot agent has an integration test harness which makes it easy to run sample application code and then validate the data captured by the agent. The integration test harness is able to run tests both using a custom weaving class loader (which is very convenient for running and debugging inside your favorite IDE), and by spawning a JVM with the -javaagent flag (which more correctly simulates real world conditions).
Browser-based integration tests are run using WebDriver. By default they run against Firefox. Thanks to Sauce Labs, they also run against Chrome, IE (9, 10, 11) and Safari (6, 7, 8, 9) during every Travis CI build (see the jobs with TARGET=saucelabs).
Microbenchmarks are written using the excellent JMH benchmark harness. The microbenchmarks can be built and run under agent/benchmarks:
mvn clean package
java -jar target/benchmarks.jar -jvmArgs -javaagent:path/to/glowroot.jar
SonarQube is used to check Java coding conventions, code coverage, duplicate code, package cycles and much more. See analysis at https://sonarcloud.io.
Checker Framework is used to eliminate fear of null with its rigorous Nullness Checker. It is run as part of every Travis CI build (see the job with TARGET=checker) and any violation fails the build.
All third party java libraries used by the agent are shaded under the org.glowroot.agent.shaded package to ensure there are no jar version conflicts with the application being monitored.
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.