JAVAPROGLIB Telegram 6430
🕯 Живая телеметрия без overhead

Если вам нужно анализировать производительность приложения в реальном времени, но профилировщики вроде VisualVM или async-profiler слишком тяжелые, то Java Flight Recorder (JFR) Event Streaming — ваш новый лучший друг.

JFR давно встроен в JVM и собирает метрики без ощутимого влияния на производительность (накладные расходы <1%). Раньше, чтобы получить данные, нужно было снимать дамп и разбирать его постфактум. Начиная с Java 14 пакет jdk.jfr.consumer предоставляет API, благодаря которому можно стримить события в реальном времени прямо в приложение.

🔹 Пример использования

Допустим, вы хотите следить за количеством вызовов System.gc() (или любыми другими JVM-событиями):
import jdk.jfr.consumer.*;

public class JfrStreamingExample {
public static void main(String[] args) {
try (var stream = EventStream.openRepository()) {
stream.onEvent("jdk.GarbageCollection", event ->
System.out.println("GC event: " + event.getLong("gcId"))
);
stream.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}

🔹 Что происходит

▪️ EventStream.openRepository() — подключается к JFR и слушает события онлайн
▪️ onEvent("jdk.GarbageCollection", callback) — подписывается на сборку мусора
▪️ stream.start(); — запускает стриминг

🔹 Где полезно

1️⃣ Мониторинг продакшена — следите за GC, JIT-компиляцией, блокировками потоков без перезапуска JVM.
2️⃣ Анализ нагрузки — получайте данные о CPU, аллокациях памяти, I/O в реальном времени.
3️⃣ Трассировка медленных запросов — находите узкие места без включения дорогих профилировщиков.

🔹 Что нужно знать

▪️ Работает без agent'ов и почти без overhead.
▪️ Доступно из коробки в OpenJDK 14+.
▪️ Встроенные события JVM уже можно стримить, но для своих нужно создать Custom JFR Events.

💬 Вы уже пробовали JFR Event Streaming?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5🥰1👏1



tgoop.com/javaproglib/6430
Create:
Last Update:

🕯 Живая телеметрия без overhead

Если вам нужно анализировать производительность приложения в реальном времени, но профилировщики вроде VisualVM или async-profiler слишком тяжелые, то Java Flight Recorder (JFR) Event Streaming — ваш новый лучший друг.

JFR давно встроен в JVM и собирает метрики без ощутимого влияния на производительность (накладные расходы <1%). Раньше, чтобы получить данные, нужно было снимать дамп и разбирать его постфактум. Начиная с Java 14 пакет jdk.jfr.consumer предоставляет API, благодаря которому можно стримить события в реальном времени прямо в приложение.

🔹 Пример использования

Допустим, вы хотите следить за количеством вызовов System.gc() (или любыми другими JVM-событиями):

import jdk.jfr.consumer.*;

public class JfrStreamingExample {
public static void main(String[] args) {
try (var stream = EventStream.openRepository()) {
stream.onEvent("jdk.GarbageCollection", event ->
System.out.println("GC event: " + event.getLong("gcId"))
);
stream.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}

🔹 Что происходит

▪️ EventStream.openRepository() — подключается к JFR и слушает события онлайн
▪️ onEvent("jdk.GarbageCollection", callback) — подписывается на сборку мусора
▪️ stream.start(); — запускает стриминг

🔹 Где полезно

1️⃣ Мониторинг продакшена — следите за GC, JIT-компиляцией, блокировками потоков без перезапуска JVM.
2️⃣ Анализ нагрузки — получайте данные о CPU, аллокациях памяти, I/O в реальном времени.
3️⃣ Трассировка медленных запросов — находите узкие места без включения дорогих профилировщиков.

🔹 Что нужно знать

▪️ Работает без agent'ов и почти без overhead.
▪️ Доступно из коробки в OpenJDK 14+.
▪️ Встроенные события JVM уже можно стримить, но для своих нужно создать Custom JFR Events.

💬 Вы уже пробовали JFR Event Streaming?

BY Библиотека джависта | Java, Spring, Maven, Hibernate


Share with your friend now:
tgoop.com/javaproglib/6430

View MORE
Open in Telegram


Telegram News

Date: |

Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator. But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). Each account can create up to 10 public channels Select “New Channel”
from us


Telegram Библиотека джависта | Java, Spring, Maven, Hibernate
FROM American