@balena/open-balena-api 52.0.5 → 52.0.6

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.
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Encodes Loki push requests (`logproto.PushRequest`) straight from plain objects. This produces the same bytes as
3
+ * building and serializing google-protobuf messages, but without allocating a message object per entry or encoding
4
+ * strings to UTF-8 in JavaScript, which were most of the CPU cost of each push.
5
+ *
6
+ * message PushRequest { repeated StreamAdapter streams = 1; }
7
+ * message StreamAdapter { string labels = 1; repeated EntryAdapter entries = 2; }
8
+ * message EntryAdapter {
9
+ * google.protobuf.Timestamp timestamp = 1;
10
+ * string line = 2;
11
+ * repeated LabelPairAdapter structuredMetadata = 3;
12
+ * }
13
+ * message Timestamp { int64 seconds = 1; int32 nanos = 2; }
14
+ * message LabelPairAdapter { string name = 1; string value = 2; }
15
+ */
16
+ export interface LokiLabelPair {
17
+ name: string;
18
+ value: string;
19
+ }
20
+ export interface LokiEntry {
21
+ seconds: number;
22
+ nanos: number;
23
+ line: string;
24
+ /** Usually shared between the entries of a request, it is encoded once per distinct array */
25
+ structuredMetadata: readonly LokiLabelPair[];
26
+ }
27
+ export interface LokiStream {
28
+ labels: string;
29
+ entries: LokiEntry[];
30
+ }
31
+ export declare const encodePushRequest: (streams: LokiStream[]) => Buffer;
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Encodes Loki push requests (`logproto.PushRequest`) straight from plain objects. This produces the same bytes as
3
+ * building and serializing google-protobuf messages, but without allocating a message object per entry or encoding
4
+ * strings to UTF-8 in JavaScript, which were most of the CPU cost of each push.
5
+ *
6
+ * message PushRequest { repeated StreamAdapter streams = 1; }
7
+ * message StreamAdapter { string labels = 1; repeated EntryAdapter entries = 2; }
8
+ * message EntryAdapter {
9
+ * google.protobuf.Timestamp timestamp = 1;
10
+ * string line = 2;
11
+ * repeated LabelPairAdapter structuredMetadata = 3;
12
+ * }
13
+ * message Timestamp { int64 seconds = 1; int32 nanos = 2; }
14
+ * message LabelPairAdapter { string name = 1; string value = 2; }
15
+ */
16
+ // Negative int32/int64 values are sign extended to 64 bits, which always takes 10 bytes
17
+ const varintSize = (v) => {
18
+ if (v < 0) {
19
+ return 10;
20
+ }
21
+ let size = 1;
22
+ while (v >= 128) {
23
+ v = Math.floor(v / 128);
24
+ size++;
25
+ }
26
+ return size;
27
+ };
28
+ // Each byte holds 7 bits of the value, lowest first, with 128 added to every byte but the last
29
+ const writeVarint = (buf, pos, v) => {
30
+ if (v < 0) {
31
+ let u = BigInt.asUintN(64, BigInt(v));
32
+ while (u >= 128n) {
33
+ buf[pos++] = Number(u % 128n) + 128;
34
+ u /= 128n;
35
+ }
36
+ buf[pos++] = Number(u);
37
+ return pos;
38
+ }
39
+ while (v >= 128) {
40
+ buf[pos++] = (v % 128) + 128;
41
+ v = Math.floor(v / 128);
42
+ }
43
+ buf[pos++] = v;
44
+ return pos;
45
+ };
46
+ /** The size of a length delimited field: tag, length and content */
47
+ const fieldSize = (len) => 1 + varintSize(len) + len;
48
+ const timestampSize = (seconds, nanos) => (seconds !== 0 ? 1 + varintSize(seconds) : 0) +
49
+ (nanos !== 0 ? 1 + varintSize(nanos) : 0);
50
+ /** Encodes the `structuredMetadata` fields of an entry, including their tags */
51
+ const encodeStructuredMetadata = (pairs) => {
52
+ let size = 0;
53
+ const sizes = pairs.map(({ name, value }) => {
54
+ const nameLen = Buffer.byteLength(name);
55
+ const valueLen = Buffer.byteLength(value);
56
+ const pairSize = (nameLen > 0 ? fieldSize(nameLen) : 0) +
57
+ (valueLen > 0 ? fieldSize(valueLen) : 0);
58
+ size += fieldSize(pairSize);
59
+ return { nameLen, valueLen, pairSize };
60
+ });
61
+ const buf = Buffer.allocUnsafe(size);
62
+ let pos = 0;
63
+ for (let i = 0; i < pairs.length; i++) {
64
+ const { nameLen, valueLen, pairSize } = sizes[i];
65
+ buf[pos++] = 0x1a; // field 3, length delimited
66
+ pos = writeVarint(buf, pos, pairSize);
67
+ if (nameLen > 0) {
68
+ buf[pos++] = 0x0a; // field 1, length delimited
69
+ pos = writeVarint(buf, pos, nameLen);
70
+ pos += buf.write(pairs[i].name, pos, nameLen, 'utf8');
71
+ }
72
+ if (valueLen > 0) {
73
+ buf[pos++] = 0x12; // field 2, length delimited
74
+ pos = writeVarint(buf, pos, valueLen);
75
+ pos += buf.write(pairs[i].value, pos, valueLen, 'utf8');
76
+ }
77
+ }
78
+ return buf;
79
+ };
80
+ export const encodePushRequest = (streams) => {
81
+ // The first pass works out the size of every message, as each one is prefixed by its length
82
+ const metadataCache = new Map();
83
+ const lineLens = [];
84
+ const entrySizes = [];
85
+ const labelLens = [];
86
+ const streamSizes = [];
87
+ let total = 0;
88
+ for (const { labels, entries } of streams) {
89
+ const labelsLen = Buffer.byteLength(labels);
90
+ let streamSize = labelsLen > 0 ? fieldSize(labelsLen) : 0;
91
+ for (const entry of entries) {
92
+ let metadata = metadataCache.get(entry.structuredMetadata);
93
+ if (metadata === undefined) {
94
+ metadata = encodeStructuredMetadata(entry.structuredMetadata);
95
+ metadataCache.set(entry.structuredMetadata, metadata);
96
+ }
97
+ const lineLen = Buffer.byteLength(entry.line);
98
+ const entrySize = fieldSize(timestampSize(entry.seconds, entry.nanos)) +
99
+ (lineLen > 0 ? fieldSize(lineLen) : 0) +
100
+ metadata.length;
101
+ lineLens.push(lineLen);
102
+ entrySizes.push(entrySize);
103
+ streamSize += fieldSize(entrySize);
104
+ }
105
+ labelLens.push(labelsLen);
106
+ streamSizes.push(streamSize);
107
+ total += fieldSize(streamSize);
108
+ }
109
+ const buf = Buffer.allocUnsafe(total);
110
+ let pos = 0;
111
+ let e = 0;
112
+ for (let s = 0; s < streams.length; s++) {
113
+ const { labels, entries } = streams[s];
114
+ buf[pos++] = 0x0a; // PushRequest.streams
115
+ pos = writeVarint(buf, pos, streamSizes[s]);
116
+ const labelsLen = labelLens[s];
117
+ if (labelsLen > 0) {
118
+ buf[pos++] = 0x0a; // StreamAdapter.labels
119
+ pos = writeVarint(buf, pos, labelsLen);
120
+ pos += buf.write(labels, pos, labelsLen, 'utf8');
121
+ }
122
+ for (const { seconds, nanos, line, structuredMetadata } of entries) {
123
+ buf[pos++] = 0x12; // StreamAdapter.entries
124
+ pos = writeVarint(buf, pos, entrySizes[e]);
125
+ buf[pos++] = 0x0a; // EntryAdapter.timestamp, always present like with google-protobuf
126
+ pos = writeVarint(buf, pos, timestampSize(seconds, nanos));
127
+ if (seconds !== 0) {
128
+ buf[pos++] = 0x08; // Timestamp.seconds, varint
129
+ pos = writeVarint(buf, pos, seconds);
130
+ }
131
+ if (nanos !== 0) {
132
+ buf[pos++] = 0x10; // Timestamp.nanos, varint
133
+ pos = writeVarint(buf, pos, nanos);
134
+ }
135
+ const lineLen = lineLens[e];
136
+ if (lineLen > 0) {
137
+ buf[pos++] = 0x12; // EntryAdapter.line
138
+ pos = writeVarint(buf, pos, lineLen);
139
+ pos += buf.write(line, pos, lineLen, 'utf8');
140
+ }
141
+ pos += metadataCache.get(structuredMetadata).copy(buf, pos);
142
+ e++;
143
+ }
144
+ }
145
+ if (pos !== total) {
146
+ throw new Error(`Encoded ${pos} bytes of a ${total} byte Loki push request`);
147
+ }
148
+ return buf;
149
+ };
150
+ //# sourceMappingURL=loki-push-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loki-push-request.js","sourceRoot":"","sources":["../../../../../src/features/device-logs/lib/backends/loki-push-request.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import _ from 'lodash';
2
2
  import { EventEmitter } from 'events';
