Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - john9x/glowroot: Fast, clean, simple Java APM · GitHub
Skip to content

Repository files navigation

Glowroot

Requirements

  • Java 8+ for agent
  • Java 11+ for glowroot-central

Quick start

  1. Download and unzip glowroot-0.14.1-dist.zip
  2. Add -javaagent:path/to/glowroot.jar to your application's JVM args [where are my application server's JVM args?]
  3. Check that the user account that runs the JVM has write access to the glowroot folder
  4. Start your application
  5. Point your browser to http://localhost:4000

See the wiki for optional post-installation steps.

Please report any issues!

Release announcements

Building

The usual:

mvn clean install

Binary distribution is built under agent/dist/target.

Building requires Java 11+ and Maven 3.8.0+.

Contributing

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

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

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

Code quality

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.

Dependency shading

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.

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.

About

Fast, clean, simple Java APM

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages