@loggerjs/loki 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,20 +1,61 @@
|
|
|
1
1
|
# @loggerjs/loki
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Push LoggerJS logs to Grafana Loki.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@loggerjs/loki)
|
|
6
|
+
[](../../LICENSE)
|
|
7
|
+
|
|
8
|
+
A Grafana Loki push transport for [LoggerJS](../../README.md). It builds Loki JSON push payloads, groups events into streams by their labels, and POSTs them directly over `fetch` — no Loki client library required.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @loggerjs/loki
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
4
17
|
|
|
5
18
|
```ts
|
|
6
19
|
import { createLogger } from "@loggerjs/core";
|
|
7
20
|
import { lokiTransport } from "@loggerjs/loki";
|
|
8
21
|
|
|
9
22
|
const logger = createLogger({
|
|
23
|
+
category: ["api"],
|
|
10
24
|
transports: [
|
|
11
25
|
lokiTransport({
|
|
12
26
|
url: "https://loki.example.com/loki/api/v1/push",
|
|
13
|
-
labels: { service: "checkout" },
|
|
14
|
-
labelTags: ["tenant"],
|
|
27
|
+
labels: { service: "checkout" }, // static stream labels
|
|
28
|
+
labelTags: ["tenant"], // promote these event tags to labels
|
|
15
29
|
}),
|
|
16
30
|
],
|
|
17
31
|
});
|
|
18
32
|
```
|
|
19
33
|
|
|
20
|
-
|
|
34
|
+
## Options
|
|
35
|
+
|
|
36
|
+
| Option | Description |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `url` | **Required.** Loki push endpoint. |
|
|
39
|
+
| `labels` | Static stream labels applied to every entry. |
|
|
40
|
+
| `labelTags` | Event tag keys promoted to stream labels (keep cardinality low). |
|
|
41
|
+
| `defaultLabels` | Include default labels such as level and logger name. |
|
|
42
|
+
| `structuredMetadata` | Attach event fields as Loki structured metadata. |
|
|
43
|
+
| `tenantId` | Sets the `X-Scope-OrgID` multi-tenancy header. |
|
|
44
|
+
| `line` | Function that renders the log line per event. |
|
|
45
|
+
| `headers`, `fetchFn` | Custom headers and `fetch` implementation. |
|
|
46
|
+
|
|
47
|
+
The transport supports `logBatch` delivery. For queueing, retry, backoff, or circuit-breaker behavior, wrap it with `batchTransport()` / `retryTransport()` from `@loggerjs/core` (see [TRANSPORTS.md](../../docs/TRANSPORTS.md)).
|
|
48
|
+
|
|
49
|
+
> **Label cardinality matters.** Loki indexes by label set — promote only low-cardinality tags to labels, and keep high-cardinality fields in the log line or structured metadata.
|
|
50
|
+
|
|
51
|
+
## Subpath exports
|
|
52
|
+
|
|
53
|
+
`@loggerjs/loki/transport`
|
|
54
|
+
|
|
55
|
+
## Documentation
|
|
56
|
+
|
|
57
|
+
- [Transports](../../docs/TRANSPORTS.md) · [LoggerJS root README](../../README.md)
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
[MIT](../../LICENSE) © JS Kits
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loggerjs/loki",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Grafana Loki transport for loggerjs.",
|
|
5
5
|
"homepage": "https://github.com/jskits/loggerjs/tree/main/packages/loki#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"provenance": true
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@loggerjs/core": "0.0
|
|
42
|
+
"@loggerjs/core": "0.1.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "pnpm run clean && pnpm run build:js && pnpm run build:types",
|