@sentio/sdk 2.39.7-rc.28 → 2.39.7-rc.29
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/eth/provider.d.ts.map +1 -1
- package/lib/eth/provider.js +12 -18
- package/lib/eth/provider.js.map +1 -1
- package/package.json +3 -3
- package/src/eth/provider.ts +15 -19
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAW,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAW,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI1C,eAAO,MAAM,aAAa,iBAA2C,CAAA;AAqBrE,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAgC1D"}
|
package/lib/eth/provider.js
CHANGED
@@ -3,7 +3,14 @@ import PQueue from 'p-queue';
|
|
3
3
|
import { Endpoints } from '@sentio/runtime';
|
4
4
|
import { EthChainId } from '@sentio/chain';
|
5
5
|
import { LRUCache } from 'lru-cache';
|
6
|
+
import { metrics } from '@opentelemetry/api';
|
6
7
|
export const DummyProvider = new JsonRpcProvider('', Network.from(1));
|
8
|
+
const meter = metrics.getMeter('processor_provider');
|
9
|
+
const hit_count = meter.createCounter('provider_hit_count');
|
10
|
+
const miss_count = meter.createCounter('provider_miss_count');
|
11
|
+
const queue_size = meter.createGauge('provider_queue_size');
|
12
|
+
const total_duration = meter.createCounter('provider_total_duration');
|
13
|
+
const total_queued = meter.createCounter('provider_total_queued');
|
7
14
|
const providers = new Map();
|
8
15
|
// export function getEthChainId(networkish?: EthContext | EthChainId): EthChainId {
|
9
16
|
// if (!networkish) {
|
@@ -73,10 +80,6 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
73
80
|
// return 1024
|
74
81
|
// }
|
75
82
|
});
|
76
|
-
hits = 0;
|
77
|
-
misses = 0;
|
78
|
-
totalDuration = 0;
|
79
|
-
totalQueued = 0;
|
80
83
|
constructor(url, network, concurrency, batchCount = 1) {
|
81
84
|
// TODO re-enable match when possible
|
82
85
|
super(url, network, { staticNetwork: network, batchMaxCount: batchCount });
|
@@ -90,13 +93,13 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
90
93
|
const block = params[params.length - 1];
|
91
94
|
let perform = this.#performCache.get(tag);
|
92
95
|
if (!perform) {
|
93
|
-
|
96
|
+
miss_count.add(1);
|
94
97
|
const queued = Date.now();
|
95
98
|
perform = this.executor.add(() => {
|
96
99
|
const started = Date.now();
|
97
|
-
|
100
|
+
total_queued.add(started - queued);
|
98
101
|
return super.send(method, params).finally(() => {
|
99
|
-
|
102
|
+
total_duration.add(Date.now() - started);
|
100
103
|
});
|
101
104
|
});
|
102
105
|
perform.catch((e) => {
|
@@ -107,6 +110,7 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
107
110
|
}
|
108
111
|
}, 1000);
|
109
112
|
});
|
113
|
+
queue_size.record(this.executor.size);
|
110
114
|
this.#performCache.set(tag, perform);
|
111
115
|
// For non latest block call, we cache permanently, otherwise we cache for one minute
|
112
116
|
if (block === 'latest') {
|
@@ -118,7 +122,7 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
118
122
|
}
|
119
123
|
}
|
120
124
|
else {
|
121
|
-
|
125
|
+
hit_count.add(1);
|
122
126
|
}
|
123
127
|
const result = await perform;
|
124
128
|
if (!result) {
|
@@ -126,15 +130,5 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
126
130
|
}
|
127
131
|
return result;
|
128
132
|
}
|
129
|
-
stats() {
|
130
|
-
const count = this.hits + this.misses;
|
131
|
-
return {
|
132
|
-
queueSize: this.executor.size,
|
133
|
-
hits: this.hits,
|
134
|
-
misses: this.misses,
|
135
|
-
avgDuration: count == 0 ? 0 : this.totalDuration / count,
|
136
|
-
avgQueued: count == 0 ? 0 : this.totalQueued / count
|
137
|
-
};
|
138
|
-
}
|
139
133
|
}
|
140
134
|
//# sourceMappingURL=provider.js.map
|
package/lib/eth/provider.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAY,MAAM,QAAQ,CAAA;AAE3D,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
|
-
"version": "2.39.7-rc.
|
3
|
+
"version": "2.39.7-rc.29",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -83,8 +83,8 @@
|
|
83
83
|
"typedoc": "^0.26.0",
|
84
84
|
"utility-types": "^3.11.0",
|
85
85
|
"yaml": "^2.3.4",
|
86
|
-
"@sentio/
|
87
|
-
"@sentio/
|
86
|
+
"@sentio/protos": "2.39.7-rc.29",
|
87
|
+
"@sentio/runtime": "^2.39.7-rc.29"
|
88
88
|
},
|
89
89
|
"peerDependencies": {
|
90
90
|
"tsup": "npm:@sentio/tsup@^6.7.2"
|
package/src/eth/provider.ts
CHANGED
@@ -4,9 +4,17 @@ import PQueue from 'p-queue'
|
|
4
4
|
import { Endpoints } from '@sentio/runtime'
|
5
5
|
import { EthChainId } from '@sentio/chain'
|
6
6
|
import { LRUCache } from 'lru-cache'
|
7
|
+
import { metrics } from '@opentelemetry/api'
|
7
8
|
|
8
9
|
export const DummyProvider = new JsonRpcProvider('', Network.from(1))
|
9
10
|
|
11
|
+
const meter = metrics.getMeter('processor_provider')
|
12
|
+
const hit_count = meter.createCounter('provider_hit_count')
|
13
|
+
const miss_count = meter.createCounter('provider_miss_count')
|
14
|
+
const queue_size = meter.createGauge('provider_queue_size')
|
15
|
+
const total_duration = meter.createCounter('provider_total_duration')
|
16
|
+
const total_queued = meter.createCounter('provider_total_queued')
|
17
|
+
|
10
18
|
const providers = new Map<string, JsonRpcProvider>()
|
11
19
|
|
12
20
|
// export function getEthChainId(networkish?: EthContext | EthChainId): EthChainId {
|
@@ -97,10 +105,6 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
97
105
|
// return 1024
|
98
106
|
// }
|
99
107
|
})
|
100
|
-
hits = 0
|
101
|
-
misses = 0
|
102
|
-
totalDuration = 0
|
103
|
-
totalQueued = 0
|
104
108
|
|
105
109
|
constructor(url: string, network: Network, concurrency: number, batchCount = 1) {
|
106
110
|
// TODO re-enable match when possible
|
@@ -116,13 +120,14 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
116
120
|
const block = params[params.length - 1]
|
117
121
|
let perform = this.#performCache.get(tag)
|
118
122
|
if (!perform) {
|
119
|
-
|
123
|
+
miss_count.add(1)
|
120
124
|
const queued: number = Date.now()
|
121
125
|
perform = this.executor.add(() => {
|
122
126
|
const started = Date.now()
|
123
|
-
|
127
|
+
total_queued.add(started - queued)
|
128
|
+
|
124
129
|
return super.send(method, params).finally(() => {
|
125
|
-
|
130
|
+
total_duration.add(Date.now() - started)
|
126
131
|
})
|
127
132
|
})
|
128
133
|
perform.catch((e) => {
|
@@ -134,6 +139,8 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
134
139
|
}, 1000)
|
135
140
|
})
|
136
141
|
|
142
|
+
queue_size.record(this.executor.size)
|
143
|
+
|
137
144
|
this.#performCache.set(tag, perform)
|
138
145
|
// For non latest block call, we cache permanently, otherwise we cache for one minute
|
139
146
|
if (block === 'latest') {
|
@@ -144,7 +151,7 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
144
151
|
}, 60 * 1000)
|
145
152
|
}
|
146
153
|
} else {
|
147
|
-
|
154
|
+
hit_count.add(1)
|
148
155
|
}
|
149
156
|
|
150
157
|
const result = await perform
|
@@ -153,15 +160,4 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
|
|
153
160
|
}
|
154
161
|
return result
|
155
162
|
}
|
156
|
-
|
157
|
-
stats() {
|
158
|
-
const count = this.hits + this.misses
|
159
|
-
return {
|
160
|
-
queueSize: this.executor.size,
|
161
|
-
hits: this.hits,
|
162
|
-
misses: this.misses,
|
163
|
-
avgDuration: count == 0 ? 0 : this.totalDuration / count,
|
164
|
-
avgQueued: count == 0 ? 0 : this.totalQueued / count
|
165
|
-
}
|
166
|
-
}
|
167
163
|
}
|