3
- import { compressionAlgorithms } from '@grpc/grpc-js';
4
- import loki from 'loki-grpc-client';
3
+ import { compressionAlgorithms, credentials, makeGenericClientConstructor, Metadata, status, } from '@grpc/grpc-js';
5
4
  import { errors, sbvrUtils, permissions } from '@balena/pinejs';
6
5
  import { LOKI_QUERY_HOST, LOKI_QUERY_HTTP_PORT, LOKI_INGESTER_HOST, LOKI_INGESTER_GRPC_PORT, LOKI_HISTORY_GZIP, LOKI_GRPC_SEND_GZIP, LOKI_GRPC_RECEIVE_COMPRESSION_LEVEL, LOKI_RETRIES_ENABLED, LOKI_PUSH_TIMEOUT, LOKI_HISTORY_TIMEOUT, } from "../../../../lib/config.js";
7
6
  import { captureException } from "../../../../infra/error-handling/index.js";
@@ -10,9 +9,27 @@ import { setTimeout } from 'timers/promises';
10
9
  import { requestAsync } from "../../../../infra/request-promise/index.js";
11
10
  import WebSocket from 'ws';
12
11
  import querystring from 'node:querystring';
12
+ import { encodePushRequest } from "./loki-push-request.js";
13
13
  const { BadRequestError } = errors;
