envio 3.0.0-alpha.21 → 3.0.0-alpha.23
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/README.md +3 -3
- package/bin.mjs +2 -48
- package/evm.schema.json +67 -0
- package/fuel.schema.json +67 -0
- package/index.d.ts +822 -38
- package/index.js +5 -3
- package/package.json +10 -8
- package/rescript.json +5 -9
- package/src/Address.res +4 -5
- package/src/Address.res.mjs +9 -12
- package/src/Api.res +15 -0
- package/src/Api.res.mjs +20 -0
- package/src/Batch.res +32 -34
- package/src/Batch.res.mjs +172 -187
- package/src/Bin.res +89 -0
- package/src/Bin.res.mjs +97 -0
- package/src/ChainFetcher.res +33 -57
- package/src/ChainFetcher.res.mjs +197 -227
- package/src/ChainManager.res +6 -14
- package/src/ChainManager.res.mjs +74 -85
- package/src/ChainMap.res +14 -16
- package/src/ChainMap.res.mjs +38 -38
- package/src/Config.res +193 -135
- package/src/Config.res.mjs +566 -592
- package/src/Core.res +182 -0
- package/src/Core.res.mjs +207 -0
- package/src/Ecosystem.res +25 -4
- package/src/Ecosystem.res.mjs +12 -13
- package/src/Env.res +20 -13
- package/src/Env.res.mjs +124 -113
- package/src/EnvSafe.res +269 -0
- package/src/EnvSafe.res.mjs +296 -0
- package/src/EnvSafe.resi +18 -0
- package/src/Envio.res +37 -26
- package/src/Envio.res.mjs +59 -60
- package/src/ErrorHandling.res +2 -2
- package/src/ErrorHandling.res.mjs +15 -15
- package/src/EventConfigBuilder.res +219 -81
- package/src/EventConfigBuilder.res.mjs +259 -202
- package/src/EventProcessing.res +27 -38
- package/src/EventProcessing.res.mjs +165 -183
- package/src/EventUtils.res +11 -11
- package/src/EventUtils.res.mjs +21 -22
- package/src/EvmTypes.res +0 -1
- package/src/EvmTypes.res.mjs +5 -5
- package/src/FetchState.res +360 -256
- package/src/FetchState.res.mjs +958 -914
- package/src/GlobalState.res +365 -351
- package/src/GlobalState.res.mjs +958 -992
- package/src/GlobalStateManager.res +1 -2
- package/src/GlobalStateManager.res.mjs +36 -44
- package/src/HandlerLoader.res +107 -23
- package/src/HandlerLoader.res.mjs +128 -38
- package/src/HandlerRegister.res +127 -103
- package/src/HandlerRegister.res.mjs +164 -164
- package/src/HandlerRegister.resi +12 -4
- package/src/Hasura.res +35 -22
- package/src/Hasura.res.mjs +158 -167
- package/src/InMemoryStore.res +20 -27
- package/src/InMemoryStore.res.mjs +64 -80
- package/src/InMemoryTable.res +34 -39
- package/src/InMemoryTable.res.mjs +165 -170
- package/src/Internal.res +52 -33
- package/src/Internal.res.mjs +84 -81
- package/src/LazyLoader.res.mjs +55 -61
- package/src/LoadLayer.res +77 -78
- package/src/LoadLayer.res.mjs +160 -189
- package/src/LoadManager.res +16 -21
- package/src/LoadManager.res.mjs +79 -84
- package/src/LogSelection.res +236 -68
- package/src/LogSelection.res.mjs +211 -141
- package/src/Logging.res +13 -9
- package/src/Logging.res.mjs +130 -143
- package/src/Main.res +430 -51
- package/src/Main.res.mjs +530 -271
- package/src/Persistence.res +80 -84
- package/src/Persistence.res.mjs +131 -132
- package/src/PgStorage.res +294 -167
- package/src/PgStorage.res.mjs +799 -817
- package/src/Prometheus.res +50 -58
- package/src/Prometheus.res.mjs +345 -373
- package/src/ReorgDetection.res +22 -24
- package/src/ReorgDetection.res.mjs +100 -106
- package/src/SafeCheckpointTracking.res +7 -7
- package/src/SafeCheckpointTracking.res.mjs +40 -43
- package/src/SimulateItems.res +41 -49
- package/src/SimulateItems.res.mjs +257 -272
- package/src/Sink.res +2 -2
- package/src/Sink.res.mjs +22 -26
- package/src/TableIndices.res +1 -2
- package/src/TableIndices.res.mjs +42 -48
- package/src/TestIndexer.res +196 -189
- package/src/TestIndexer.res.mjs +536 -536
- package/src/TestIndexerProxyStorage.res +16 -16
- package/src/TestIndexerProxyStorage.res.mjs +99 -122
- package/src/TestIndexerWorker.res +4 -0
- package/src/TestIndexerWorker.res.mjs +7 -0
- package/src/Throttler.res +3 -3
- package/src/Throttler.res.mjs +23 -24
- package/src/Time.res +1 -1
- package/src/Time.res.mjs +18 -21
- package/src/TopicFilter.res +3 -3
- package/src/TopicFilter.res.mjs +29 -30
- package/src/UserContext.res +93 -54
- package/src/UserContext.res.mjs +197 -182
- package/src/Utils.res +141 -86
- package/src/Utils.res.mjs +334 -295
- package/src/bindings/BigDecimal.res +0 -2
- package/src/bindings/BigDecimal.res.mjs +19 -23
- package/src/bindings/ClickHouse.res +28 -27
- package/src/bindings/ClickHouse.res.mjs +243 -240
- package/src/bindings/DateFns.res +11 -11
- package/src/bindings/DateFns.res.mjs +7 -7
- package/src/bindings/EventSource.res.mjs +2 -2
- package/src/bindings/Express.res +2 -5
- package/src/bindings/Hrtime.res +2 -2
- package/src/bindings/Hrtime.res.mjs +30 -32
- package/src/bindings/Lodash.res.mjs +1 -1
- package/src/bindings/NodeJs.res +14 -9
- package/src/bindings/NodeJs.res.mjs +20 -20
- package/src/bindings/Pino.res +8 -10
- package/src/bindings/Pino.res.mjs +40 -43
- package/src/bindings/Postgres.res +7 -5
- package/src/bindings/Postgres.res.mjs +9 -9
- package/src/bindings/PromClient.res +17 -2
- package/src/bindings/PromClient.res.mjs +30 -7
- package/src/bindings/SDSL.res.mjs +2 -2
- package/src/bindings/Viem.res +4 -4
- package/src/bindings/Viem.res.mjs +20 -22
- package/src/bindings/Vitest.res +1 -1
- package/src/bindings/Vitest.res.mjs +2 -2
- package/src/bindings/WebSocket.res +1 -1
- package/src/db/EntityHistory.res +9 -3
- package/src/db/EntityHistory.res.mjs +84 -59
- package/src/db/InternalTable.res +62 -60
- package/src/db/InternalTable.res.mjs +271 -203
- package/src/db/Schema.res +1 -2
- package/src/db/Schema.res.mjs +28 -32
- package/src/db/Table.res +28 -27
- package/src/db/Table.res.mjs +276 -292
- package/src/sources/EventRouter.res +21 -16
- package/src/sources/EventRouter.res.mjs +55 -57
- package/src/sources/Evm.res +17 -1
- package/src/sources/Evm.res.mjs +16 -8
- package/src/sources/EvmChain.res +15 -17
- package/src/sources/EvmChain.res.mjs +40 -42
- package/src/sources/Fuel.res +14 -1
- package/src/sources/Fuel.res.mjs +16 -8
- package/src/sources/FuelSDK.res +1 -1
- package/src/sources/FuelSDK.res.mjs +6 -8
- package/src/sources/HyperFuel.res +8 -10
- package/src/sources/HyperFuel.res.mjs +113 -123
- package/src/sources/HyperFuelClient.res.mjs +6 -7
- package/src/sources/HyperFuelSource.res +19 -20
- package/src/sources/HyperFuelSource.res.mjs +339 -356
- package/src/sources/HyperSync.res +11 -13
- package/src/sources/HyperSync.res.mjs +206 -220
- package/src/sources/HyperSyncClient.res +5 -7
- package/src/sources/HyperSyncClient.res.mjs +70 -75
- package/src/sources/HyperSyncHeightStream.res +8 -9
- package/src/sources/HyperSyncHeightStream.res.mjs +78 -86
- package/src/sources/HyperSyncJsonApi.res +18 -15
- package/src/sources/HyperSyncJsonApi.res.mjs +201 -231
- package/src/sources/HyperSyncSource.res +17 -21
- package/src/sources/HyperSyncSource.res.mjs +268 -290
- package/src/sources/Rpc.res +5 -5
- package/src/sources/Rpc.res.mjs +168 -192
- package/src/sources/RpcSource.res +166 -167
- package/src/sources/RpcSource.res.mjs +972 -1046
- package/src/sources/RpcWebSocketHeightStream.res +10 -11
- package/src/sources/RpcWebSocketHeightStream.res.mjs +131 -145
- package/src/sources/SimulateSource.res +1 -1
- package/src/sources/SimulateSource.res.mjs +35 -38
- package/src/sources/Source.res +1 -1
- package/src/sources/Source.res.mjs +3 -3
- package/src/sources/SourceManager.res +39 -20
- package/src/sources/SourceManager.res.mjs +340 -371
- package/src/sources/SourceManager.resi +2 -1
- package/src/sources/Svm.res +12 -5
- package/src/sources/Svm.res.mjs +44 -41
- package/src/tui/Tui.res +23 -12
- package/src/tui/Tui.res.mjs +292 -290
- package/src/tui/bindings/Ink.res +2 -4
- package/src/tui/bindings/Ink.res.mjs +35 -41
- package/src/tui/components/BufferedProgressBar.res +7 -7
- package/src/tui/components/BufferedProgressBar.res.mjs +46 -46
- package/src/tui/components/CustomHooks.res +1 -2
- package/src/tui/components/CustomHooks.res.mjs +102 -122
- package/src/tui/components/Messages.res +1 -2
- package/src/tui/components/Messages.res.mjs +38 -42
- package/src/tui/components/SyncETA.res +10 -11
- package/src/tui/components/SyncETA.res.mjs +178 -196
- package/src/tui/components/TuiData.res +1 -1
- package/src/tui/components/TuiData.res.mjs +7 -6
- package/src/vendored/Rest.res +52 -66
- package/src/vendored/Rest.res.mjs +324 -364
- package/svm.schema.json +67 -0
- package/src/Address.gen.ts +0 -8
- package/src/Config.gen.ts +0 -19
- package/src/Envio.gen.ts +0 -55
- package/src/EvmTypes.gen.ts +0 -6
- package/src/InMemoryStore.gen.ts +0 -6
- package/src/Internal.gen.ts +0 -64
- package/src/PgStorage.gen.ts +0 -10
- package/src/PgStorage.res.d.mts +0 -5
- package/src/Types.ts +0 -56
- package/src/bindings/BigDecimal.gen.ts +0 -14
- package/src/bindings/BigDecimal.res.d.mts +0 -5
- package/src/bindings/BigInt.gen.ts +0 -10
- package/src/bindings/BigInt.res +0 -70
- package/src/bindings/BigInt.res.d.mts +0 -5
- package/src/bindings/BigInt.res.mjs +0 -154
- package/src/bindings/Ethers.res.d.mts +0 -5
- package/src/bindings/Pino.gen.ts +0 -17
- package/src/bindings/Postgres.gen.ts +0 -8
- package/src/bindings/Postgres.res.d.mts +0 -5
- package/src/bindings/Promise.res +0 -67
- package/src/bindings/Promise.res.mjs +0 -26
- package/src/db/InternalTable.gen.ts +0 -36
- package/src/sources/HyperSyncClient.gen.ts +0 -19
package/src/Prometheus.res
CHANGED
|
@@ -22,7 +22,7 @@ module Labels = {
|
|
|
22
22
|
switch nonStringFields {
|
|
23
23
|
| [] => items->Belt.Array.map(item => item.location)->Ok
|
|
24
24
|
| nonStringItems =>
|
|
25
|
-
let nonStringItems = nonStringItems->
|
|
25
|
+
let nonStringItems = nonStringItems->Array.joinUnsafe(", ")
|
|
26
26
|
Error(
|
|
27
27
|
`Label schema must be an object with string (or optional string) values. Non string values: ${nonStringItems}`,
|
|
28
28
|
)
|
|
@@ -55,7 +55,7 @@ module MakeSafePromMetric = (
|
|
|
55
55
|
switch labelSchema->Labels.getLabelNames {
|
|
56
56
|
| Ok(labelNames) =>
|
|
57
57
|
if metricNames->Utils.Set.has(name) {
|
|
58
|
-
|
|
58
|
+
JsError.throwWithMessage("Duplicate prometheus metric name: " ++ name)
|
|
59
59
|
} else {
|
|
60
60
|
metricNames->Utils.Set.add(name)->ignore
|
|
61
61
|
let metric = M.make({
|
|
@@ -67,7 +67,7 @@ module MakeSafePromMetric = (
|
|
|
67
67
|
{metric, labelSchema}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
| Error(error) =>
|
|
70
|
+
| Error(error) => JsError.throwWithMessage(error)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
let handleFloat = ({metric, labelSchema}: t<'a>, ~labels: 'a, ~value) =>
|
|
@@ -117,7 +117,6 @@ module SafeGauge = MakeSafePromMetric({
|
|
|
117
117
|
let handleFloat = PromClient.Gauge.setFloat
|
|
118
118
|
})
|
|
119
119
|
|
|
120
|
-
|
|
121
120
|
module ProcessingBatch = {
|
|
122
121
|
let loadTimeCounter = PromClient.Counter.makeCounter({
|
|
123
122
|
"name": "envio_preload_seconds",
|
|
@@ -129,21 +128,9 @@ module ProcessingBatch = {
|
|
|
129
128
|
"help": "Cumulative time spent executing event handlers during batch processing.",
|
|
130
129
|
})
|
|
131
130
|
|
|
132
|
-
let
|
|
133
|
-
"name": "envio_storage_write_seconds",
|
|
134
|
-
"help": "Cumulative time spent writing batch data to storage.",
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
let writeCount = PromClient.Counter.makeCounter({
|
|
138
|
-
"name": "envio_storage_write_total",
|
|
139
|
-
"help": "Total number of batch writes to storage.",
|
|
140
|
-
})
|
|
141
|
-
|
|
142
|
-
let registerMetrics = (~loadDuration, ~handlerDuration, ~dbWriteDuration) => {
|
|
131
|
+
let registerMetrics = (~loadDuration, ~handlerDuration) => {
|
|
143
132
|
loadTimeCounter->PromClient.Counter.incMany(loadDuration->(Utils.magic: float => int))
|
|
144
133
|
handlerTimeCounter->PromClient.Counter.incMany(handlerDuration->(Utils.magic: float => int))
|
|
145
|
-
writeTimeCounter->PromClient.Counter.incMany(dbWriteDuration->(Utils.magic: float => int))
|
|
146
|
-
writeCount->PromClient.Counter.inc
|
|
147
134
|
}
|
|
148
135
|
}
|
|
149
136
|
|
|
@@ -227,7 +214,7 @@ module PreloadHandler = {
|
|
|
227
214
|
mutable pendingCount: int,
|
|
228
215
|
timerRef: Hrtime.timeRef,
|
|
229
216
|
}
|
|
230
|
-
let operations:
|
|
217
|
+
let operations: dict<operationRef> = Dict.make()
|
|
231
218
|
|
|
232
219
|
let makeKey = (~contract, ~event) => contract ++ ":" ++ event
|
|
233
220
|
|
|
@@ -236,7 +223,7 @@ module PreloadHandler = {
|
|
|
236
223
|
switch operations->Utils.Dict.dangerouslyGetNonOption(key) {
|
|
237
224
|
| Some(operationRef) => operationRef.pendingCount = operationRef.pendingCount + 1
|
|
238
225
|
| None =>
|
|
239
|
-
operations->
|
|
226
|
+
operations->Dict.set(
|
|
240
227
|
key,
|
|
241
228
|
{
|
|
242
229
|
pendingCount: 1,
|
|
@@ -250,7 +237,7 @@ module PreloadHandler = {
|
|
|
250
237
|
let endOperation = (timerRef, ~contract, ~event) => {
|
|
251
238
|
let key = makeKey(~contract, ~event)
|
|
252
239
|
let labels = {"contract": contract, "event": event}
|
|
253
|
-
let operationRef = operations->
|
|
240
|
+
let operationRef = operations->Dict.getUnsafe(key)
|
|
254
241
|
operationRef.pendingCount = operationRef.pendingCount - 1
|
|
255
242
|
if operationRef.pendingCount === 0 {
|
|
256
243
|
timeCounter->SafeCounter.handleFloat(
|
|
@@ -348,7 +335,7 @@ module ProcessStartTimeSeconds = {
|
|
|
348
335
|
})
|
|
349
336
|
|
|
350
337
|
let set = () => {
|
|
351
|
-
gauge->PromClient.Gauge.setFloat(
|
|
338
|
+
gauge->PromClient.Gauge.setFloat(Date.now() /. 1000.0)
|
|
352
339
|
}
|
|
353
340
|
}
|
|
354
341
|
|
|
@@ -593,9 +580,7 @@ module RollbackSuccess = {
|
|
|
593
580
|
let increment = (~timeSeconds: float, ~rollbackedProcessedEvents: float) => {
|
|
594
581
|
timeCounter->PromClient.Counter.incMany(timeSeconds->(Utils.magic: float => int))
|
|
595
582
|
counter->PromClient.Counter.inc
|
|
596
|
-
eventsCounter->PromClient.Counter.incMany(
|
|
597
|
-
rollbackedProcessedEvents->Utils.floatToInt,
|
|
598
|
-
)
|
|
583
|
+
eventsCounter->PromClient.Counter.incMany(rollbackedProcessedEvents->Utils.floatToInt)
|
|
599
584
|
}
|
|
600
585
|
}
|
|
601
586
|
|
|
@@ -663,10 +648,7 @@ module ProgressEventsCount = {
|
|
|
663
648
|
)
|
|
664
649
|
|
|
665
650
|
let set = (~processedCount: float, ~chainId) => {
|
|
666
|
-
gauge->SafeGauge.handleFloat(
|
|
667
|
-
~labels=chainId,
|
|
668
|
-
~value=processedCount,
|
|
669
|
-
)
|
|
651
|
+
gauge->SafeGauge.handleFloat(~labels=chainId, ~value=processedCount)
|
|
670
652
|
}
|
|
671
653
|
}
|
|
672
654
|
|
|
@@ -755,50 +737,58 @@ module EffectQueueCount = {
|
|
|
755
737
|
}
|
|
756
738
|
|
|
757
739
|
module StorageLoad = {
|
|
758
|
-
let
|
|
740
|
+
let loadLabelsSchema = S.schema(s =>
|
|
741
|
+
{
|
|
742
|
+
"operation": s.matches(S.string),
|
|
743
|
+
"storage": s.matches(S.string),
|
|
744
|
+
}
|
|
745
|
+
)
|
|
759
746
|
|
|
760
747
|
let timeCounter = SafeCounter.makeOrThrow(
|
|
761
748
|
~name="envio_storage_load_seconds",
|
|
762
749
|
~help="Processing time taken to load data from storage.",
|
|
763
|
-
~labelSchema=
|
|
750
|
+
~labelSchema=loadLabelsSchema,
|
|
764
751
|
)
|
|
765
752
|
|
|
766
753
|
let sumTimeCounter = SafeCounter.makeOrThrow(
|
|
767
754
|
~name="envio_storage_load_seconds_total",
|
|
768
755
|
~help="Cumulative time spent loading data from storage during the indexing process.",
|
|
769
|
-
~labelSchema=
|
|
756
|
+
~labelSchema=loadLabelsSchema,
|
|
770
757
|
)
|
|
771
758
|
|
|
772
759
|
let counter = SafeCounter.makeOrThrow(
|
|
773
760
|
~name="envio_storage_load_total",
|
|
774
761
|
~help="Cumulative number of successful storage load operations during the indexing process.",
|
|
775
|
-
~labelSchema=
|
|
762
|
+
~labelSchema=loadLabelsSchema,
|
|
776
763
|
)
|
|
777
764
|
|
|
778
765
|
let whereSizeCounter = SafeCounter.makeOrThrow(
|
|
779
766
|
~name="envio_storage_load_where_size",
|
|
780
767
|
~help="Cumulative number of filter conditions ('where' items) used in storage load operations during the indexing process.",
|
|
781
|
-
~labelSchema=
|
|
768
|
+
~labelSchema=loadLabelsSchema,
|
|
782
769
|
)
|
|
783
770
|
|
|
784
771
|
let sizeCounter = SafeCounter.makeOrThrow(
|
|
785
772
|
~name="envio_storage_load_size",
|
|
786
773
|
~help="Cumulative number of records loaded from storage during the indexing process.",
|
|
787
|
-
~labelSchema=
|
|
774
|
+
~labelSchema=loadLabelsSchema,
|
|
788
775
|
)
|
|
789
776
|
|
|
790
777
|
type operationRef = {
|
|
791
778
|
mutable pendingCount: int,
|
|
792
779
|
timerRef: Hrtime.timeRef,
|
|
793
780
|
}
|
|
794
|
-
let operations =
|
|
781
|
+
let operations = Dict.make()
|
|
782
|
+
|
|
783
|
+
let makeKey = (~storage, ~operation) => storage ++ ":" ++ operation
|
|
795
784
|
|
|
796
|
-
let startOperation = (~operation) => {
|
|
797
|
-
|
|
785
|
+
let startOperation = (~storage, ~operation) => {
|
|
786
|
+
let key = makeKey(~storage, ~operation)
|
|
787
|
+
switch operations->Utils.Dict.dangerouslyGetNonOption(key) {
|
|
798
788
|
| Some(operationRef) => operationRef.pendingCount = operationRef.pendingCount + 1
|
|
799
789
|
| None =>
|
|
800
|
-
operations->
|
|
801
|
-
|
|
790
|
+
operations->Dict.set(
|
|
791
|
+
key,
|
|
802
792
|
(
|
|
803
793
|
{
|
|
804
794
|
pendingCount: 1,
|
|
@@ -810,43 +800,45 @@ module StorageLoad = {
|
|
|
810
800
|
Hrtime.makeTimer()
|
|
811
801
|
}
|
|
812
802
|
|
|
813
|
-
let endOperation = (timerRef, ~operation, ~whereSize, ~size) => {
|
|
814
|
-
let
|
|
803
|
+
let endOperation = (timerRef, ~storage, ~operation, ~whereSize, ~size) => {
|
|
804
|
+
let key = makeKey(~storage, ~operation)
|
|
805
|
+
let labels = {"operation": operation, "storage": storage}
|
|
806
|
+
let operationRef = operations->Dict.getUnsafe(key)
|
|
815
807
|
operationRef.pendingCount = operationRef.pendingCount - 1
|
|
816
808
|
if operationRef.pendingCount === 0 {
|
|
817
809
|
timeCounter->SafeCounter.handleFloat(
|
|
818
|
-
~labels
|
|
810
|
+
~labels,
|
|
819
811
|
~value=operationRef.timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
|
|
820
812
|
)
|
|
821
|
-
operations->Utils.Dict.deleteInPlace(
|
|
813
|
+
operations->Utils.Dict.deleteInPlace(key)
|
|
822
814
|
}
|
|
823
815
|
sumTimeCounter->SafeCounter.handleFloat(
|
|
824
|
-
~labels
|
|
816
|
+
~labels,
|
|
825
817
|
~value=timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
|
|
826
818
|
)
|
|
827
|
-
counter->SafeCounter.increment(~labels
|
|
828
|
-
whereSizeCounter->SafeCounter.handleInt(~labels
|
|
829
|
-
sizeCounter->SafeCounter.handleInt(~labels
|
|
819
|
+
counter->SafeCounter.increment(~labels)
|
|
820
|
+
whereSizeCounter->SafeCounter.handleInt(~labels, ~value=whereSize)
|
|
821
|
+
sizeCounter->SafeCounter.handleInt(~labels, ~value=size)
|
|
830
822
|
}
|
|
831
823
|
}
|
|
832
824
|
|
|
833
|
-
module
|
|
834
|
-
let
|
|
825
|
+
module StorageWrite = {
|
|
826
|
+
let storageLabelsSchema = S.object(s => s.field("storage", S.string))
|
|
835
827
|
|
|
836
828
|
let timeCounter = SafeCounter.makeOrThrow(
|
|
837
|
-
~name="
|
|
838
|
-
~help="
|
|
839
|
-
~labelSchema=
|
|
829
|
+
~name="envio_storage_write_seconds",
|
|
830
|
+
~help="Cumulative time spent writing batch data to storage.",
|
|
831
|
+
~labelSchema=storageLabelsSchema,
|
|
840
832
|
)
|
|
841
833
|
|
|
842
834
|
let counter = SafeCounter.makeOrThrow(
|
|
843
|
-
~name="
|
|
844
|
-
~help="Cumulative number of successful
|
|
845
|
-
~labelSchema=
|
|
835
|
+
~name="envio_storage_write_total",
|
|
836
|
+
~help="Cumulative number of successful storage write operations during the indexing process.",
|
|
837
|
+
~labelSchema=storageLabelsSchema,
|
|
846
838
|
)
|
|
847
839
|
|
|
848
|
-
let increment = (~
|
|
849
|
-
timeCounter->SafeCounter.handleFloat(~labels={
|
|
850
|
-
counter->SafeCounter.increment(~labels={
|
|
840
|
+
let increment = (~storage, ~timeSeconds) => {
|
|
841
|
+
timeCounter->SafeCounter.handleFloat(~labels={storage}, ~value=timeSeconds)
|
|
842
|
+
counter->SafeCounter.increment(~labels={storage})
|
|
851
843
|
}
|
|
852
844
|
}
|