Не в состоянии генерировать следы 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), и что в системе не существует другой версии, чтобы избежать ошибок совместимости.

Другие вопросы по тегам