Easy to use, very low overhead, Java APM

Overview

Glowroot

Requirements

  • Java 8+

Quick start

  1. Download and unzip glowroot-0.14.0-beta.2-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 8+ and Maven 3.1.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.

Comments
  • Add (shaded) support for LogstashLogbackEncoder

    Add (shaded) support for LogstashLogbackEncoder

    Hello,

    We need to output logs in JSON format, for consumption by Logstash and rendering in Kibana, which we achieve with LogstashLogbackEncoder.

    // https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder
    compile group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '5.3'
    

    We are providing the necessary logback configuration in glowroot.logback.xml located in the same folder as glowroot.jar.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="jsonAppender" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
        </appender>
        <root level="INFO">
            <appender-ref ref="jsonAppender" />
        </root>
    </configuration>
    

    We are using Glowroot 0.13.0 with Glowroot Central Collector. Our issue arises during bootstrap of the JVMs that use the Glowroot Agent:

    Caused by: org.glowroot.agent.shaded.ch.qos.logback.core.util.IncompatibleClassException
    

    I will try to get the full stack trace. This is a little difficult since, in the absence of the LogbackLogstashEncoder, the individual lines of the stack trace are represented through Kibana as individual log messages with potentially non-deterministic ordering.

    I have looked at agent/shaded/core/pom.xml with a view to implementing the change myself, but, with all the various exclusion filters in-place for logback-core, I suspect that the activity is better suited to someone with intimate knowledge of Glowroot's dependencies.

    If there is an alternative logstash JSON encoder available as part of logback itself (without need for a companion dependency) do let me know and I will endeavour to use that.

    Alternatively, until the LogstashLogbackEncoder has been "shaded" we will have to switch off structured logging for the glowroot agent; any multi-line log messages (e.g. stack traces) will render downstream as individual log records per line.

    enhancement 
    opened by robinroos 28
  • Ability to distinguish which glowroot instance an alert comes from

    Ability to distinguish which glowroot instance an alert comes from

    I'd like to be able to distinguish which instance of Glowroot an Alert message is coming from. We are running multiple instances of Glowroot, one each on DEV, QA, and Production servers. Currently I don't see a way of distinguishing which server the Glowroot alert message is coming from as the "From" address is always the same, our SMTP address. I was hoping the "From display name" in the SMTP configuration would be included in the message or subject and I could use something like "Glowroot - QA Server", "GLowroot - Production Server" to tell which server is alerting, but this field doesn't appear to show up anywhere in the email. Would it be possible to include the SMTP "From display name" in the Alert message?

    enhancement 
    opened by john-keysight 27
  • How does the Central Collector work?

    How does the Central Collector work?

    Hi @trask , could you tell me the flows about how the Central Collector receives the data send by an Agent, and how the Central Collector knows whether a certain Agent is health, and how the Central Collector supports high concurrency when there are thousands of agents need to be monitored, please. By the way, could you tell me the max agent number the Central Collector can monitor, please? Looking forward to your answer! Thanks!

    opened by AbleSteven 25
  • Crash with Java 14 and HikariCP

    Crash with Java 14 and HikariCP

    I have a large application that builds and runs with Java 14 and uses HikariCP for db connection pooling (also uses querydsl and the postgres driver). As soon as it attempts to access the database, it falls over. Here is the stacktrace up to the calling code:

    java.lang.VerifyError: Stack map does not match the one at exception handler 171
    Exception Details:
      Location:
        com/sun/proxy/$Proxy51.prepareStatement(Ljava/lang/String;II)Ljava/sql/PreparedStatement; @171: iload
      Reason:
        Type 'java/lang/Throwable' (current frame, locals[1]) is not assignable to 'java/lang/String' (stack map, locals[1])
      Current Frame:
        bci: @125
        flags: { }
        locals: { 'com/sun/proxy/$Proxy51', 'java/lang/Throwable', integer, integer, integer, 'org/glowroot/agent/bytecode/api/ThreadContextThreadLocal$Holder', 'org/glowroot/agent/bytecode/api/ThreadContextPlus', integer, 'org/glowroot/agent/plugin/api/Timer', 'java/lang/String' }
        stack: { 'java/lang/Throwable' }
      Stackmap Frame:
        bci: @171
        flags: { }
        locals: { 'com/sun/proxy/$Proxy51', 'java/lang/String', integer, integer, integer, 'org/glowroot/agent/bytecode/api/ThreadContextThreadLocal$Holder', 'org/glowroot/agent/bytecode/api/ThreadContextPlus', integer, 'org/glowroot/agent/plugin/api/Timer', 'java/lang/String' }
        stack: { 'java/lang/Throwable' }
      Bytecode:
        0000000: 0336 0401 3a05 013a 0602 3607 013a 082b
        0000010: 3a09 1905 c700 08b8 0093 3a05 1905 b600
        0000020: 9b59 3a06 c600 1f19 06b9 009e 0100 5936
        0000030: 0712 9f9f 0010 1906 129f b900 a302 0004
        0000040: a700 0403 3604 1504 9900 0a19 06b8 00f1
        0000050: 3a08 2ab4 0058 2ab2 010a 06bd 0070 5903
        0000060: 2b53 5904 1cb8 00bb 5359 051d b800 bb53
        0000070: b900 6004 00c0 00f5 a700 0ebf 4cbb 0067
        0000080: 592b b700 6abf 1504 9900 0959 1909 b800
        0000090: f815 0499 0008 1908 b800 fc15 0702 9f00
        00000a0: 0c19 0615 07b9 00a3 0200 b015 0499 0008
        00000b0: 1908 b800 fc15 0702 9f00 0c19 0615 07b9
        00000c0: 00a3 0200 bf
      Exception Handler Table:
        bci [82, 123] => handler: 123
        bci [82, 123] => handler: 123
        bci [82, 123] => handler: 123
        bci [82, 123] => handler: 124
        bci [82, 134] => handler: 171
      Stackmap Table:
        full_frame(@28,{Object[#2],Object[#124],Integer,Integer,Integer,Object[#149],Object[#151],Integer,Object[#236],Object[#124]},{})
        same_frame(@67)
        same_locals_1_stack_item_frame(@68,Integer)
        same_frame(@82)
        same_locals_1_stack_item_frame(@123,Object[#84])
        same_locals_1_stack_item_frame(@124,Object[#84])
        same_locals_1_stack_item_frame(@134,Object[#245])
        same_locals_1_stack_item_frame(@145,Object[#245])
        same_locals_1_stack_item_frame(@155,Object[#245])
        same_locals_1_stack_item_frame(@170,Object[#245])
        same_locals_1_stack_item_frame(@171,Object[#84])
        same_locals_1_stack_item_frame(@181,Object[#84])
        same_locals_1_stack_item_frame(@196,Object[#84])
    
    	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    	at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3215)
    	at java.base/java.lang.Class.getConstructor0(Class.java:3420)
    	at java.base/java.lang.Class.getConstructor(Class.java:2165)
    	at java.base/java.lang.reflect.Proxy$ProxyBuilder.build(Proxy.java:660)
    	at java.base/java.lang.reflect.Proxy.lambda$getProxyConstructor$0(Proxy.java:424)
    	at java.base/jdk.internal.loader.AbstractClassLoaderValue$Memoizer.get(AbstractClassLoaderValue.java:329)
    	at java.base/jdk.internal.loader.AbstractClassLoaderValue.computeIfAbsent(AbstractClassLoaderValue.java:205)
    	at java.base/java.lang.reflect.Proxy.getProxyConstructor(Proxy.java:422)
    	at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1015)
    	at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.getClosedConnection(ProxyConnection.java:518)
    	at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.<clinit>(ProxyConnection.java:493)
    	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:252)
    

    I checked Glowroot, opened it with Intellij, and briefly attempted to try to add a test (thought maybe to agent > integration-tests > org.glowroot.agent.tests.JdbcDriverIT ?) but quickly got put off by the Java 6 and shading requirements that didn't seem to work right in the IDE. Before our recent conversion from Java 8 → Java 14 we got a lot of value from Glowroot and would love to resume using it. I can provide any other details required to help resolve this.

    opened by nezda 24
  • Support clustered glowroot central

    Support clustered glowroot central

    Hi, What is the recommended approach to have a round-robin load balancer setup?

    I want to run three instances of collector server behind Haproxy in expectation of higher load due to the numerous services in our company looking to integrate. Is that possible? Does the glowroot server store metrics in-memory before writing to Cassandra?

    -Thanks

    P.S: Work is progressing slowly but surely on Go and Node agents. Looking forward to opening up the code on github in a couple of weeks.

    enhancement 
    opened by adnaan 24
  • NegativeArraySizeException error with old version of JBoss

    NegativeArraySizeException error with old version of JBoss

    Hi

    We have an issue with an old version of jboss with jdk6

    Can you help please ?

    2018-04-27 10:59:42,577 INFO [STDOUT] 2018-04-27 10:59:42.576 ERROR o.g.a.w.WeavingClassFileTransformer - error weaving org/apache/jsp/****_ jsp: null java.lang.NegativeArraySizeException: null at org.glowroot.agent.shaded.org.objectweb.asm.Frame.merge(Frame.java:1197) at org.glowroot.agent.shaded.org.objectweb.asm.CurrentFrame.execute(CurrentFrame.java:53) at org.glowroot.agent.shaded.org.objectweb.asm.MethodWriter.visitInsn(MethodWriter.java:851) at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.readCode(ClassReader.java:1937) at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1238) at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.accept(ClassReader.java:631) at org.glowroot.agent.shaded.org.objectweb.asm.ClassWriter.toByteArray(ClassWriter.java:617) at org.glowroot.agent.weaving.Weaver.weaveUnderTimer(Weaver.java:287) at org.glowroot.agent.weaving.Weaver.weave(Weaver.java:147) at org.glowroot.agent.weaving.WeavingClassFileTransformer.transformInternal(WeavingClassFileTransformer.java:117) at org.glowroot.agent.weaving.WeavingClassFileTransformer.transform(WeavingClassFileTransformer.java:94) at sun.instrument.TransformerManager.transform(TransformerManager.java:169) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:133) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:65) at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:596) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:147) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1124) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4225) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524) at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    bug 
    opened by lfen21 18
  • Unable to instrument Java Jboss

    Unable to instrument Java Jboss

    Hi, We have instrumented glowroot aget on 1 of the JAVA jboss server. we have followed the standard steps to instrument the agent in this application

    Instrumentation path :- JAVA_OPTS="-javaagent:/home/mapp/glowroot-agent/glowroot.jar -Xms1303m -Xmx1303m ..."

    Instrumented in :- standalone.sh File

    Please find the below error for same & let me know if you need more information.

    JAVA: /app/soft/jboss/jdk1.8.0_92/bin/java

    JAVA_OPTS: -server -XX:+UseCompressedOops -server -XX:+UseCompressedOops -Xms64m -Xmx2048m -XX:MaxPermSize=2048m -Djava.net.preferIPv4Stack=true -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

    =========================================================================

    2017-08-04 17:24:37.411 INFO org.glowroot - Glowroot version: 0.9.22, built 2017-07-17 18:59:11 +0000 2017-08-04 17:24:37.413 INFO org.glowroot - Java version: 1.8.0_92 2017-08-04 17:24:39.755 INFO org.glowroot - plugins loaded: Cassandra Plugin, Elasticsearch Plugin, Executor Plugin, Grails Plugin, Hibernate Plugin, HTTP Client Plugin, JAX-RS Plugin, Jdbc Plugin, JMS Plugin, JSF Plugin, JSP Plugin, Logger Plugin, Play Plugin, Netty Plugin, Quartz Plugin, Redis Plugin, Servlet Plugin, Spring Plugin, Struts Plugin Error: Could not find or load main class ...

    Regards, Vijay.

    discussion 
    opened by vijayninave 18
  • Upgrade central collector problem

    Upgrade central collector problem

    Hi,

    I try to upgrade central-collector from glowroot-central-0.12.4-SNAPSHOT-dist.zip to glowroot-central-0.13.2-dist.zip. I followed you steps on github but can not connect to cassandra. I dont understant what is problem. I share glowroot.log at attachement glowroot.log

    bug 
    opened by ynsdl 17
  • Standalone/desktop Java applications monitoring with glowroot

    Standalone/desktop Java applications monitoring with glowroot

    Can we monitor standalone/desktop java applications using glowroot? If yes, what is the process? and where on glowroot UI can we track the classes and methods details?

    opened by AditiS06 17
  • 0.9.4: error sending data to server: UNKNOWN

    0.9.4: error sending data to server: UNKNOWN

    After upgrading both server and clients to 0.9.4 I keep getting the exception listed below. With 0.9.2 all worked well.

    WARN  o.g.agent.util.RateLimitedLogger - error sending data to server: UNKNOWN (this warning will be logged at most once a minute, 1 warnings were suppressed since it was last logged)
    org.glowroot.agent.shaded.grpc.StatusRuntimeException: UNKNOWN
            at org.glowroot.agent.shaded.grpc.Status.asRuntimeException(Status.java:545)
            at org.glowroot.agent.shaded.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:370)
            at org.glowroot.agent.shaded.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:458)
            at org.glowroot.agent.shaded.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$500(ClientCallImpl.java:385)
            at org.glowroot.agent.shaded.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$3.runInContext(ClientCallImpl.java:486)
            at org.glowroot.agent.shaded.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
            at org.glowroot.agent.shaded.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:745)
    
    discussion 
    opened by robokaso 17
  • JBoss 4 with glowroot agent sometimes deadlocks while starting

    JBoss 4 with glowroot agent sometimes deadlocks while starting

    He, we have problem in production. When the server is restarted, the process hang somewhere in glowroot. We tested both 0.0.12 and 0.0.13 and the result the same. Our collage to tested and from 50x restart after 17 minuts, 4 restart hangs. In central collector not logging from this agent in this time.

    In log we had 2017-03-23 11:49:02

    JBoss Bootstrap Environment

    JBOSS_HOME: /apps/olin/boot/jboss

    JAVA: /opt/java/jre8/bin/java

    JAVA_OPTS: -server -Xms6144M -Xmx6144M -XX:PermSize=1024M -XX:MaxPermSize=1024M -XX:ReservedCodeCacheSize=150M -Duser.language=cs -Duser.country=CZ -Dfile.encoding=CP1250 -Dsun.jnu.encoding=UTF-8 -Dcom.sun.management.jmxremote.port=7001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djboss.web.http.port=8180 -XX:+PrintCommandLineFlags -Xloggc:/apps/olin/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:-TraceClassUnloading -XX:ErrorFile=/apps/olin/log/jvm-err.log -javaagent:/apps/olin/boot/jboss/bin/jboss-cfg.jar=/apps/olin/conf/00-system.properties -javaagent:/apps/olin/boot/jboss/bin/aspectjweaver.jar -javaagent:/apps/olin/glowroot/glowroot.jar

    CLASSPATH: /apps/olin/boot/jboss/bin/run.jar

    =========================================================================

    java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=1024M; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024M; support was removed in 8.0 -XX:ErrorFile=/apps/olin/log/jvm-err.log -XX:InitialHeapSize=6442450944 -XX:+ManagementServer -XX:MaxHeapSize=6442450944 -XX:+PrintCommandLineFlags -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:ReservedCodeCacheSize=157286400 -XX:-TraceClassUnloading -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC

    set apps.base.dir = /apps/olin

    --> Loading system properties from /apps/olin/conf/00-system.properties set apps.base.url = file:/apps/olin set java.endorsed.dirs = /apps/olin/boot/jboss/lib/endorsed set apps.config.url = file:/apps/olin/conf/ set apps.config.dir = file:/apps/olin/conf/ set javax.net.ssl.trustStore = /apps/olin/conf/cacerts.jks set java.net.preferIPv4Stack = true set jboss.server.name = web8 set java.version = 1.7.0_888 set jboss.server.home.dir = /apps/olin/var set jboss.server.log.dir = /apps/olin/log set java.io.tmpdir = /apps/olin/var/javatmp set jboss.web.http.maxThreads = 500 set jcifs.properties = /apps/olin/conf/01-jcifs-config.properties set sun.rmi.dgc.client.gcInterval = 3600000 set sun.rmi.dgc.server.gcInterval = 3600000 set mail.mime.multipart.allowempty = true set cfg.jms-config.url = file:/apps/olin/deploy/xml/.jms-config.xml

    2017-03-23 11:49:03.061 INFO org.glowroot - Glowroot version: 0.9.13, built 2017-03-13 18:05:25 +0000 2017-03-23 11:49:05.119 INFO org.glowroot - plugins loaded: Cassandra Plugin, Executor Plugin, Grails Plugin, Hibernate Plugin, HTTP Client Plugin, JAX-RS Plugin, Jdbc Plugin, JMS Plugin, JSF Plugin, JSP Plugin, Logger Plugin, Play Plugin, Netty Plugin, Quartz Plugin, Redis Plugin, Servlet Plugin, Spray Plugin, Spring Plugin, Struts Plugin 2017-03-23 11:49:05.233 INFO org.glowroot - agent id: jboss-olin-SB, rollup id: PRODUKCE 2017-03-23 11:55:00.001 WARN o.g.a.i.Aggregator$TransactionProcessor - not storing an aggregate because of an excessive backlog of 5 aggregates already waiting to be stored /apps/olin/boot/jboss/bin/jboss-run.sh: line 241: 27353 Killed $JAVA $JAVA_OPTS -classpath "$CP" org.jboss.Main -b 0.0.0.0

    2017-03-23 11:55:07 ---- JBoss stopped with status 137 ---- Startup: 2017-03-23 11:49:02 (Thursday) Shutdown: 2017-03-23 11:55:07 (Thursday) Duration: 0 days 00:06:05 (365 s) ---> Found valid stop-it file, exiting.

    Do you have some idea, where the problem could be ?

    bug 
    opened by cecrdle 16
  • Apache Async Http Client calls do not show up in services or as transaction items

    Apache Async Http Client calls do not show up in services or as transaction items

    Using Camel + CXF to make outbound calls, i can tell from the trace that it seems to hits the

    ExecuteWithProducerConsumerAdvice2 of the ApacheHttpAsyncClientAspect.java

    Which, in turn calls ExecuteWithProducerConsumerAdvice, and this apparently silently drops the whole thing.

        @Pointcut(className = "org.apache.http.nio.client.HttpAsyncClient", methodName = "execute",
                methodParameterTypes = {"org.apache.http.nio.protocol.HttpAsyncRequestProducer",
                        "org.apache.http.nio.protocol.HttpAsyncResponseConsumer",
                        "org.apache.http.concurrent.FutureCallback"},
                nestingGroup = "http-client")
        public static class ExecuteWithProducerConsumerAdvice {
            @OnBefore
            public static void onBefore(ThreadContext context,
                    @SuppressWarnings("unused") @BindParameter @Nullable Object producer,
                    @SuppressWarnings("unused") @BindParameter @Nullable Object consumer,
                    @BindParameter ParameterHolder<FutureCallback<HttpResponse>> callback) {
                FutureCallback<HttpResponse> delegate = callback.get();
                if (delegate != null) {
                    callback.set(new FutureCallbackWithoutEntryWrapper<HttpResponse>(delegate,
                            context.createAuxThreadContext()));
                }
            }
        }
    

    I'm not sure if i'm reading the flow right, but can anyone confirm, that the FutureCallbackWithoutEntryWrapper will not record a call in the Service Calls section?

    opened by asgerjensen 0
  • Glowroot causes bean instantiation failure

    Glowroot causes bean instantiation failure

    I am using glowroot 0.14.0-beta.3 with a Tomcat 9.0.62/Tomee 8.0.6 war. The application starts and runs normally without glowroot, but once glowroot is active, mbeans fail to be created. The java is Amazon Corretto 11.0.17_8 Eg.

    2022-12-09 16:04:37,114 [pool-91-thread-11] ERROR OpenEJB- The bean instance appWorkflowEar-4.6.0/DataPerfectionTransactionDAOBean threw a system exception:java.lang.NullPointerException java.lang.NullPointerException: null at org.apache.webbeans.util.GenericsUtil.resolveType(GenericsUtil.java:692) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveTypes(GenericsUtil.java:701) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveType(GenericsUtil.java:667) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveTypes(GenericsUtil.java:715) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveParameterTypes(GenericsUtil.java:632) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedMethodImpl.(AnnotatedMethodImpl.java:52) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl$State.(AnnotatedTypeImpl.java:305) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl$State.(AnnotatedTypeImpl.java:236) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl.getState(AnnotatedTypeImpl.java:227) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl.getConstructors(AnnotatedTypeImpl.java:153) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.inject.impl.InjectionPointFactory.buildInjectionPoints(InjectionPointFactory.java:70) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.container.InjectionTargetFactoryImpl.createInjectionPoints(InjectionTargetFactoryImpl.java:84) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.container.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:66) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.component.InjectionTargetBean.(InjectionTargetBean.java:73) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.component.InjectionTargetBean.(InjectionTargetBean.java:57) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.openejb.cdi.ConstructorInjectionBean.(ConstructorInjectionBean.java:58) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.cdi.ConstructorInjectionBean.(ConstructorInjectionBean.java:54) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.createConstructorInjectionBean(BeanContext.java:1798) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.inject(BeanContext.java:1815) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.newInstance(BeanContext.java:1601) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager.createInstance(StatelessInstanceManager.java:242) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager.access$200(StatelessInstanceManager.java:76) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager$StatelessSupplier.create(StatelessInstanceManager.java:163) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager$InstanceCreatorRunnable.run(StatelessInstanceManager.java:548) [openejb-core-8.0.6.jar:8.0.6] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 2022-12-09 16:04:37,115 [pool-91-thread-12] ERROR OpenEJB- The bean instance appWorkflowEar-4.6.0/DataPerfectionTransactionDAOBean threw a system exception:java.lang.NullPointerException java.lang.NullPointerException: null at org.apache.webbeans.util.GenericsUtil.resolveType(GenericsUtil.java:692) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveTypes(GenericsUtil.java:701) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveType(GenericsUtil.java:667) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveTypes(GenericsUtil.java:715) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.util.GenericsUtil.resolveParameterTypes(GenericsUtil.java:632) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedMethodImpl.(AnnotatedMethodImpl.java:52) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl$State.(AnnotatedTypeImpl.java:305) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl$State.(AnnotatedTypeImpl.java:236) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl.getState(AnnotatedTypeImpl.java:227) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.portable.AnnotatedTypeImpl.getConstructors(AnnotatedTypeImpl.java:153) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.inject.impl.InjectionPointFactory.buildInjectionPoints(InjectionPointFactory.java:70) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.container.InjectionTargetFactoryImpl.createInjectionPoints(InjectionTargetFactoryImpl.java:84) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.container.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:66) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.component.InjectionTargetBean.(InjectionTargetBean.java:73) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.webbeans.component.InjectionTargetBean.(InjectionTargetBean.java:57) ~[openwebbeans-impl-2.0.12.jar:2.0.12] at org.apache.openejb.cdi.ConstructorInjectionBean.(ConstructorInjectionBean.java:58) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.cdi.ConstructorInjectionBean.(ConstructorInjectionBean.java:54) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.createConstructorInjectionBean(BeanContext.java:1798) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.inject(BeanContext.java:1815) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.BeanContext.newInstance(BeanContext.java:1601) ~[openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager.createInstance(StatelessInstanceManager.java:242) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager.access$200(StatelessInstanceManager.java:76) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager$StatelessSupplier.create(StatelessInstanceManager.java:163) [openejb-core-8.0.6.jar:8.0.6] at org.apache.openejb.core.stateless.StatelessInstanceManager$InstanceCreatorRunnable.run(StatelessInstanceManager.java:548) [openejb-core-8.0.6.jar:8.0.6] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?]

    All other areas seem ok, so not sure why this is having an issue. I have tried older versions and they have the same problem

    Thx, Stephen

    opened by sg135459 2
  • Glowroot does not work with WildFly 26 on Open JDK 19

    Glowroot does not work with WildFly 26 on Open JDK 19

    Recently upgraded our application from WildFly 15 on Open JDK 11 to WildFly 26 on Open JDK 19 and when running Glowroot version: 0.13.6 locally on server hosting our application encounter errors similar to:

    2022-12-01 14:26:53.429 ERROR o.g.a.ManagementFactoryHackClassFileTransformer - Unsupported class file major version 63 java.lang.IllegalArgumentException: Unsupported class file major version 63 at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.(ClassReader.java:196) at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.(ClassReader.java:177) at org.glowroot.agent.shaded.org.objectweb.asm.ClassReader.(ClassReader.java:163) at org.glowroot.agent.ManagementFactoryHackClassFileTransformer.transform(ManagementFactoryHackClassFileTransformer.java:48) at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244) at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541) at org.glowroot.agent.MainEntryPoint.premain(MainEntryPoint.java:151) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.glowroot.agent.AgentPremain.premain(AgentPremain.java:59) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) 2022-12-01 14:26:53.505 INFO org.glowroot - Glowroot version: 0.13.6, built 2020-03-01 01:25:31 +0000

    Full error in attached log file glowroot.2022-12-01.log

    Please review and advise

    Regards Carl glowroot.2022-12-01.log

    opened by carl-payne 2
  • Upgrade moment js to newer version

    Upgrade moment js to newer version

    Moment.js version 2.23.0 used in glowroot is affected to 2 vulnerabilities:

    opened by tylerOrMe 0
  • fix(sec): upgrade com.fasterxml.jackson.core:jackson-databind to 2.14.0-rc1

    fix(sec): upgrade com.fasterxml.jackson.core:jackson-databind to 2.14.0-rc1

    What happened?

    There are 1 security vulnerabilities found in com.fasterxml.jackson.core:jackson-databind 2.13.0

    What did I do?

    Upgrade com.fasterxml.jackson.core:jackson-databind from 2.13.0 to 2.14.0-rc1 for vulnerability fix

    What did you expect to happen?

    Ideally, no insecure libs should be used.

    The specification of the pull request

    PR Specification from OSCS

    opened by ShaoNianL 0
Releases(v0.14.0-beta.3)
Chih-Jen Lin 4.3k Jan 2, 2023
Algorithms Made Easy May 10 Challenge

Algorithms-Made-Easy-May-Challenges Algorithms Made Easy May 10 day 30 problems Challenge Hi ??‍?? , I'm Rohit Kumar Singh All Leetcode Soluton Connec

Rohit Kumar Singh 6 May 24, 2021
Use this to open hidden activities on MIUI.

miui_hidden_libs Use this to open hidden activities on MIUI. Translate for your language: https://drive.google.com/file/d/1---II4WVVvPIn3cPodTC52VPVG3

ios7jbpro 51 Nov 10, 2022
A powerful, extendable, flexible yet simple to use commands annotation framework.

Lamp Background Building commands has always been a core concept in many applications, and, lots of times, a really boring and cumbersome one to pull

Revxrsal 95 Jan 5, 2023
Library for helping mods that use graph networks, like Wired Redstone

GraphLib Library for helping mods that use graph networks, like Wired Redstone. GraphLib and HCTM-Base This library is based on HCTM-Base by 2xsaiko a

Data 6 Nov 5, 2022
Java Statistical Analysis Tool, a Java library for Machine Learning

Java Statistical Analysis Tool JSAT is a library for quickly getting started with Machine Learning problems. It is developed in my free time, and made

null 752 Dec 20, 2022
Hierarchical Temporal Memory implementation in Java - an official Community-Driven Java port of the Numenta Platform for Intelligent Computing (NuPIC).

htm.java Official Java™ version of... Hierarchical Temporal Memory (HTM) Community-supported & ported from the Numenta Platform for Intelligent Comput

Numenta 301 Dec 1, 2022
An Engine-Agnostic Deep Learning Framework in Java

Deep Java Library (DJL) Overview Deep Java Library (DJL) is an open-source, high-level, engine-agnostic Java framework for deep learning. DJL is desig

Amazon Web Services - Labs 2.9k Jan 7, 2023
Datumbox is an open-source Machine Learning framework written in Java which allows the rapid development of Machine Learning and Statistical applications.

Datumbox Machine Learning Framework The Datumbox Machine Learning Framework is an open-source framework written in Java which allows the rapid develop

Vasilis Vryniotis 1.1k Dec 9, 2022
java deep learning algorithms and deep neural networks with gpu acceleration

Deep Neural Networks with GPU support Update This is a newer version of the framework, that I developed while working at ExB Research. Currently, you

Ivan Vasilev 1.2k Jan 6, 2023
Java version of LIBLINEAR

This is the Java version of LIBLINEAR. The project site of the original C++ version is located at http://www.csie.ntu.edu.tw/~cjlin/liblinear/ The ups

Benedikt Waldvogel 307 Dec 11, 2022
Learning Based Java (LBJava)

Learning Based Java LBJava core LBJava examples LBJava maven plugin Compiling the whole package From the root directory run the following command: Jus

CogComp 12 Jun 9, 2019
Kodlama IO | JAVA & REACT Projects

Human Resources Management System Creating a human resources system using Java-SpringBoot that can be used by employers, job seekers and system person

Aykut Şahin 23 Oct 19, 2022
An Open Source Java Library for the Rubiks Cube!

?? Table of contents Overview What is Cubot? Why would you want it? Documentation Installation Updates ?? Overview A Java library to help you : Virtua

Akshath Raghav 13 Oct 17, 2022
Java Exp FrameWork

Exp Poc框架并不少,TangScan、Pocsuite 等等,用python写一个其实是很简单的事情。为什么要重复造这个轮子呢? 看过不少漏洞了,差不多都是本地很杂乱的存放poc,很多语言都有,而且大多数poc也只能弹个计算器而已.....所以很早就想拥有一个属于自己的统一存放Exp的地方,也

Skay 100 Oct 9, 2022
A Simple movies app using JAVA,MVVM and with a offline caching capability

IMDB-CLONE A simple imdb clone using JAVA,MVVM with searching and bookmarking ability with offline caching ability screenshots Home Screen 1 Home Scre

saiteja janjirala 13 Aug 16, 2022
This repository consists of the code samples, assignments, and the curriculum for the Community Classroom complete Data Structures & Algorithms Java bootcamp.

DSA-Bootcamp-Java Subscribe to our channel Complete Playlist Syllabus Discord for discussions Telegram for announcements Connect with me     Follow Co

Kunal Kushwaha 10.2k Jan 1, 2023