@lodestar/db 1.5.0-dev.f244bc872e → 1.5.0-dev.f4057cfc3f
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.
|
@@ -15,6 +15,7 @@ export declare class LevelDbController implements IDatabaseController<Uint8Array
|
|
|
15
15
|
private db;
|
|
16
16
|
private readonly opts;
|
|
17
17
|
private metrics;
|
|
18
|
+
private dbSizeMetricInterval?;
|
|
18
19
|
constructor(opts: ILevelDBOptions, { metrics }: LevelDbControllerModules);
|
|
19
20
|
start(): Promise<void>;
|
|
20
21
|
stop(): Promise<void>;
|
|
@@ -45,5 +46,9 @@ export declare class LevelDbController implements IDatabaseController<Uint8Array
|
|
|
45
46
|
private metricsAll;
|
|
46
47
|
/** Capture metrics for db.iterator, db.keys, db.values AsyncIterable calls */
|
|
47
48
|
private metricsIterator;
|
|
49
|
+
/** Start interval to capture metric for db size */
|
|
50
|
+
private collectDbSizeMetric;
|
|
51
|
+
/** Capture metric for db size */
|
|
52
|
+
private dbSizeMetric;
|
|
48
53
|
}
|
|
49
54
|
//# sourceMappingURL=level.d.ts.map
|
package/lib/controller/level.js
CHANGED
|
@@ -5,6 +5,8 @@ var Status;
|
|
|
5
5
|
Status["stopped"] = "stopped";
|
|
6
6
|
})(Status || (Status = {}));
|
|
7
7
|
const BUCKET_ID_UNKNOWN = "unknown";
|
|
8
|
+
/** Time between capturing metric for db size, every few minutes is sufficient */
|
|
9
|
+
const DB_SIZE_METRIC_INTERVAL_MS = 5 * 60 * 1000;
|
|
8
10
|
/**
|
|
9
11
|
* The LevelDB implementation of DB
|
|
10
12
|
*/
|
|
@@ -20,11 +22,17 @@ export class LevelDbController {
|
|
|
20
22
|
return;
|
|
21
23
|
this.status = Status.started;
|
|
22
24
|
await this.db.open();
|
|
25
|
+
if (this.metrics) {
|
|
26
|
+
this.collectDbSizeMetric();
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
async stop() {
|
|
25
30
|
if (this.status === Status.stopped)
|
|
26
31
|
return;
|
|
27
32
|
this.status = Status.stopped;
|
|
33
|
+
if (this.dbSizeMetricInterval) {
|
|
34
|
+
clearInterval(this.dbSizeMetricInterval);
|
|
35
|
+
}
|
|
28
36
|
await this.db.close();
|
|
29
37
|
}
|
|
30
38
|
/** To inject metrics after CLI initialization */
|
|
@@ -34,6 +42,9 @@ export class LevelDbController {
|
|
|
34
42
|
}
|
|
35
43
|
else {
|
|
36
44
|
this.metrics = metrics;
|
|
45
|
+
if (this.status === Status.started) {
|
|
46
|
+
this.collectDbSizeMetric();
|
|
47
|
+
}
|
|
37
48
|
}
|
|
38
49
|
}
|
|
39
50
|
async clear() {
|
|
@@ -135,5 +146,23 @@ export class LevelDbController {
|
|
|
135
146
|
}
|
|
136
147
|
(_b = this.metrics) === null || _b === void 0 ? void 0 : _b.dbWriteItems.inc({ bucket }, itemsRead);
|
|
137
148
|
}
|
|
149
|
+
/** Start interval to capture metric for db size */
|
|
150
|
+
collectDbSizeMetric() {
|
|
151
|
+
this.dbSizeMetric();
|
|
152
|
+
this.dbSizeMetricInterval = setInterval(this.dbSizeMetric.bind(this), DB_SIZE_METRIC_INTERVAL_MS);
|
|
153
|
+
}
|
|
154
|
+
/** Capture metric for db size */
|
|
155
|
+
dbSizeMetric() {
|
|
156
|
+
const minKey = Buffer.from([0x00]);
|
|
157
|
+
const maxKey = Buffer.from([0xff]);
|
|
158
|
+
this.approximateSize(minKey, maxKey)
|
|
159
|
+
.then((dbSize) => {
|
|
160
|
+
var _a;
|
|
161
|
+
(_a = this.metrics) === null || _a === void 0 ? void 0 : _a.dbSizeTotal.set(dbSize);
|
|
162
|
+
})
|
|
163
|
+
.catch(() => {
|
|
164
|
+
// ignore errors
|
|
165
|
+
});
|
|
166
|
+
}
|
|
138
167
|
}
|
|
139
168
|
//# sourceMappingURL=level.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/controller/level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAK5B,IAAK,MAGJ;AAHD,WAAK,MAAM;IACT,6BAAmB,CAAA;IACnB,6BAAmB,CAAA;AACrB,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;AAYD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/controller/level.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export interface ILevelDbControllerMetrics {
|
|
|
3
3
|
dbReadItems: ICounter<"bucket">;
|
|
4
4
|
dbWriteReq: ICounter<"bucket">;
|
|
5
5
|
dbWriteItems: ICounter<"bucket">;
|
|
6
|
+
dbSizeTotal: IGauge;
|
|
6
7
|
}
|
|
7
8
|
type Labels<T extends string> = Partial<Record<T, string | number>>;
|
|
8
9
|
interface ICounter<T extends string> {
|
|
@@ -10,5 +11,10 @@ interface ICounter<T extends string> {
|
|
|
10
11
|
inc(labels: Labels<T>, value?: number): void;
|
|
11
12
|
inc(arg1?: Labels<T> | number, arg2?: number): void;
|
|
12
13
|
}
|
|
14
|
+
interface IGauge<T extends string = string> {
|
|
15
|
+
set(value: number): void;
|
|
16
|
+
set(labels: Labels<T>, value: number): void;
|
|
17
|
+
set(arg1?: Labels<T> | number, arg2?: number): void;
|
|
18
|
+
}
|
|
13
19
|
export {};
|
|
14
20
|
//# sourceMappingURL=metrics.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/db",
|
|
3
|
-
"version": "1.5.0-dev.
|
|
3
|
+
"version": "1.5.0-dev.f4057cfc3f",
|
|
4
4
|
"description": "DB modules of Lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"homepage": "https://github.com/ChainSafe/lodestar#readme",
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
"check-readme": "typescript-docs-verifier"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@chainsafe/ssz": "^0.
|
|
42
|
-
"@lodestar/config": "1.5.0-dev.
|
|
43
|
-
"@lodestar/utils": "1.5.0-dev.
|
|
41
|
+
"@chainsafe/ssz": "^0.10.1",
|
|
42
|
+
"@lodestar/config": "1.5.0-dev.f4057cfc3f",
|
|
43
|
+
"@lodestar/utils": "1.5.0-dev.f4057cfc3f",
|
|
44
44
|
"@types/levelup": "^4.3.3",
|
|
45
45
|
"it-all": "^2.0.0",
|
|
46
46
|
"level": "^8.0.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "15405f8202a70709ff198575d5fb80eb8b9a5a65"
|
|
49
49
|
}
|