The Java agent for Apache SkyWalking

Overview

Apache SkyWalking Java Agent

Sky Walking logo

GitHub stars Twitter Follow

Maven Central CI

SkyWalking-Java: The Java Agent for Apache SkyWalking, which provides the native tracing/metrics/logging abilities for Java projects.

SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.

Documentation

Downloads

Please head to the releases page to download a release of Apache SkyWalking.

Compiling project

./mvnw clean package

The agent binary package is generated in skywalking-agent folder.

Set Generated Source Codes(grpc-java and java folders in apm-protocol/apm-network/target/generated-sources/protobuf) folders if you are using IntelliJ IDE.

Code of conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.

Live Demo

Find the demo and screenshots on our website.

Contact Us

License

Apache 2.0 License.

Comments
  • servicecomb 2.0 plugin

    servicecomb 2.0 plugin

    • [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [ ] Update the CHANGES log.
    plugin feature 
    opened by lbc97 86
  • Report the agent version to OAP

    Report the agent version to OAP

    Report the agent version to OAP

    Currently, the agent version used by all applications cannot be sensed, It is beneficial for agent developers to diagnose some problems, and help us find which applications haven't upgraded the agent. I use git-commit-id-maven-plugin to generate the agent version, and report it to OAP when the agent starts.

    The agent version is consist of three parts:

    1. build version: the maven project version
    2. short commit id: git commit short id
    3. date: build date.

    Here is the agent log from my local env with this feature:

    INFO 2022-11-24 09:51:32.331 main InstanceJsonPropertiesUtil : SkyWalking agent version: 8.14.0-SNAPSHOT-add2bc4-221124
    

    And the OAP server could show this agent version, too. What do you think of this feature? Any suggestions? @wu-sheng image

    • [ ] If this is non-trivial feature, paste the links/URLs to the design doc.
    • [ ] Update the documentation to include this new feature.
    • [ ] Tests(including UT, IT, E2E) are added to verify the new feature.
    • [ ] If it's UI related, attach the screenshots below.
    • [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [ ] Update the CHANGES log.
    enhancement 
    opened by nisiyong 30
  • Update guava-cache,jedis,memcached,ehcache plugins to adopt uniform tags

    Update guava-cache,jedis,memcached,ehcache plugins to adopt uniform tags

    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [x] Update the CHANGES log.

    First , Add db .type for guava , encache which miss the tag

    related issue https://github.com/apache/skywalking/issues/9556

    enhancement plugin 
    opened by pg-yang 28
  • add plugin for dubbo3

    add plugin for dubbo3

    Add an agent plugin to support dubbo3

    • [x] Add a test case for the new plugin, refer to the doc
    • [ ] Add a component id in the component-libraries.yml There is already one (for dubbo 2.5 and 2.7)
    • [ ] Add a logo in the UI repo There is already one (for dubbo 2.5 and 2.7)
    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #. skywalking 7203
    • [x] Update the CHANGES log.
    plugin feature 
    opened by tedli 28
  • TracePathMatcher should match pattern

    TracePathMatcher should match pattern "**" with paths end by "/" (#7875)

    Fix <TracePathMatcher should match pattern "**" with paths end by "/">

    • [ ] Add a unit test to verify that the fix works.
    • [ ] Use "Spring AntPathMatcher' instead of ”FastPathMatcher“
    enhancement plugin 
    opened by newboy2004 26
  • Add okhttp2.x plugin

    Add okhttp2.x plugin

    Add an agent plugin to support

    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #<7889>.
    • [x] Update the CHANGES log.
    enhancement plugin 
    opened by xu1009 25
  • Add plugin to support impala jdbc driver

    Add plugin to support impala jdbc driver

    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [x] Update the CHANGES log.
    plugin feature 
    opened by lv-lifeng 23
  • feat: add support xxl-job 2.3.x

    feat: add support xxl-job 2.3.x

    Add an agent plugin to support xxl-job 2.3.x

    • [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [ ] Update the CHANGES log.
    plugin feature 
    opened by BigXin0109 22
  • Support collecting dubbo thread pool metrics

    Support collecting dubbo thread pool metrics

    Inspired by the implementation of untow_thread_pool at issue#8433

    Now the skywalking-javaagent could collect the Dubbo thread pool metrics. I tested it with dubbo-2.6.9 and dubbo-2.7.4.1 and ran it in our production environment with hundreds of applications, it works well.

    Dubbo could use telnet to get the thread pool status, this meter plugin is related to this telnet implementation.

    $ telnet localhost 20880                 
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    
    dubbo>status -l
    +------------+--------+--------------------------------------------------------+
    | resource   | status | message                                                |
    +------------+--------+--------------------------------------------------------+
    | threadpool | OK     | Pool status:OK, max:200, core:200, largest:3, active:1, task:3, service port: 20880 |
    | load       | OK     | load:2.60595703125,cpu:12                              |
    | memory     | OK     | max:3641M,total:1294M,used:481M,free:813M              |
    | registry   | OK     | 127.0.0.1:2181(connected)                            |
    | server     | OK     | /127.0.0.1:20880(clients:1)                         |
    | summary    | OK     |                                                        |
    +------------+--------+--------------------------------------------------------+
    
    

    Please take a look. Also, cause the e2e test is friendly for the trace plugin, rather than the meter plugin. There is no test code with this PR, I'm willing to add test code if there are some guidelines.


    • [x] Update the documentation to include this new feature.
    • [x] Tests(including UT, IT, E2E) are added to verify the new feature.
    • [x] If it's UI related, attach the screenshots below.
    • [x] Update the CHANGES log.
    plugin feature 
    opened by nisiyong 20
  • Add support for RESTEasy4

    Add support for RESTEasy4

    Add an agent plugin to support

    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
    • [x] Update the CHANGES log.
    plugin feature stale 
    opened by carlfranz 20
  • Vertx 4 Core Plugin

    Vertx 4 Core Plugin

    Add an agent plugin to support

    Vertx 4.x added native tracing support (https://vertx.io/blog/eclipse-vert-x-4-milestone-1-released/#tracing) making this plugin pretty straightforward.

    plugin feature 
    opened by BFergerson 20
Releases(v8.13.0)
  • v8.13.0(Nov 9, 2022)

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    This release begins to adopt SkyWalking 9.3.0+ Virtual Cache Analysis and Virtual MQ Analysis

    • Support set-type in the agent or plugin configurations
    • Optimize ConfigInitializer to output warning messages when the config value is truncated.
    • Fix the default value of the Map field would merge rather than override by new values in the config.
    • Support to set the value of Map/List field to an empty map/list.
    • Add plugin to support Impala JDBC 2.6.x.
    • Update guava-cache, jedis, memcached, ehcache plugins to adopt uniform tags.
    • Fix Apache ShenYu plugin traceId empty string value.
    • Add plugin to support brpc-java-3.x
    • Update compose-start-script.template to make compatible with new version docker compose
    • Bump up grpc to 1.50.0 to fix CVE-2022-3171
    • Polish up nats plugin to unify MQ related tags
    • Correct the duration of the transaction span for Neo4J 4.x.
    • Plugin-test configuration.yml dependencies support docker service command field
    • Polish up rabbitmq-5.x plugin to fix missing broker tag on consumer side
    • Polish up activemq plugin to fix missing broker tag on consumer side
    • Enhance MQ plugin relative tests to check key tags not blank.
    • Add RocketMQ test scenarios for version 4.3 - 4.9. No 4.0 - 4.2 release images for testing.
    • Support mannual propagation of tracing context to next operators for webflux.
    • Add MQ_TOPIC and MQ_BROKER tags for RocketMQ consumer's span.
    • Polish up Pulsar plugins to remove unnecessary dynamic value , set peer at consumer side
    • Polish Kafka plugin to set peer at the consumer side.
    • Polish NATS plugin to set peer at the consumer side.
    • Polish ActiveMQ plugin to set peer at the consumer side.
    • Polish RabbitMQ plugin to set peer at the consumer side.

    Documentation

    • Update configuration doc about overriding default value as empty map/list accordingly.
    • Update plugin dev tags for cache relative tags.
    • Add plugin dev docs for virtual database tags.
    • Add plugin dev docs for virtual MQ tags.
    • Add doc about kafka plugin Manual APIs.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.12.0(Sep 3, 2022)

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    • Fix Shenyu plugin's NPE in reading trace ID when IgnoredTracerContext is used in the context.
    • Update witness class in elasticsearch-6.x-plugin, avoid throw NPE.
    • Fix onHalfClose using span operation name /Request/onComplete instead of the wrong name /Request/onHalfClose.
    • Add plugin to support RESTeasy 4.x.
    • Add plugin to support hutool-http 5.x.
    • Add plugin to support Tomcat 10.x.
    • Save http status code regardless of it's status.
    • Upgrade byte-buddy to 1.12.13, and adopt byte-buddy APIs changes.
    • Upgrade gson to 2.8.9.
    • Upgrade netty-codec-http2 to 4.1.79.Final.
    • Fix race condition causing agent to not reconnect after network error
    • Force the injected high-priority classes in order to avoid NoClassDefFoundError.
    • Plugin to support xxl-job 2.3.x.
    • Add plugin to support Micronaut(HTTP Client/Server) 3.2.x-3.6.x
    • Add plugin to support NATS Java client 2.14.x-2.15.x
    • Remove inappropriate dependency from elasticsearch-7.x-plugin
    • Upgrade jedis plugin to support 3.x(stream),4.x

    Documentation

    • Add a section in Bootstrap-plugins doc, introducing HttpURLConnection Plugin compatibility.
    • Update Plugin automatic test framework, fix inconsistent description about configuration.yml.
    • Update Plugin automatic test framework, add expected data format of the log items.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.11.0(Jun 20, 2022)

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    • Fix cluster and namespace value duplicated(namespace value) in properties report.
    • Add layer field to event when reporting.
    • Remove redundant shade.package property.
    • Add servicecomb-2.x plugin and Testcase.
    • Fix NPE in gateway plugin when the timer triggers webflux webclient call.
    • Add an optional plugin, trace-sampler-cpu-policy-plugin, which could disable trace collecting in high CPU load.
    • Change the dateformat of logs to yyyy-MM-dd HH:mm:ss.SSS(was yyyy-MM-dd HH:mm:ss:SSS).
    • Fix NPE in elasticsearch plugin.
    • Grpc plugin support trace client async generic call(without grpc stubs), support Method type: UNARYSERVER_STREAMING.
    • Enhance Apache ShenYu (incubating) plugin: support trace grpc,sofarpc,motan,tars rpc proxy.
    • Add primary endpoint name to log events.
    • Fix Span not finished in gateway plugin when the gateway request timeout.
    • Support -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector in gRPC log report.
    • Fix tcnative libraries relocation for aarch64.
    • Add plugin.jdbc.trace_sql_parameters into Configuration Discovery Service.
    • Fix argument type name of Array in postgresql-8.x-plugin from java.lang.String[] to [Ljava.lang.String;
    • Add type name checking in ArgumentTypeNameMatch and ReturnTypeNameMatch
    • Highlight ArgumentTypeNameMatch and ReturnTypeNameMatch type naming rule in docs/en/setup/service-agent/java-agent/Java-Plugin-Development-Guide.md
    • Fix FileWriter scheduled task NPE
    • Optimize gRPC Log reporter to set service name for the first element in the streaming.(No change for Kafka reporter)

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.10.0(Apr 15, 2022)

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    • [Important] Namespace represents a subnet, such as kubernetes namespace, or 172.10... Make namespace concept as a part of service naming format.
    • [Important] Add cluster concept, also as a part of service naming format. The cluster name would be
      1. Add as {@link #SERVICE_NAME} suffix.
      2. Add as exit span's peer, ${CLUSTER} / original peer
      3. Cross Process Propagation Header's value addressUsedAtClient[index=8] (Target address of this request used on the client end).
    • Support Undertow thread pool metrics collecting.
    • Support Tomcat thread pool metric collect.
    • Remove plugin for ServiceComb Java Chassis 0.x
    • Add Guava EventBus plugin.
    • Fix Dubbo 3.x plugin's tracing problem.
    • Fix the bug that maybe generate multiple trace when invoke http request by spring webflux webclient.
    • Support Druid Connection pool metrics collecting.
    • Support HikariCP Connection pool metrics collecting.
    • Support Dbcp2 Connection pool metrics collecting.
    • Ignore the synthetic constructor created by the agent in the Spring patch plugin.
    • Add witness class for vertx-core-3.x plugin.
    • Add witness class for graphql plugin.
    • Add vertx-core-4.x plugin.
    • Renamed graphql-12.x-plugin to graphql-12.x-15.x-plugin and graphql-12.x-scenario to graphql-12.x-15.x-scenario.
    • Add graphql-16plus plugin.
    • [Test] Support to configure plugin test base images.
    • [Breaking Change] Remove deprecated agent.instance_properties configuration. Recommend agent.instance_properties_json.
    • The namespace and cluster would be reported as instance properties, keys are namespace and cluster. Notice, if instance_properties_json includes these two keys, they would be overrided by the agent core.
    • [Breaking Change] Remove the namespace from cross process propagation key.
    • Make sure the parent endpoint in tracing context from existing first ENTRY span, rather than first span only.
    • Fix the bug that maybe causing memory leak and repeated traceId when use gateway-2.1.x-plugin or gateway-3.x-plugin.
    • Fix Grpc 1.x plugin could leak context due to gRPC cancelled.
    • Add JDK ThreadPoolExecutor Plugin.
    • Support default database(not set through JDBC URL) in mysql-5.x plugin.

    Documentation

    • Add link about java agent injector.
    • Update configurations doc, remove agent.instance_properties[key]=value.
    • Update configurations doc, add agent.cluster and update agent.namespace.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.9.0(Jan 30, 2022)

    Happy Chinese New Year! :fireworks::fireworks::fireworks::gift:

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    • Support Transaction and fix duplicated methods enhancements for jedis-2.x plugin.
    • Add ConsumerWrapper/FunctionWrapper to support CompletableFuture.x.thenAcceptAsync/thenApplyAsync.
    • Build CLI from Docker instead of source codes, add alpine based Docker image.
    • Support set instance properties in json format.
    • Upgrade grpc-java to 1.42.1 and protoc to 3.17.3 to allow using native Mac osx-aarch_64 artifacts.
    • Add doc about system environment variables to configurations.md
    • Avoid ProfileTaskChannelService.addProfilingSnapshot throw IllegalStateException(Queue full)
    • Increase ProfileTaskChannelService.snapshotQueue default size from 50 to 4500
    • Support 2.8 and 2.9 of pulsar client.
    • Add dubbo 3.x plugin.
    • Fix TracePathMatcher should match pattern "**" with paths end by "/"
    • Add support returnedObj expression for apm-customize-enhance-plugin
    • Fix the bug that httpasyncclient-4.x-plugin puts the dirty tracing context in the connection context
    • Compatible with the versions after dubbo-2.7.14
    • Follow protocol grammar fix GCPhrase -> GCPhase.
    • Support ZGC GC time and count metric collect. (Require 9.0.0 OAP)
    • Support configuration for collecting redis parameters for jedis-2.x and redisson-3.x plugin.
    • Migrate base images to Temurin and add images for ARM.
    • (Plugin Test) Fix compiling issues in many plugin tests due to they didn't lock the Spring version, and Spring 3 is incompatible with 2.x APIs and JDK8 compiling.
    • Support ShardingSphere 5.0.0
    • Bump up gRPC to 1.44.0, fix relative CVEs.

    Documentation

    • Add a FAQ, Why is -Djava.ext.dirs not supported?.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.8.0(Oct 31, 2021)

    Download

    https://skywalking.apache.org/downloads/

    Notice

    Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.

    Changes by Version

    • Split Java agent from the main monorepo. It is a separate repository and going to release separately since 8.8.0.
    • Support JDK 8-17 through upgrading byte-buddy to 1.11.18.
    • Upgrade JDK 11 in dockerfile and remove unused java_opts.
    • DataCarrier changes a #consume API to add properties as a parameter to initialize consumer when use Class<? extends IConsumer<T>> consumerClass.
    • Support Multiple DNS period resolving mechanism
    • Modify Tags.STATUS_CODE field name to Tags.HTTP_RESPONSE_STATUS_CODE and type from StringTag to IntegerTag, add Tags.RPC_RESPONSE_STATUS_CODE field to hold rpc response code value.
    • Fix kafka-reporter-plugin shade package conflict
    • Add all config items to agent.conf file for convenient containerization use cases.
    • Advanced Kafka Producer configuration enhancement.
    • Support mTLS for gRPC channel.
    • fix the bug that plugin record wrong time elapse for lettuce plugin
    • fix the bug that the wrong db.instance value displayed on Skywalking-UI when existing multi-database-instance on same host port pair.
    • Add thrift plugin support thrift TMultiplexedProcessor.
    • Add benchmark result for exception-ignore plugin and polish plugin guide.
    • Provide Alibaba Druid database connection pool plugin.
    • Provide HikariCP database connection pool plugin.
    • Fix NumberFormat exception in jdbc-commons plugin when MysqlURLParser parser jdbcurl
    • Provide Alibaba Fastjson parser/generator plugin.
    • Provide Jackson serialization and deserialization plugin.
    • Fix a tracing context leak of SpringMVC plugin, when an internal exception throws due to response can't be found.
    • Make GRPC log reporter sharing GRPC channel with other reporters of agent. Remove config items of agent.conf, plugin.toolkit.log.grpc.reporter.server_host, plugin.toolkit.log.grpc.reporter.server_port, and plugin.toolkit.log.grpc.reporter.upstream_timeout. rename plugin.toolkit.log.grpc.reporter.max_message_size to log.max_message_size.
    • Implement Kafka Log Reporter. Add config item of agnt.conf, plugin.kafka.topic_logging.
    • Add plugin to support Apache HttpClient 5.
    • Format SpringMVC & Tomcat EntrySpan operation name to METHOD:URI.
    • Make HTTP method in the operation name according to runtime, rather than previous code-level definition, which used to have possibilities including multiple HTTP methods.
    • Fix the bug that httpasyncclient-4.x-plugin does not take effect every time.
    • Add plugin to support ClickHouse JDBC driver.
    • Fix version compatibility for JsonRPC4J plugin.
    • Add plugin to support Apache Kylin-jdbc 2.6.x 3.x 4.x
    • Fix instrumentation v2 API doesn't work for constructor instrumentation.
    • Add plugin to support okhttp 2.x
    • Optimize okhttp 3.x 4.x plugin to get span time cost precisely
    • Adapt message header properties of RocketMQ 4.9.x

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
Owner
The Apache Software Foundation
The Apache Software Foundation
Java Agent for Memory Measurements

Overview Jamm provides MemoryMeter, a Java agent for all Java versions to measure actual object memory use including JVM overhead. Use To use MemoryMe

Jonathan Ellis 624 Dec 28, 2022
A java agent to generate method mappings to use with the linux `perf` tool

perf-map-agent A java agent to generate /tmp/perf-<pid>.map files for just-in-time(JIT)-compiled methods for use with the Linux perf tools. Build Make

null 1.5k Jan 1, 2023
A sidecar to run alongside Trino to gather metrics using the JMX connector and expose them in different formats using Apache velocity

Overview A sidecar to run alongside Trino to gather metrics using the JMX connector and expose them in different formats using Apache Velocity. Click

BlueCat Engineering 4 Nov 18, 2021
One file java script for visualizing JDK flight recorder execution logs as flamegraphs without any dependencies except Java and a browser.

Flamegraph from JFR logs Simple one file Java script to generate flamegraphs from Java flight recordings without installing Perl and the Brendan Gregg

Billy Sjöberg 17 Oct 2, 2022
JVM Explorer is a Java desktop application for browsing loaded class files inside locally running Java Virtual Machines.

JVM Explorer JVM Explorer is a Java desktop application for browsing loaded class files inside locally running Java Virtual Machines. Features Browse

null 109 Nov 30, 2022
Java memory allocation profiler

Aprof - Java Memory Allocation Profiler What is it? The Aprof project is a Java Memory Allocation Profiler with very low performance impact on profile

Devexperts 211 Dec 15, 2022
Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events

async-profiler This project is a low overhead sampling profiler for Java that does not suffer from Safepoint bias problem. It features HotSpot-specifi

null 5.8k Jan 3, 2023
BTrace - a safe, dynamic tracing tool for the Java platform

btrace A safe, dynamic tracing tool for the Java platform Version 2.1.0 Quick Summary BTrace is a safe, dynamic tracing tool for the Java platform. BT

btrace.io 5.3k Jan 9, 2023
Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)

GCViewer 1.36 GCViewer is a little tool that visualizes verbose GC output generated by Sun / Oracle, IBM, HP and BEA Java Virtual Machines. It is free

null 4.1k Jan 4, 2023
Get Method Sampling from Java Flight Recorder Dump and convert to FlameGraph compatible format.

Note: Travis has removed the support for Oracle JDK 8. Therefore the build status is removed temporarily. Converting JFR Method Profiling Samples to F

M. Isuru Tharanga Chrishantha Perera 248 Dec 16, 2022
Tool for creating reports from Java Flight Recorder dumps

jfr-report-tool Tool for creating reports from Java Flight Recorder dumps. Influenced by https://github.com/chrishantha/jfr-flame-graph . Kudos to @ch

Lari Hotari 50 Oct 28, 2022
Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

JITWatch Log analyser and visualiser for the HotSpot JIT compiler. Video introduction to JITWatch video Slides from my LJC lightning talk on JITWatch

AdoptOpenJDK 2.8k Jan 3, 2023
Java monitoring for the command-line, profiler included

jvmtop is a lightweight console application to monitor all accessible, running jvms on a machine. In a top-like manner, it displays JVM internal metri

null 1.2k Jan 6, 2023
PerfJ is a wrapper of linux perf for java programs.

PerfJ PerfJ is a wrapper of linux perf for java programs. As Brendan Gregg's words In order to profile java programs, you need a profiler that can sam

Min Zhou 353 Jan 2, 2023
OOM diagnostics for Java.

Polarbear A tool to help diagnose OutOfMemoryError conditions. Polarbear helps track down the root cause of OutOfMemoryError exceptions in Java. When

Cue 20 May 14, 2019
Inline raw ASM instructions in Java

asm-inline At first I thought: Oh, I can make an optimization transformer for Proguard And then this happened. Example: public class Test { public

null 27 Dec 8, 2022
Some utility classes around java records

record-util Some utility classes around java records On the menu MapTrait Transform any record to a java.util.Map just by implementing the interface M

Rémi Forax 32 Apr 6, 2022
Terminal UI JMX (Java management extension) viewer

JMXViewer Terminal UI JMX (Java management extension) viewer Usage java -jar jmxviewer.jar [pid] The PID is optional. If it is not provided, the appli

Ivan Yurchenko 20 Sep 15, 2022
Inspect pmap -X output of a java process, requires Java11, likely not 100% accurate

java-pmap-inspector Inspect pmap -X output of a java process, requires Java 11, likely not 100% accurate. Usage examples $ pmap -X pid > pmap.txt; jav

Brice Dutheil 7 Jul 6, 2022