Should you use Java Agents to instrument your application?

Trade-offs around Java agent-based instrumentation

Jonatan Ivanov

If you have worked with any APMs (or other monitoring/observability products) under Java, you might have heard something like: [paraphrased-marketing-text] to track everything from performance issues to errors within your application, just attach the Java Agent to your app and all of your problems are gone [/paraphrased-marketing-text].

You can read things like this in product docs, or blog posts or hear from sales, marketing, and even in conference talks. What I think you can hear less are the trade-offs, so let’s dive a little bit into that.

How Not to Measure Elapsed Time

Jonatan Ivanov

The rabbit hole goes infinitely deep if you want to do latency measurements, benchmarking, and performance testing/tuning/analysis. They are very hard to do right and it is very easy to mess them up. In this post, I would like to show you a very common mistake (that is just 0.000001‰ of the tip of the iceberg) and an extremely simple solution to fix it.

Clamshell: 2021-05-08

Recent news in tech in a clamshell

Jonatan Ivanov
  • Java Support Roadmap
  • Java Pub House - Episode 96. Micrometer
  • University duo thought it would be cool to sneak bad code into Linux as an experiment
  • Write a Good Dockerfile in 19 ‘Easy’ Steps
  • CodeCov Security Breach
  • Crypto miners are killing free CI
  • WebAssembly Summit
  • Fig
  • Starship
  • skopeo

Clamshell: 2021-04-17

Recent news in tech in a clamshell

Jonatan Ivanov
  • Proposed schedule for JDK 17
  • Gradle 7.0
  • Announcing Spring Native Beta
  • Gradle Test Logger Plugin
  • Git clone vulnerability
  • security.txt
  • Ubiquitous Speakers 2019
  • Episode 95. Ludicruos speed! Practical GraalVM
  • OffHeap 60. JDK 16, Spring Native, Micronaut, Microprofile and GraalVM have new releases!
  • The Backfire Effect
  • XOR Tricks
  • OSS-Fuzz: Continuous Fuzzing for Open Source Software

Clamshell: 2021-03-16

Recent news in tech in a clamshell

Jonatan Ivanov
  • Java 16 is now available!
  • Java Recognized as the Favorite Programming Language
  • Dolt
  • is-website-vulnerable
  • GitDorker
  • basic-computer-games
  • yawkat/code-browser

Clamshell: 2021-03-03

Recent news in tech in a clamshell

Jonatan Ivanov
  • Devnexus 2021
  • Schedule for Foojay Virtual JUG Tour
  • 2021 State of Chaos Engineering
  • JDK 17 Early-Access Builds
  • JEP draft: Frozen Arrays
  • Deciphering the stack trace in JVM crash logs
  • Awesome CTO
  • URH
  • Microsoft Azure Attestation
  • git-notify

Clamshell: 2021-02-16

Recent news in tech in a clamshell

Jonatan Ivanov
  • Devnexus
  • The new features in Java 16
  • What’s new in Spring Boot 2.4
  • github1s
  • Welcome to VS Code for Java
  • TeaVM
  • Java Ecosystem Survey 2021
  • Java Pub House 94. Oh, put on your hat Dr. Watson, we are sleuthing this Heap Dump
  • OffHeap 58. New Year, new rules, new bans!

Clamshell: 2021-02-08

Recent news in tech in a clamshell

Jonatan Ivanov
  • Java 16 Is Coming!
  • Java Predictions for 2021
  • JVM JIT 101
  • News from GitHub Universe
  • Upptime
  • Exfiltrating Data from Air-Gapped Computers via Wi-Fi Signals (Without Wi-Fi Hardware)
  • Electronic CS textbooks
  • bettercap
  • tmpsms
  • Naming Cheatsheet
  • Wasmer is Generally Available

Confusing Java Strings

I do not think it means what you think it means

Jonatan Ivanov

In this article, I would like to show you a couple of confusing things in connection with Java Strings and give you a few suggestions to avoid issues with them. I also prepared a GitHub repo for you where you can find some code that you can use to try the examples out on your own:

Clamshell: 2020-11-17

Recent news in tech in a clamshell

Jonatan Ivanov
  • Maven: verify or clean install?
  • Java & containers: what I wish I knew before I have used it
  • Project Amber Panel Discussion with Stuart Marks & Friends
  • Java Pub House 93. Not your Grandpa’s Serialization Part 2
  • OffHeap 55. JDKs are released! Microprofile 4.0, OSGI in Eclipse, Crypto backdoors and API Courts
  • Inside Java Episode 7 - The Vector API
  • Raspberry Pi 400
  • Alex
  • Deploy 2020
  • Jfokus 2021
  • DevNexus 2021