1

目前我们正在使用 statsd java 客户端将某些应用程序数据推送到石墨。我们使用这些数据在 Grafana 中构建仪表板。

我打算切换到 Grafana Loki。我想知道是否可以使用像 statsd 这样的守护进程将某些数据直接推送到 Grafana Loki。是否有任何 java 客户端库可以这样做。如果是这样,请给我 Maven 存储库链接。

4

3 回答 3

1

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();
    }
}
于 2021-11-03T02:58:02.117 回答
1

您可以尝试 Loki4j Logback appender https://github.com/loki4j/loki-logback-appender(披露:我是它的作者)。

Loki4j 是 Loki 的纯 Java 客户端,具有灵活的标签和日志消息格式选项。它支持 Loki 推送 API 的 JSON 和 Protobuf 风格。您应该能够使用 Loki4j 将您想要的任何数据直接推送到 Loki。

于 2020-11-17T09:42:58.087 回答
1

我已经创建了一个用于将日志推送到 Loki的Java 客户端。在它之上构建了一个 log4j appender(在我的雇主那里,它用于生产每天推送 10 GB 的日志)。

它被设计为在日志路径上无锁和无分配。使用 Netty 发送批次到 Loki 分配,但它非常有效。

于 2021-02-27T22:23:04.750 回答