Skip to content

Commit 0a191eb

Browse files
authored
feat: add reset for other types (#11)
1 parent c0bb62e commit 0a191eb

File tree

4 files changed

+36
-6
lines changed

4 files changed

+36
-6
lines changed

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ Create metrics yaml configuration file:
2121
---
2222
component: bitswap-peer
2323
metrics:
24-
bitswap-total-connections: BitSwap Total Connections
25-
s3-request: AWS S3 requests
26-
dynamo-request: AWS DynamoDB requests
24+
count:
25+
bitswap-total-connections: BitSwap Total Connections
26+
s3-request: AWS S3 requests
27+
dynamo-request: AWS DynamoDB requests
2728
version: 0.1.0
2829
buildDate: "20220307.1423"
2930
```
@@ -39,7 +40,8 @@ telemetry.increaseCount('bitswap-total-connections', 2)
3940

4041
const result = await telemetry.export()
4142
console.log(result)
42-
telemetry.resetCount()
43+
telemetry.resetDurations()
44+
telemetry.resetCounters()
4345
```
4446

4547
#### Telemetry instance methods
@@ -52,6 +54,8 @@ telemetry.resetCount()
5254
```
5355
* resetAll(): Reset all metrics
5456
* resetCounters(): Reset count and labelCount metrics
57+
* resetDurations(): Reset durations metrics
58+
* resetGauges(): Reset gauges metrics
5559
* async export(): Export values in Prometheus format
5660
* increaseCount(category, amount = 1): Increase the count for a category
5761
* category: String - The given name of the category

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "e-ipfs-core-lib",
3-
"version": "0.4.0-beta-01",
3+
"version": "0.4.0",
44
"description": "E-IPFS core library",
55
"license": "(Apache-2.0 AND MIT)",
66
"homepage": "https://github.com/elastic-ipfs/core-lib",

src/telemetry.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,14 @@ class Telemetry {
7676
this.labelCountRegistry.resetMetrics()
7777
}
7878

79+
resetDurations () {
80+
this.durationsRegistry.resetMetrics()
81+
}
82+
83+
resetGauges () {
84+
this.gaugeRegistry.resetMetrics()
85+
}
86+
7987
async export () {
8088
return this.allRegistry.metrics()
8189
}

test/telemetry.test.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,24 @@ t.test('Telemetry', async t => {
203203
`.trim())
204204
})
205205

206+
t.test('should reset only the gauge', async t => {
207+
const telemetry = new Telemetry({ configFile, logger })
208+
telemetry.increaseGauge('bitswap-total-connections')
209+
telemetry.increaseGauge('bitswap-total-connections', 10)
210+
211+
telemetry.resetGauges()
212+
213+
t.equal((await telemetry.gaugeRegistry.metrics()).trim(), dedent`
214+
# HELP bitswap_event_loop_utilization BitSwap Event Loop Utilization
215+
# TYPE bitswap_event_loop_utilization gauge
216+
bitswap_event_loop_utilization 0
217+
218+
# HELP bitswap_total_connections BitSwap Total Connections
219+
# TYPE bitswap_total_connections gauge
220+
bitswap_total_connections 0
221+
`.trim())
222+
})
223+
206224
t.test('all metrics should be defined in the config file', async t => {
207225
const telemetry = new Telemetry({ configFile, logger })
208226
t.throws(() => telemetry.increaseGauge('unknown'), { message: 'Metric unknown not found' })
@@ -227,7 +245,7 @@ t.test('Telemetry', async t => {
227245
await telemetry.trackDuration('bitswap-connections-duration-durations', async () => { await setTimeoutAsync(300) })
228246
])
229247
t.ok((await telemetry.durationsRegistry.metrics()).includes('bitswap_connections_duration_durations_count 6'))
230-
telemetry.resetAll()
248+
telemetry.resetDurations()
231249
t.ok(!(await telemetry.durationsRegistry.metrics()).includes('bitswap_connections_duration_durations_count'))
232250
})
233251

0 commit comments

Comments
 (0)