Как carbon-relay форматирует данные о маринадах?

Я работаю над созданием инструмента для работы, который прослушивает выходные данные реле Graphite/Carbon и выполняет некоторый анализ. Вывод соответствует спецификации Python pickle, как подробно описано здесь.

Тем не менее, на всю жизнь я не могу описать данные. Я использую Jython (версия 2.7), чтобы попытаться позвонить cPickle.loads на входе, и он терпит неудачу каждый раз. Я знаю, что Carbon добавляет заголовок к своей полезной нагрузке, но даже после удаления я все еще не могу загрузить данные.

Я попытался удалить все символы Юникода из данных и даже повторил все шаги, пытаясь удалить данные и, в случае неудачи, удалить первый / последний символ и повторить попытку, но безрезультатно.

Я чувствую, что где-то в середине углеродной полезной нагрузки есть некоторые данные, которые мне нужно проанализировать, но документация по их протоколу рассола очень скудна. Если кто-то знаком с Carbon или пробовал что-то подобное, любой совет будет высоко ценится.

Ура,
Комплект

PS вот фрагмент кода, который я использую, чтобы попытаться описать:

public static Object unpickleObject(String pickled)
{
    PyString pString = new PyString(pickled);
    PyObject loads = (PyObject) cPickle.loads(pString);
    return loads.__tojava__(Object.class); //this cast may be redundant

}

0 ответов

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