BullFrog
BullFrog is an Artifactory specific open source Java APM based on Glowroot.
BullFrog builds on top of Glowroot. The early phase will include Artifactory gauge defaults, cosmetic, and terminology changes.
The next phases will add:
You can visit the BullFrog demo site and explore the many features. You can also navigate the Artifactory instance that is being monitored to get a feel of what you can expect to record.
The installation instructions depend on your set up. There are two options, the standalone and the central collection option.
The standalone option is a good choice if you only want to monitor 1 Artifactory instance. You can read the instructions on the Agent Installation wiki.
The central collector option is the way to go if you want to monitor multiple Artifactory instances from a single location. You will need to first set up the central server and then configure the agents to talk to it. You can read the instructions on the Central Collector Installation wiki.
The usual:
mvn clean install
Binary distribution is built under agent-parent/dist/target.
Building requires Java 7+ (in order to perform Immutables annotation processing) and Maven 3.1.0+.
BullFrog/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, BullFrog/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
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.
BullFrog 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.