目前我们正在使用 statsd java 客户端将某些应用程序数据推送到石墨。我们使用这些数据在 Grafana 中构建仪表板。
我打算切换到 Grafana Loki。我想知道是否可以使用像 statsd 这样的守护进程将某些数据直接推送到 Grafana Loki。是否有任何 java 客户端库可以这样做。如果是这样,请给我 Maven 存储库链接。
目前我们正在使用 statsd java 客户端将某些应用程序数据推送到石墨。我们使用这些数据在 Grafana 中构建仪表板。
我打算切换到 Grafana Loki。我想知道是否可以使用像 statsd 这样的守护进程将某些数据直接推送到 Grafana Loki。是否有任何 java 客户端库可以这样做。如果是这样,请给我 Maven 存储库链接。
TinyLoki - 用于桌面和 Android 的零依赖纯 Java 1.8 库。没有得到很好的优化,但很容易作为带有自定义标签的独立日志发送者采用。
https://github.com/mjfryc/mjaron-tinyloki-java
导入库:
dependencies {
implementation 'io.github.mjfryc:mjaron-tinyloki-java:0.2.2'
}
接着:
import pl.mjaron.tinyloki.*;
public class Sample {
public static void main(String[] args) {
LogController logController = TinyLoki.createAndStart(
"https://localhost/loki/api/v1/push", "user", "pass");
ILogStream stream = logController.createStream(
TinyLoki.info().l("customStaticLabelName","customVaue"));
stream.log("Hello world.");
//...
// Optionally at the application exit, send latest logs.
logController.softStop().hardStop();
}
}
您可以尝试 Loki4j Logback appender https://github.com/loki4j/loki-logback-appender(披露:我是它的作者)。
Loki4j 是 Loki 的纯 Java 客户端,具有灵活的标签和日志消息格式选项。它支持 Loki 推送 API 的 JSON 和 Protobuf 风格。您应该能够使用 Loki4j 将您想要的任何数据直接推送到 Loki。
我已经创建了一个用于将日志推送到 Loki的Java 客户端。在它之上构建了一个 log4j appender(在我的雇主那里,它用于生产每天推送 10 GB 的日志)。
它被设计为在日志路径上无锁和无分配。使用 Netty 发送批次到 Loki 分配,但它非常有效。