14
14
  // invert status object for quick lookup of status identifier using status code
15
- const statusKeys = _.invert(loki.status);
15
+ const statusKeys = _.invert(status);
16
+ const notSupported = () => {
17
+ throw new Error('Only the client side of the Loki push service is implemented');
18
+ };
19
+ // The Loki push service, with requests encoded by `encodePushRequest` straight from plain objects rather than by
20
+ // building and serializing google-protobuf messages
21
+ const PusherClient = makeGenericClientConstructor({
22
+ push: {
23
+ path: '/logproto.Pusher/Push',
24
+ requestStream: false,
25
+ responseStream: false,
26
+ requestSerialize: encodePushRequest,
27
+ requestDeserialize: notSupported,
28
+ responseSerialize: notSupported,
29
+ // PushResponse has no fields
30
+ responseDeserialize: () => ({}),
31
+ },
32
+ }, 'Pusher');
16
33
  const lokiQueryAddress = `${LOKI_QUERY_HOST}:${LOKI_QUERY_HTTP_PORT}`;
17
34
  const lokiIngesterAddress = `${LOKI_INGESTER_HOST}:${LOKI_INGESTER_GRPC_PORT}`;
18
35
  const MIN_BACKOFF = 100;
@@ -65,7 +82,7 @@ export class LokiBackend {
65
82
  const compressionAlgorithm = LOKI_GRPC_SEND_GZIP
66
83
  ? compressionAlgorithms.gzip
67
84
  : compressionAlgorithms.identity;
68
- this.pusher = new loki.PusherClient(lokiIngesterAddress, loki.createInsecureCredentials(), {
85
+ this.pusher = new PusherClient(lokiIngesterAddress, credentials.createInsecure(), {
69
86
  'grpc.default_compression_algorithm': compressionAlgorithm,
70
87
  'grpc.default_compression_level': LOKI_GRPC_RECEIVE_COMPRESSION_LEVEL,
71
88
  });
@@ -73,7 +90,7 @@ export class LokiBackend {
73
90
  this.push = backoff(this.push.bind(this), (err) => {
74
91
  incrementLokiPushErrorTotal(err.code ? statusKeys[err.code] : 'UNDEFINED');
75
92
  return (LOKI_RETRIES_ENABLED &&
76
- [loki.status.UNAVAILABLE, loki.status.RESOURCE_EXHAUSTED].includes(err.code ?? -1));
93
+ [status.UNAVAILABLE, status.RESOURCE_EXHAUSTED].includes(err.code ?? -1));
77
94
  });
78
95
  }
79
96
  available = true;
@@ -140,17 +157,17 @@ export class LokiBackend {
140
157
  }
141
158
  async push(ctx, stream) {
142
159
  incrementLokiPushTotal();
143
- const pushRequest = new loki.PushRequest();
144
- pushRequest.addStreams(stream);
160
+ const metadata = new Metadata();
161
+ metadata.add('x-scope-orgid', ctx.orgId);
145
162
  const startAt = Date.now();
146
163
  try {
147
164
  await new Promise((resolve, reject) => {
148
- this.pusher.push(pushRequest, loki.createOrgIdMetadata(ctx.orgId), { deadline: startAt + LOKI_PUSH_TIMEOUT }, (err, response) => {
165
+ this.pusher.push([stream], metadata, { deadline: startAt + LOKI_PUSH_TIMEOUT }, (err) => {
149
166
  if (err) {
150
167
  reject(err);
151
168
  }
152
169
  else {
153
- resolve(response);
170
+ resolve();
154
171
  }
155
172
  });
156
173
  });
@@ -234,9 +251,7 @@ export class LokiBackend {
234
251
  return `o${ctx.orgId}:a${ctx.appId}:d${ctx.id}`;
235
252
  }
236
253
  getStructuredMetadata(ctx) {
237
- return [
238
- new loki.LabelPairAdapter().setName('device_id').setValue(`${ctx.id}`),
239
- ];
254
+ return [{ name: 'device_id', value: `${ctx.id}` }];
240
255
  }
241
256
  getLabels(ctx) {
242
257
  return `{fleet_id="${ctx.appId}"}`;
@@ -246,25 +261,17 @@ export class LokiBackend {
246
261
  return logs.map((log) => {
247
262
  // Strip nanoTimestamp from the log as it cannot be serialized, and avoid a replacer lets us stay on the stringify fast path
248
263
  const { nanoTimestamp, ...jsonableLog } = log;
249
- const timestamp = new loki.Timestamp();
250
- timestamp.setSeconds(Math.floor(Number(nanoTimestamp / 1000000000n)));
251
- timestamp.setNanos(Number(nanoTimestamp % 1000000000n));
252
- // store log line as JSON
253
264
  jsonableLog.version = VERSION;
254
- const logJson = JSON.stringify(jsonableLog);
255
- // create entry with labels, line and timestamp
256
- return new loki.EntryAdapter()
257
- .setLine(logJson)
258
- .setTimestamp(timestamp)
259
- .setStructuredmetadataList(structuredMetadata);
265
+ return {
266
+ seconds: Math.floor(Number(log.nanoTimestamp / 1000000000n)),
267
+ nanos: Number(log.nanoTimestamp % 1000000000n),
268
+ line: JSON.stringify(jsonableLog),
269
+ structuredMetadata,
270
+ };
260
271
  });
261
272
  }
262
273
  fromLogEntriesToStream(ctx, logEntries) {
263
- const labels = this.getLabels(ctx);
264
- const stream = new loki.StreamAdapter();
265
- stream.setLabels(labels);
266
- stream.setEntriesList(logEntries);
267
- return stream;
274
+ return { labels: this.getLabels(ctx), entries: logEntries };
268
275
  }
269
276
  async addAdditionalContext(ctx) {
270
277
  const [app] = await $getLokiContext()({ id: ctx.id });
@@ -1 +1 @@
1
- {"version":3,"file":"loki.js","sourceRoot":"","sources":["../../../../../src/features/device-logs/lib/backends/loki.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loki.js","sourceRoot":"","sources":["../../../../../src/features/device-logs/lib/backends/loki.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@balena/open-balena-api",
3
3
  "description": "Internet of things, Made Simple",
4
- "version": "52.0.5",
4
+ "version": "52.0.6",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -56,6 +56,7 @@
56
56
  "@balena/pinejs": "^25.0.4",
57
57
  "@balena/pinejs-webresource-cloudfront": "^2.0.2",
58
58
  "@balena/pinejs-webresource-s3": "^2.1.27",
59
+ "@grpc/grpc-js": "^1.14.6",
59
60
  "@opentelemetry/api": "^1.9.0",
60
61
  "@opentelemetry/context-async-hooks": "^2.5.0",
61
62
  "@opentelemetry/core": "^2.5.0",
@@ -109,7 +110,6 @@
109
110
  "json-schema-to-ts": "^3.1.1",
110
111
  "jsonwebtoken": "^9.0.3",
111
112
  "lodash": "^4.17.23",
112
- "loki-grpc-client": "^2.2.0",
113
113
  "memoizee": "^0.4.17",
114
114
  "morgan": "^1.10.1",
115
115
  "ndjson": "^2.0.0",
@@ -175,6 +175,6 @@
175
175
  "_": "index.js"
176
176
  },
177
177
  "versionist": {
178
- "publishedAt": "2026-11-02T04:29:05.646Z"
178
+ "publishedAt": "2026-11-02T14:36:08.297Z"
179
179
  }
180
180
  }