This repository was archived by the owner on Feb 12, 2024. It is now read-only.
File tree 2 files changed +32
-2
lines changed
2 files changed +32
-2
lines changed Original file line number Diff line number Diff line change 128
128
"lodash.get" : " ^4.4.2" ,
129
129
"lodash.sortby" : " ^4.7.0" ,
130
130
"lodash.values" : " ^4.3.0" ,
131
- "mime-types" : " ^2.1.13" ,
132
- "mafmt" : " ^2.1.8" ,
133
131
"mime-types" : " ^2.1.16" ,
132
+ "mafmt" : " ^2.1.8" ,
134
133
"mkdirp" : " ~0.5.1" ,
135
134
"multiaddr" : " ^2.3.0" ,
136
135
"multihashes" : " ~0.4.9" ,
Original file line number Diff line number Diff line change
1
+ 'use strict'
2
+
3
+ const register = require ( 'prom-client' ) . register
4
+ const client = require ( 'prom-client' )
5
+
6
+ // Endpoint for handling debug metrics
7
+ module . exports = ( server ) => {
8
+ const api = server . select ( 'API' )
9
+ // Clear the register to make sure we're not registering multiple ones
10
+ register . clear ( )
11
+ const gauge = new client . Gauge ( { name : 'number_of_peers' , help : 'the_number_of_currently_connected_peers' } )
12
+
13
+ api . route ( {
14
+ method : 'GET' ,
15
+ path : '/debug/metrics/prometheus' ,
16
+ handler : ( request , reply ) => {
17
+ if ( ! process . env . IPFS_MONITORING ) {
18
+ return reply ( 'Monitoring is disabled. Enable it by setting environment variable IPFS_MONITORING' )
19
+ . code ( 501 ) // 501 = Not Implemented
20
+ }
21
+ server . app . ipfs . swarm . peers ( ( err , res ) => {
22
+ if ( err ) {
23
+ return reply ( err ) . code ( 500 )
24
+ }
25
+ const count = res . length
26
+ gauge . set ( count )
27
+ reply ( register . metrics ( ) ) . header ( 'Content-Type' , register . contentType )
28
+ } )
29
+ }
30
+ } )
31
+ }
You can’t perform that action at this time.
0 commit comments