Не в состоянии генерировать следы lttng из образца Java
Я выполняю образец Java для входа в сеанс трассировки Lttng. Для этого я использую библиотеку lttng-ust-jul & java.
Я выполнил все шаги, приведенные здесь: руководство по lttng java Но все равно lttng view ничего не выводит... означает, что ничего не отслеживалось по файлам сеанса.
Вот подробные шаги, которые я выполнил, и их соответствующие выводы:
Test.Java:
import java.util.logging.Logger;
import java.util.logging.Level;
import org.lttng.ust.agent.LTTngAgent;
public class Test
{
private static final int answer = 42;
public static void main(String[] argv) throws Exception
{
// create a logger
Logger logger = Logger.getLogger("jello");
// call this as soon as possible (before logging)
LTTngAgent lttngAgent = LTTngAgent.getLTTngAgent();
logger.setLevel(Level.FINEST);
// log at will!
logger.info("some info");
logger.warning("some warning");
Thread.sleep(500);
logger.finer("finer information; the answer is " + answer);
Thread.sleep(123);
logger.severe("error!");
// not mandatory, but cleaner
lttngAgent.dispose();
}
}
Команды:
Создать новую сессию
Session newSession created.
Traces will be written in /home/XXX/lttng-traces/newSession-20160308-005717
lttng enable-event -j -a
All JUL events are enabled in channel channel0
Начать
Tracing started for session newSession
javac -cp /usr/share/java/liblttng-ust-agent.jar Test.java
java -cp /usr/share/java/liblttng-ust-agent.jar:. Тестовое задание
Mar 08, 2016 12:58:54 AM Test main
INFO: some info
Mar 08, 2016 12:58:54 AM Test main
WARNING: some warning
Mar 08, 2016 12:58:55 AM Test main
SEVERE: error!
остановка
Waiting for data availability.
Tracing stopped for session newSession
взгляд
Trace directory: /home/XXX/lttng-traces/newSession-20160308-005717
Желаемый вывод команды "lttng view" должен быть похож на
[22:46:14.940125765] (+0.000004944) XXX : { cpu_id = 8 }, { my_string_field = "some info" }
[22:46:14.940131743] (+0.000005978) XXX : { cpu_id = 8 }, { my_string_field = "some warning" }
...
Я также пытался от пользователя root.. поэтому возможность того, что у пользователя нет прав на запись в файлы, может быть исключена.
Кроме того, образец C++ работает нормально, т.е. Образец способен отслеживать данные. Таким образом, мы можем даже исключить возможность неправильной настройки lttng.
Machine Configuration:
Ubuntu 15.04
lttng version - 2.7
Как я могу продолжить отладку этой проблемы с помощью jul?
1 ответ
Одна вещь, которую вы могли бы сделать, чтобы немного решить проблему, это выпустить lttng list -j
Команда во время одного из Thread.sleep()
звонки и, возможно, немного увеличить их продолжительность. Зарегистрированный регистратор "jello" должен появиться в списке. Если нет, то вы, вероятно, знаете, что проблема, вероятно, связана с агентом Java, а не со стороной UST.
Я бы также предложил взглянуть на git master версию LTTng-UST. Большая доработка агента Java была сделана. В предыдущей версии использовались странные механизмы отражения для загрузки плагинов JUL и log4j, и в некоторых случаях ошибки происходили молча. Это может быть то, что вы испытываете здесь.
Новая версия, которая должна быть выпущена с LTTng 2.8, вводит новый API, который является намного более явным. Приложение напрямую контролирует обработчики журналов, и об общих ошибках (не удается найти классы Java, не удается найти собственную библиотеку и т. Д.) Следует немедленно сообщать о них. Вы можете взглянуть на новый API в обновленных примерах.
Во всех случаях убедитесь, что вы используете одинаковые версии агента Java, lttng-ust и lttng-tools (либо 2.7, либо 2.8/master), и что в системе не существует другой версии, чтобы избежать ошибок совместимости.