Skip to content

Commit f22813c

Browse files
committed
feat: web3 storage batch metrics
1 parent 4508a99 commit f22813c

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

common/telemetry.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ const networkInfoWriteClient = influx.getWriteApi(
2525
's' // precision
2626
)
2727

28+
// Add new write client for batch metrics
29+
const batchMetricsWriteClient = influx.getWriteApi(
30+
'Filecoin Station', // org
31+
'spark-batch-metrics', // bucket
32+
'ns' // precision
33+
)
34+
2835
setInterval(() => {
2936
publishWriteClient.flush().catch(console.error)
3037
networkInfoWriteClient.flush().catch(console.error)
38+
batchMetricsWriteClient.flush().catch(console.error)
3139
}, 10_000).unref()
3240

3341
const recordFn = (client, name, fn) => {
@@ -43,5 +51,6 @@ export {
4351
publishWriteClient,
4452
networkInfoWriteClient,
4553
recordPublishTelemetry,
46-
recordNetworkInfoTelemetry
54+
recordNetworkInfoTelemetry,
55+
batchMetricsWriteClient
4756
}

publish/index.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ export const publish = async ({
5353

5454
logger.log(`Publishing ${measurements.length} measurements. Total unpublished: ${totalCount}. Batch size: ${maxMeasurements}.`)
5555

56+
// Calculate batch size in bytes
57+
const batchSizeBytes = Buffer.byteLength(
58+
measurements.map(m => JSON.stringify(m)).join('\n')
59+
)
60+
5661
// Share measurements
5762
const start = new Date()
5863
const file = new File(
@@ -126,7 +131,9 @@ export const publish = async ({
126131

127132
logger.log('Done!')
128133

134+
// Enhanced telemetry recording with separate batch metrics
129135
recordTelemetry('publish', point => {
136+
// Existing metrics
130137
point.intField('round_index', roundIndex)
131138
point.intField('measurements', measurements.length)
132139
point.floatField('load', totalCount / maxMeasurements)
@@ -136,6 +143,16 @@ export const publish = async ({
136143
)
137144
point.intField('add_measurements_duration_ms', ieAddMeasurementsDuration)
138145
})
146+
147+
// Separate batch metrics recording for better organization
148+
recordTelemetry('batch_metrics', point => {
149+
point.intField('batch_size_bytes', batchSizeBytes)
150+
point.floatField('avg_measurement_size_bytes', batchSizeBytes / measurements.length)
151+
point.intField('measurement_count', measurements.length)
152+
point.tag('cid', cid.toString())
153+
point.tag('round_index', roundIndex.toString())
154+
point.timestamp(new Date())
155+
})
139156
}
140157

141158
const commitMeasurements = async ({ cid, ieContract, logger, stuckTransactionsCanceller }) => {

0 commit comments

Comments
 (0)