6 ms·
Flight Recorder becomes part of OpenJDK
- muxator 9y agoI used to remove it from my base Java containers, in order not to risk a legal litigation from Oracle (just in case). One row less in my Dockerfiles.
- deleted 9y ago[deleted]
- dnomad 9y agoIronically there was never any real legal threat. The whole world freaked out over one totally fabricated story by a rag like The Register and everybody thought Flight Recorder was somehow going to let Oracle sue them. In reality the "commercial features" were free for developer machines, test environments and production environments for "evaluation purposes." It was much more of a CYA thing then some imminent legal apocalypse. That said having it be free in OpenJDK is great.
- theshrike79 9y agoTo be honest, Oracle has a history of being extremely litigous and their licensing structure is arcane at best. The best option is just to stay away from Oracle Java and Oracle Mysql stuff unless you've vetted their use with lawyers on both sides.
- resoluteteeth 9y agoDidn't they just start suing people for using it without paying two years ago? What was the point of that if they were just going to open source it?
- KMag 9y agoMy best guess is that their plan A of getting a lot of money out of unauthorized users didn't pan out, so they switched to plan B: open-source it in order to make the ecosystem more attractive and discourage people from leaving the ecosystem. Trying one thing, gathering data, and later deciding on another course of action isn't necessarily inconsistent.
- DannyB2 9y agoAll it means is that Oracle will do the right thing after exhausting all other options.
- kevinconaway 9y agoWhile I still think YourKit is a better profiler and has a better UX, the ability to start/stop/dump metrics collection on a running system without enabling an agent or adding JVM args is a killer addition to JFR, one that I don't think YourKit will be able to complete with.
- dionian 9y agowill probably use FR for quick and easy stuff but still break out yourkit when the big problems come up
- tmd83 9y agoThere's really no comparison between them is there? Regular profiler has their usage but don't they change the runtime characteristic a lot specially in tight loop and cpu bound situations? The biggest advantage of JFR are two folds running it in production, problems that are hard to reproduce and secondly not getting wrong data because the profile has changed the characteristic, forced de-optimization on the code and such.
- karianna 9y agoExactly this. FR will allow APM vendors (and individual teams) to build solutions on top of a continuous lightweight, always on profiler. It's actually a bit of a game changer for Java / JVM performance
- RandomBK 9y agoIt looks like the only major change today was a move from "Submitted" to "Candidate". This is a good step forward, but it's still far from standardization.
- needusername 9y agoI don't think there is a plan to standardize it. They "just" move the code from the Oracle repo to the OpenJDK repo. I wouldn't assume J9 or Zing will adopt this.
- RandomBK 9y agoOpps, I believe you are correct. I haven't reviewed the proposal in detail, but are they planning to standardize the event generation side of things? (the parts exposed to running Java applications)?
- needusername 9y agoI am not aware of any such plans. There is a supported API starting with Java 9 http://hirt.se/blog/?p=870 http://hirt.se/blog/?p=870 but it is "JDK" (Open/Oracle JDK and derivates) specific and lives in the jdk.jfr module and package.
- kodablah 9y agoSo, now the inevitable question comes up again: Why use the OpenJDK downloaded/packaged by Oracle? I use Zulu builds [0] for everything, and the AdoptOpenJDK builds site has removed its not-for-production-use banner [1] (at least I don't see it anymore, not sure if intentional). 0 - https://www.azul.com/downloads/zulu/ https://www.azul.com/downloads/zulu/ 1 - https://adoptopenjdk.net/ https://adoptopenjdk.net/
- voltagex_ 9y agoBecause my organisation will shit bricks if they see me running something "not official" in production. Oracle is "safe" if you're upper management.
- jacques_chester 9y agoA number of companies will happily stand behind OpenJDK builds. I work for Pivotal, we build the JDKs and JREs that we ship to customers (and a lot of other languages too). Red Hat do too.
- voltagex_ 9y agoThat's a good point, thanks.
- karianna 9y agoI'm the head Cat Herder (so to speak) for the AdoptOpenJDK OpenJDK binary build farm. The OpenJDK builds we are producing pass the regular OpenJDK tests, a series of system tests and the official TCK/JCK. The quality bar is high and once we've stabilised this process for Java 8,9,10, 11+ and all of the platforms (AIX, ARM 32/64, Windows, Mac, Linux, z390, zOS etc) then we'll be broadly advertising its service. Whether or not we earn the trust of enterprise, we'll have to see :-).
- jacques_chester 9y ago
- clhodapp 9y agoIt's weird to me that there seems to be a trend of using "flight" as a metaphor for the runtime of our code. We have "preflight checks" in CORS and now a "flight recorder" on the JVM. In their canonical usage, these are mundane, self-describing terms. If we like the wording from the aviation industry and want to appropriate it, we don't have to bring the word "flight" along for the ride. We could just as easily have "prerequest checks" and a "JVM Recorder"... and yet here we are.
- bartread 9y agoIt goes beyond the runtime: the way we describe work in progress as "in flight" is somewhat irritating. I've caught myself using this quite a lot recently: I first heard it used around 4 years ago. Since then it's somehow wheedled it's way into my daily lexicon. It's a habit I'm trying to break.
- freehunter 9y agoI find it strange that in the IT world we find ourselves constantly annoyed by the language we’ve collectively chosen to use and seek to find other ways to describe something that already has an agreed upon term. I wonder if other industries do this to themselves too. Complaining about “in flight” or “cloud” or “serverless” even though everyone understands what those terms mean seems like bikeshedding at its worst.
- Moru 9y agoI have always tried to talk in normal words all the time. It makes it much easier when I need to explain to a co-worker or the boss how something works or why it has to be done before we can take care of the visible problem. I try not to make others feel stupid just because they don't know the keywords. Sure it would be easier and faster to talk but if I'm not understood it's meaningless.
- freehunter 9y agoOn the other hand, if you use the term "JVM Recorder" while everyone else is using the correct name "Flight Recorder", you're now forcing everyone to use non-standard language just for your benefit. Far too often I hear people argue "it's not in the cloud, it's on a server" which makes people think it's hosted on-prem on a server that we own and control and maintain, but it's not. It's on someone else's network, on someone else's server, a server that they own and control and perform the maintenance for. But that's a really long winded response, so luckily we agreed on a single word to represent that concept: cloud. Like it or not, words have meanings and those meanings have definitions. If someone isn't likely to understand the word, explain it using its definition. Don't just unilaterally switch to a completely different word. My CEO might not know what "serverless" means, but once I explain it using its commonly accepted definition she can now read the commonly accepted word in a trade magazine and understand what they're talking about. Otherwise she'd never know to link the word to its definition. That's the basic concept of language.
- tmd83 9y agoI am really to see this finally going in having hard about this in last JavaOne. My biggest hope is to see other build on top of this. E.g. - frameworks, libraries, web-servers exposing their metric through this. Some building other ways to consume the metric from a running recorder. Right now you have to dump it in file and pull that to JMC. But imagine a monitoring tool pulling the data out of the recoding engine on the fly and provide storage, live visualization/analysis. A lock free low overhead in-memory collector inside the JVM seems very useful even without considering some of the very useful metric that JFR have right now.
- karianna 9y agoDisclaimer: I'm the CEO of jClarity - a Java/JVM APM vendor. You'll see plenty of APM vendors building on top of this technology. For years we've all tried to build lightweight mechanisms to get vital metrics out of the JVM with regards to Object and Execution profiling and although some strong progress was being made (Honest Profiler, Async Profiler et al), none of them are as comprehensive as Flight Recorder (Oracle did have the advantage of owning Java there). Our own plans will be to refactor our ML diagnostic engine on top of Flight Recorder data. We're really, really looking forward to this!
- tmd83 9y agoThanks for confirming it. I expected this to be true but assumed I would only be sure when someone releases a product or blogs about an impending one. I also assume freed from generating the basic metric and the lightweight recording infrastructure will free up resources for more extensive metric and analysis. It would also allow for more innovative exploration. If I understand correctly it also provides some very helpful building block like high performance stacktrace and timing. I think fast reliable timing (the JVM is widely fractured in it's timer performance) would be helpful even for regular users like me.
- karianna 9y agoYou're totally correct. We (jClarity) will likely ditch our proprietary, hand rolled metrics gathering (which we built at great pain wince) in favour of FR. I'd be pretty surprised if all of the other vendors don't do something similar (Why NIH).