@loggerjs/loki 0.0.2 → 0.3.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.
Files changed (2) hide show
  1. package/README.md +45 -4
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,20 +1,61 @@
1
1
  # @loggerjs/loki
2
2
 
3
- Grafana Loki push transport for loggerjs.
3
+ > Push LoggerJS logs to Grafana Loki.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@loggerjs/loki.svg)](https://www.npmjs.com/package/@loggerjs/loki)
6
+ [![license](https://img.shields.io/npm/l/@loggerjs/loki)](../../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
- The transport sends Loki JSON push payloads and groups events by stream labels.
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.2",
3
+ "version": "0.3.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.2"
42
+ "@loggerjs/core": "0.3.0"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "pnpm run clean && pnpm run build:js && pnpm run build:types",