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 ответа:
Да, я решил ее еще в августе.
Если я правильно помню, все, что мне нужно было сделать, это добавить новую строку 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");