Graphite server не показывает новые данные, отправленные с Java


Я пытаюсь отправить простые текстовые данные на сервер graphite со следующим кодом:

      try (
            Socket socket = new Socket("companyHost", 2003);
            Writer writer = new OutputStreamWriter(socket.getOutputStream());) {

        Long timestamp = System.currentTimeMillis() / 1000;
        System.out.println(timestamp);

        String sentMessage = "graphite.carbon.local.test.showone 1 " + timestamp;
        System.out.println(sentMessage);
        writer.write(sentMessage);
        writer.flush();

    } catch (IOException e) {

        e.printStackTrace();
    }
Но когда я проверяю сервер carbon в разделе companyHost: port в моем веб-браузере, моих данных там нет, под графитом ничего нет.углерод.местный. Я что-нибудь упустил?

Мой вывод в консоли выглядит нормально (без ошибок / исключений):

1409233165
graphite.carbon.local.test.showone 1 1409233165

Я постараюсь предоставить больше информации, если потребуется.

2 4

2 ответа:

Да, я решил ее еще в августе.

Если я правильно помню, все, что мне нужно было сделать, это добавить новую строку char "\n" в конце сообщения.

Как указано в документации graphite, формат сообщения следующий:

metric_path value timestamp\n

Один из примеров, найденных в интернете - https://www.hostedgraphite.com/docs/languageguide/lg_java.html имеет опечатку.

Метка времени должна быть предоставлена в соответствии с метрическим путем и значением как -

dos.writeBytes("YOUR-API-KEY.foo 1.2 <timestamp>\n");