@sentio/runtime 2.44.0-rc.1 → 2.44.0-rc.11
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/lib/chunk-P74HTYGJ.js +131 -0
- package/lib/{chunk-HC2LNKZM.js.map → chunk-P74HTYGJ.js.map} +1 -1
- package/lib/index.js +1 -1
- package/lib/processor-runner.d.ts +0 -3
- package/lib/processor-runner.js +20 -20
- package/lib/processor-runner.js.map +1 -1
- package/package.json +1 -1
- package/src/gen/processor/protos/processor.ts +104 -0
- package/src/metrics.ts +17 -7
- package/src/otlp.ts +9 -2
- package/src/processor-runner.ts +2 -54
- package/lib/chunk-HC2LNKZM.js +0 -131
package/package.json
CHANGED
@@ -213,6 +213,7 @@ export enum HandlerType {
|
|
213
213
|
COSMOS_CALL = 14,
|
214
214
|
STARKNET_EVENT = 15,
|
215
215
|
BTC_TRANSACTION = 16,
|
216
|
+
BTC_BLOCK = 18,
|
216
217
|
UNRECOGNIZED = -1,
|
217
218
|
}
|
218
219
|
|
@@ -272,6 +273,9 @@ export function handlerTypeFromJSON(object: any): HandlerType {
|
|
272
273
|
case 16:
|
273
274
|
case "BTC_TRANSACTION":
|
274
275
|
return HandlerType.BTC_TRANSACTION;
|
276
|
+
case 18:
|
277
|
+
case "BTC_BLOCK":
|
278
|
+
return HandlerType.BTC_BLOCK;
|
275
279
|
case -1:
|
276
280
|
case "UNRECOGNIZED":
|
277
281
|
default:
|
@@ -317,6 +321,8 @@ export function handlerTypeToJSON(object: HandlerType): string {
|
|
317
321
|
return "STARKNET_EVENT";
|
318
322
|
case HandlerType.BTC_TRANSACTION:
|
319
323
|
return "BTC_TRANSACTION";
|
324
|
+
case HandlerType.BTC_BLOCK:
|
325
|
+
return "BTC_BLOCK";
|
320
326
|
case HandlerType.UNRECOGNIZED:
|
321
327
|
default:
|
322
328
|
return "UNRECOGNIZED";
|
@@ -1032,6 +1038,7 @@ export interface Data {
|
|
1032
1038
|
cosmosCall?: Data_CosmosCall | undefined;
|
1033
1039
|
starknetEvents?: Data_StarknetEvent | undefined;
|
1034
1040
|
btcTransaction?: Data_BTCTransaction | undefined;
|
1041
|
+
btcBlock?: Data_BTCBlock | undefined;
|
1035
1042
|
}
|
1036
1043
|
|
1037
1044
|
export interface Data_EthLog {
|
@@ -1135,6 +1142,11 @@ export interface Data_BTCTransaction {
|
|
1135
1142
|
timestamp: Date | undefined;
|
1136
1143
|
}
|
1137
1144
|
|
1145
|
+
export interface Data_BTCBlock {
|
1146
|
+
block: { [key: string]: any } | undefined;
|
1147
|
+
timestamp: Date | undefined;
|
1148
|
+
}
|
1149
|
+
|
1138
1150
|
export interface DataBinding {
|
1139
1151
|
data: Data | undefined;
|
1140
1152
|
handlerType: HandlerType;
|
@@ -8349,6 +8361,7 @@ function createBaseData(): Data {
|
|
8349
8361
|
cosmosCall: undefined,
|
8350
8362
|
starknetEvents: undefined,
|
8351
8363
|
btcTransaction: undefined,
|
8364
|
+
btcBlock: undefined,
|
8352
8365
|
};
|
8353
8366
|
}
|
8354
8367
|
|
@@ -8408,6 +8421,9 @@ export const Data = {
|
|
8408
8421
|
if (message.btcTransaction !== undefined) {
|
8409
8422
|
Data_BTCTransaction.encode(message.btcTransaction, writer.uint32(138).fork()).ldelim();
|
8410
8423
|
}
|
8424
|
+
if (message.btcBlock !== undefined) {
|
8425
|
+
Data_BTCBlock.encode(message.btcBlock, writer.uint32(154).fork()).ldelim();
|
8426
|
+
}
|
8411
8427
|
return writer;
|
8412
8428
|
},
|
8413
8429
|
|
@@ -8544,6 +8560,13 @@ export const Data = {
|
|
8544
8560
|
|
8545
8561
|
message.btcTransaction = Data_BTCTransaction.decode(reader, reader.uint32());
|
8546
8562
|
continue;
|
8563
|
+
case 19:
|
8564
|
+
if (tag !== 154) {
|
8565
|
+
break;
|
8566
|
+
}
|
8567
|
+
|
8568
|
+
message.btcBlock = Data_BTCBlock.decode(reader, reader.uint32());
|
8569
|
+
continue;
|
8547
8570
|
}
|
8548
8571
|
if ((tag & 7) === 4 || tag === 0) {
|
8549
8572
|
break;
|
@@ -8575,6 +8598,7 @@ export const Data = {
|
|
8575
8598
|
cosmosCall: isSet(object.cosmosCall) ? Data_CosmosCall.fromJSON(object.cosmosCall) : undefined,
|
8576
8599
|
starknetEvents: isSet(object.starknetEvents) ? Data_StarknetEvent.fromJSON(object.starknetEvents) : undefined,
|
8577
8600
|
btcTransaction: isSet(object.btcTransaction) ? Data_BTCTransaction.fromJSON(object.btcTransaction) : undefined,
|
8601
|
+
btcBlock: isSet(object.btcBlock) ? Data_BTCBlock.fromJSON(object.btcBlock) : undefined,
|
8578
8602
|
};
|
8579
8603
|
},
|
8580
8604
|
|
@@ -8634,6 +8658,9 @@ export const Data = {
|
|
8634
8658
|
if (message.btcTransaction !== undefined) {
|
8635
8659
|
obj.btcTransaction = Data_BTCTransaction.toJSON(message.btcTransaction);
|
8636
8660
|
}
|
8661
|
+
if (message.btcBlock !== undefined) {
|
8662
|
+
obj.btcBlock = Data_BTCBlock.toJSON(message.btcBlock);
|
8663
|
+
}
|
8637
8664
|
return obj;
|
8638
8665
|
},
|
8639
8666
|
|
@@ -8694,6 +8721,9 @@ export const Data = {
|
|
8694
8721
|
message.btcTransaction = (object.btcTransaction !== undefined && object.btcTransaction !== null)
|
8695
8722
|
? Data_BTCTransaction.fromPartial(object.btcTransaction)
|
8696
8723
|
: undefined;
|
8724
|
+
message.btcBlock = (object.btcBlock !== undefined && object.btcBlock !== null)
|
8725
|
+
? Data_BTCBlock.fromPartial(object.btcBlock)
|
8726
|
+
: undefined;
|
8697
8727
|
return message;
|
8698
8728
|
},
|
8699
8729
|
};
|
@@ -10229,6 +10259,80 @@ export const Data_BTCTransaction = {
|
|
10229
10259
|
},
|
10230
10260
|
};
|
10231
10261
|
|
10262
|
+
function createBaseData_BTCBlock(): Data_BTCBlock {
|
10263
|
+
return { block: undefined, timestamp: undefined };
|
10264
|
+
}
|
10265
|
+
|
10266
|
+
export const Data_BTCBlock = {
|
10267
|
+
encode(message: Data_BTCBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
|
10268
|
+
if (message.block !== undefined) {
|
10269
|
+
Struct.encode(Struct.wrap(message.block), writer.uint32(10).fork()).ldelim();
|
10270
|
+
}
|
10271
|
+
if (message.timestamp !== undefined) {
|
10272
|
+
Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(18).fork()).ldelim();
|
10273
|
+
}
|
10274
|
+
return writer;
|
10275
|
+
},
|
10276
|
+
|
10277
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): Data_BTCBlock {
|
10278
|
+
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
|
10279
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
10280
|
+
const message = createBaseData_BTCBlock();
|
10281
|
+
while (reader.pos < end) {
|
10282
|
+
const tag = reader.uint32();
|
10283
|
+
switch (tag >>> 3) {
|
10284
|
+
case 1:
|
10285
|
+
if (tag !== 10) {
|
10286
|
+
break;
|
10287
|
+
}
|
10288
|
+
|
10289
|
+
message.block = Struct.unwrap(Struct.decode(reader, reader.uint32()));
|
10290
|
+
continue;
|
10291
|
+
case 2:
|
10292
|
+
if (tag !== 18) {
|
10293
|
+
break;
|
10294
|
+
}
|
10295
|
+
|
10296
|
+
message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
|
10297
|
+
continue;
|
10298
|
+
}
|
10299
|
+
if ((tag & 7) === 4 || tag === 0) {
|
10300
|
+
break;
|
10301
|
+
}
|
10302
|
+
reader.skipType(tag & 7);
|
10303
|
+
}
|
10304
|
+
return message;
|
10305
|
+
},
|
10306
|
+
|
10307
|
+
fromJSON(object: any): Data_BTCBlock {
|
10308
|
+
return {
|
10309
|
+
block: isObject(object.block) ? object.block : undefined,
|
10310
|
+
timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,
|
10311
|
+
};
|
10312
|
+
},
|
10313
|
+
|
10314
|
+
toJSON(message: Data_BTCBlock): unknown {
|
10315
|
+
const obj: any = {};
|
10316
|
+
if (message.block !== undefined) {
|
10317
|
+
obj.block = message.block;
|
10318
|
+
}
|
10319
|
+
if (message.timestamp !== undefined) {
|
10320
|
+
obj.timestamp = message.timestamp.toISOString();
|
10321
|
+
}
|
10322
|
+
return obj;
|
10323
|
+
},
|
10324
|
+
|
10325
|
+
create(base?: DeepPartial<Data_BTCBlock>): Data_BTCBlock {
|
10326
|
+
return Data_BTCBlock.fromPartial(base ?? {});
|
10327
|
+
},
|
10328
|
+
fromPartial(object: DeepPartial<Data_BTCBlock>): Data_BTCBlock {
|
10329
|
+
const message = createBaseData_BTCBlock();
|
10330
|
+
message.block = object.block ?? undefined;
|
10331
|
+
message.timestamp = object.timestamp ?? undefined;
|
10332
|
+
return message;
|
10333
|
+
},
|
10334
|
+
};
|
10335
|
+
|
10232
10336
|
function createBaseDataBinding(): DataBinding {
|
10233
10337
|
return { data: undefined, handlerType: 0, handlerIds: [] };
|
10234
10338
|
}
|
package/src/metrics.ts
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
import { Attributes, Counter, metrics, Gauge } from '@opentelemetry/api'
|
2
2
|
|
3
|
-
const
|
3
|
+
const getMeter = () => metrics.getMeter('processor')
|
4
4
|
|
5
5
|
class C {
|
6
|
-
private
|
6
|
+
private _counter: Counter<Attributes>
|
7
7
|
private value: number = 0
|
8
8
|
|
9
|
-
constructor(name: string) {
|
10
|
-
|
9
|
+
constructor(private name: string) {}
|
10
|
+
|
11
|
+
get counter(): Counter<Attributes> {
|
12
|
+
if (!this._counter) {
|
13
|
+
this._counter = getMeter().createCounter(this.name)
|
14
|
+
}
|
15
|
+
return this._counter
|
11
16
|
}
|
12
17
|
|
13
18
|
add(value: number, attributes?: Attributes) {
|
@@ -21,11 +26,16 @@ class C {
|
|
21
26
|
}
|
22
27
|
|
23
28
|
class G {
|
24
|
-
private
|
29
|
+
private _gauge: Gauge<Attributes>
|
25
30
|
private value: number = 0
|
26
31
|
|
27
|
-
constructor(name: string) {
|
28
|
-
|
32
|
+
constructor(private name: string) {}
|
33
|
+
|
34
|
+
get gauge(): Gauge<Attributes> {
|
35
|
+
if (!this._gauge) {
|
36
|
+
this._gauge = getMeter().createGauge(this.name)
|
37
|
+
}
|
38
|
+
return this._gauge
|
29
39
|
}
|
30
40
|
|
31
41
|
record(value: number, attributes?: Attributes) {
|
package/src/otlp.ts
CHANGED
@@ -5,9 +5,13 @@ import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
|
|
5
5
|
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
6
6
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
7
7
|
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
8
|
-
import { metrics, trace, ProxyTracerProvider } from '@opentelemetry/api'
|
8
|
+
import { diag, DiagConsoleLogger, DiagLogLevel, metrics, trace, ProxyTracerProvider } from '@opentelemetry/api'
|
9
|
+
|
10
|
+
export async function setupOTLP(debug?: boolean) {
|
11
|
+
if (debug) {
|
12
|
+
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)
|
13
|
+
}
|
9
14
|
|
10
|
-
export async function setupOTLP() {
|
11
15
|
const resource = await envDetector.detect()
|
12
16
|
|
13
17
|
const meterProvider = new MeterProvider({
|
@@ -29,12 +33,15 @@ export async function setupOTLP() {
|
|
29
33
|
const exporter = new OTLPTraceExporter() // new ConsoleSpanExporter();
|
30
34
|
const processor = new BatchSpanProcessor(exporter)
|
31
35
|
traceProvider.addSpanProcessor(processor)
|
36
|
+
traceProvider.register()
|
32
37
|
|
33
38
|
metrics.setGlobalMeterProvider(meterProvider)
|
34
39
|
trace.setGlobalTracerProvider(traceProvider)
|
35
40
|
;['SIGINT', 'SIGTERM'].forEach((signal) => {
|
36
41
|
process.on(signal as any, () => shutdownProvider())
|
37
42
|
})
|
43
|
+
|
44
|
+
metrics.getMeter('processor').createGauge('up').record(1)
|
38
45
|
}
|
39
46
|
|
40
47
|
export async function shutdownProvider() {
|
package/src/processor-runner.ts
CHANGED
@@ -21,15 +21,7 @@ import { FullProcessorServiceImpl } from './full-service.js'
|
|
21
21
|
import { ChainConfig } from './chain-config.js'
|
22
22
|
import { setupLogger } from './logger.js'
|
23
23
|
|
24
|
-
|
25
|
-
import { envDetector } from '@opentelemetry/resources'
|
26
|
-
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc'
|
27
|
-
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
28
|
-
import { PeriodicExportingMetricReader, MeterProvider } from '@opentelemetry/sdk-metrics'
|
29
|
-
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
30
|
-
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
31
|
-
import { diag, DiagConsoleLogger, DiagLogLevel, metrics, trace } from '@opentelemetry/api'
|
32
|
-
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
|
24
|
+
import { setupOTLP } from './otlp.js'
|
33
25
|
|
34
26
|
// const mergedRegistry = Registry.merge([globalRegistry, niceGrpcRegistry])
|
35
27
|
|
@@ -58,51 +50,7 @@ const logLevel = process.env['LOG_LEVEL']?.toUpperCase()
|
|
58
50
|
setupLogger(options['log-format'] === 'json', logLevel === 'debug' ? true : options.debug)
|
59
51
|
console.debug('Starting with', options.target)
|
60
52
|
|
61
|
-
|
62
|
-
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)
|
63
|
-
}
|
64
|
-
|
65
|
-
const resource = await envDetector.detect()
|
66
|
-
|
67
|
-
const meterProvider = new MeterProvider({
|
68
|
-
resource,
|
69
|
-
readers: [
|
70
|
-
new PeriodicExportingMetricReader({
|
71
|
-
exporter: new OTLPMetricExporter()
|
72
|
-
}),
|
73
|
-
new PrometheusExporter({
|
74
|
-
// http://localhost:4041/metrics
|
75
|
-
port: 4041
|
76
|
-
})
|
77
|
-
]
|
78
|
-
})
|
79
|
-
|
80
|
-
const traceProvider = new NodeTracerProvider({
|
81
|
-
resource: resource
|
82
|
-
})
|
83
|
-
const exporter = new OTLPTraceExporter() // new ConsoleSpanExporter();
|
84
|
-
const processor = new BatchSpanProcessor(exporter)
|
85
|
-
traceProvider.addSpanProcessor(processor)
|
86
|
-
traceProvider.register()
|
87
|
-
|
88
|
-
metrics.setGlobalMeterProvider(meterProvider)
|
89
|
-
trace.setGlobalTracerProvider(traceProvider)
|
90
|
-
;['SIGINT', 'SIGTERM'].forEach((signal) => {
|
91
|
-
process.on(signal as any, () => shutdownProvider())
|
92
|
-
})
|
93
|
-
|
94
|
-
export async function shutdownProvider() {
|
95
|
-
const traceProvider = trace.getTracerProvider()
|
96
|
-
if (traceProvider instanceof NodeTracerProvider) {
|
97
|
-
traceProvider.shutdown().catch(console.error)
|
98
|
-
}
|
99
|
-
const meterProvider = metrics.getMeterProvider()
|
100
|
-
if (meterProvider instanceof MeterProvider) {
|
101
|
-
meterProvider.shutdown().catch(console.error)
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
metrics.getMeter('processor').createGauge('up').record(1)
|
53
|
+
await setupOTLP(options.debug)
|
106
54
|
|
107
55
|
Error.stackTraceLimit = 20
|
108
56
|
|