expressenab / bigip_exporter Goto Github PK
View Code? Open in Web Editor NEWPrometheus exporter for BIG-IP metrics
License: MIT License
Prometheus exporter for BIG-IP metrics
License: MIT License
Currently all events are handled as the same metric with the same labels causing them to overwrite each other and with newer version of prometheus golang_client, crash. The event should be included in a label.
I'm using the exporter in a cluster with multiple bigip instances (I also have multiple exporter instances as well).
It will be very helpful if the exporter will add a label with the bigip host it is collecting data from.
I am testing the exporter in windows 10 connecting my BigIP equipment in local network and I received the erro message in subject.
Follow the log that I received in my screen
fatal error: concurrent map read and map write
goroutine 567 [running]:
runtime.throw(0x8f5c9e, 0x21)
/usr/local/go/src/runtime/panic.go:566 +0x9c fp=0xc04233ee60 sp=0xc04233ee40
runtime.mapaccess1_faststr(0x893600, 0xc0420ff0b0, 0x8ea73b, 0xf, 0xc04233ef20)
/usr/local/go/src/runtime/hashmap_fast.go:201 +0x4fa fp=0xc04233eec0 sp=0xc04233ee60
net/textproto.MIMEHeader.Get(0xc0420ff0b0, 0x8ea73b, 0xf, 0xc04233f4a8, 0xc04233f4a0)
/usr/local/go/src/net/textproto/header.go:33 +0x7c fp=0xc04233eef8 sp=0xc04233eec0
net/http.Header.Get(0xc0420ff0b0, 0x8ea73b, 0xf, 0x0, 0xc04255b9e0)
/usr/local/go/src/net/http/header.go:39 +0x46 fp=0xc04233ef30 sp=0xc04233eef8
github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping.(*Session).Send(0xc0420e97f0, 0xc0421c2340, 0x0, 0x0, 0x0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping/session.go:91 +0x2401 fp=0xc04233f6e0 sp=0xc04233ef30
github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping.(*Session).Get(0xc0420e97f0, 0xc04255a060, 0x2f, 0x0, 0x829360, 0xc0422c4ea0, 0x827ba0, 0xc04255b6e0, 0x2, 0xc042331898, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping/session.go:266 +0x122 fp=0xc04233f7e8 sp=0xc04233f6e0
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).sendRequest(0xc0420e97c0, 0xc04255a060, 0x2f, 0x0, 0x0, 0x0, 0x826ca0, 0xc04255a120, 0x17, 0xc04255a060, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:194 +0x6f5 fp=0xc04233fa90 sp=0xc04233f7e8
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ShowAllNodeStats(0xc0420e97c0, 0x2abb5e20, 0xb3d020, 0xc042000800)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/node.go:155 +0x12d fp=0xc04233fb10 sp=0xc04233fa90
github.com/ExpressenAB/bigip_exporter/collector.(*NodeCollector).Collect(0xc042104500, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/node_collector.go:182 +0x92 fp=0xc04233ff50 sp=0xc04233fb10
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect.func1(0xc042415860, 0xc0422c6000, 0xb0d040, 0xc042104500)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:53 +0x42 fp=0xc04233ff70 sp=0xc04233ff50
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc04233ff78 sp=0xc04233ff70
created by github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:55 +0x148
goroutine 1 [IO wait, 3 minutes]:
net.runtime_pollWait(0x3060f00, 0x72, 0xc0420d43e0)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).wait(0xc0421ea170, 0x72, 0xc0420d43e0, 0xc0420799f8)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3f
net.(*ioSrv).ExecIO(0xc0421e8000, 0xc0421ea060, 0x8e5e5a, 0x8, 0xc0420d6ea0, 0xc0421ea300, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:171 +0x183
net.(*netFD).acceptOne(0xc0421ea000, 0xc0421ee0e0, 0x2, 0x2, 0xc0421ea060, 0xc042079bd8, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:529 +0x1f8
net.(*netFD).accept(0xc0421ea000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:559 +0x131
net.(*TCPListener).accept(0xc0421e8010, 0x29e8d60800, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:132 +0x35
net.(*TCPListener).AcceptTCP(0xc0421e8010, 0xc042079ce8, 0xc042079cf0, 0xc042079ce0)
/usr/local/go/src/net/tcpsock.go:209 +0x50
net/http.tcpKeepAliveListener.Accept(0xc0421e8010, 0x926938, 0xc0421f0000, 0xb10280, 0xc0420da630)
/usr/local/go/src/net/http/server.go:2608 +0x36
net/http.(*Server).Serve(0xc04203a480, 0xb0fd00, 0xc0421e8010, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2273 +0x1d5
net/http.(*Server).ListenAndServe(0xc04203a480, 0xc04203a480, 0xc042005930)
/usr/local/go/src/net/http/server.go:2219 +0xbb
net/http.ListenAndServe(0xc042005930, 0xe, 0x0, 0x0, 0x1, 0xc042005920)
/usr/local/go/src/net/http/server.go:2351 +0xa7
main.listen(0x8e7112, 0x9, 0x23b6)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/bigip_exporter.go:31 +0x100
main.main()
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/bigip_exporter.go:55 +0x26c
goroutine 18 [chan receive]:
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather(0xc04200ca00, 0x0, 0x0, 0x0, 0x0, 0x0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:404 +0x542
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.UninstrumentedHandler.func1(0xb0efc0, 0xc042102018, 0xc0422f8000)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/http.go:75 +0x4e
net/http.HandlerFunc.ServeHTTP(0x926480, 0xb0efc0, 0xc042102018, 0xc0422f8000)
/usr/local/go/src/net/http/server.go:1726 +0x4b
net/http.(Handler).ServeHTTP-fm(0xb0efc0, 0xc042102018, 0xc0422f8000)
/usr/local/go/src/net/http/h2_bundle.go:4084 +0x54
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.InstrumentHandlerFuncWithOpts.func1(0xb0f9c0, 0xc0420d2000, 0xc0422f8000)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/http.go:306 +0x26c
net/http.HandlerFunc.ServeHTTP(0xc042006ff0, 0xb0f9c0, 0xc0420d2000, 0xc0422f8000)
/usr/local/go/src/net/http/server.go:1726 +0x4b
net/http.(*ServeMux).ServeHTTP(0xb3cd80, 0xb0f9c0, 0xc0420d2000, 0xc0422f8000)
/usr/local/go/src/net/http/server.go:2022 +0x86
net/http.serverHandler.ServeHTTP(0xc04203a480, 0xb0f9c0, 0xc0420d2000, 0xc0422f8000)
/usr/local/go/src/net/http/server.go:2202 +0x84
net/http.(*conn).serve(0xc0421f0000, 0xb101c0, 0xc0420dc180)
/usr/local/go/src/net/http/server.go:1579 +0x4be
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2293 +0x454
goroutine 592 [select]:
net/http.(*persistConn).readLoop(0xc042108000)
/usr/local/go/src/net/http/transport.go:1541 +0x9d0
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1062 +0x4f0
goroutine 588 [semacquire]:
sync.runtime_Semacquire(0xc0422c600c)
/usr/local/go/src/runtime/sema.go:47 +0x37
sync.(*WaitGroup).Wait(0xc0422c6000)
/usr/local/go/src/sync/waitgroup.go:131 +0x9e
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect(0xc042194e40, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:57 +0x174
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather.func2(0xc0422c4e10, 0xc042415860, 0xb0d000, 0xc042194e40)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:382 +0x6a
created by github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:383 +0x32d
goroutine 569 [semacquire]:
sync.runtime_Semacquire(0xb595ac)
/usr/local/go/src/runtime/sema.go:47 +0x37
sync.(*Mutex).Lock(0xb595a8)
/usr/local/go/src/sync/mutex.go:85 +0xd7
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ensureValidToken(0xc0420e97c0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:343 +0x38
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).sendRequest(0xc0420e97c0, 0xc04228d800, 0x2f, 0x0, 0x0, 0x0, 0x827520, 0xc04228d9b0, 0x17, 0xc04228d800, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:179 +0xa56
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ShowAllRuleStats(0xc0420e97c0, 0x2abb5e20, 0xb3d020, 0xc042028400)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/rule.go:113 +0x12d
github.com/ExpressenAB/bigip_exporter/collector.(*RuleCollector).Collect(0xc0421045c0, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/rule_collector.go:143 +0x84
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect.func1(0xc042415860, 0xc0422c6000, 0xb0d0c0, 0xc0421045c0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:53 +0x42
created by github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:55 +0x148
goroutine 593 [select]:
net/http.(*persistConn).writeLoop(0xc042108000)
/usr/local/go/src/net/http/transport.go:1646 +0x3c4
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1063 +0x515
goroutine 570 [runnable]:
net/http.(*persistConn).roundTrip(0xc042108000, 0xc04228e400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1840 +0x942
net/http.(*Transport).RoundTrip(0xb3d1a0, 0xc0421860f0, 0xb3d1a0, 0x0, 0xc000000000)
/usr/local/go/src/net/http/transport.go:380 +0x4f5
net/http.send(0xc0421860f0, 0xb0a640, 0xb3d1a0, 0x0, 0x0, 0x0, 0x8, 0xc0421e8068, 0x40fd5f)
/usr/local/go/src/net/http/client.go:256 +0x166
net/http.(*Client).send(0xb3ce40, 0xc0421860f0, 0x0, 0x0, 0x0, 0xc0421e8068, 0x0, 0x1)
/usr/local/go/src/net/http/client.go:146 +0x109
net/http.(*Client).doFollowingRedirects(0xb3ce40, 0xc0421860f0, 0x926ae8, 0x4, 0x45ac01, 0x151781f2f60c9da0)
/usr/local/go/src/net/http/client.go:528 +0x5ec
net/http.(*Client).Do(0xb3ce40, 0xc0421860f0, 0xb3d020, 0x5, 0x1)
/usr/local/go/src/net/http/client.go:187 +0x124
github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping.(*Session).Send(0xc0420e97f0, 0xc0420e6000, 0x0, 0x0, 0x0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping/session.go:201 +0x6d8
github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping.(*Session).Post(0xc0420e97f0, 0xc04244eae0, 0x30, 0x867ee0, 0xc04228e280, 0x827be0, 0xc04228e2c0, 0x827ba0, 0xc04244ec90, 0xc04244eae0, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/jmcvetta/napping/session.go:300 +0x12f
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).GetToken(0xc0420e97c0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:315 +0x40f
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ensureValidToken(0xc0420e97c0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:346 +0x95
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).sendRequest(0xc0420e97c0, 0xc0420dc200, 0x32, 0x0, 0x0, 0x0, 0x827960, 0xc04228d4d0, 0x1a, 0xc0420dc200, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:179 +0xa56
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ShowAllVirtualStats(0xc0420e97c0, 0x38383a222abb5e20, 0xb3d020, 0x76726573222c7d36)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/virtual.go:181 +0x12d
github.com/ExpressenAB/bigip_exporter/collector.(*VSCollector).Collect(0xc042104380, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/vs_collector.go:482 +0x8a
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect.func1(0xc042415860, 0xc0422c6000, 0xb0d100, 0xc042104380)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:53 +0x42
created by github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:55 +0x148
goroutine 568 [semacquire]:
sync.runtime_Semacquire(0xb595ac)
/usr/local/go/src/runtime/sema.go:47 +0x37
sync.(*Mutex).Lock(0xb595a8)
/usr/local/go/src/sync/mutex.go:85 +0xd7
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ensureValidToken(0xc0420e97c0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:343 +0x38
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).sendRequest(0xc0420e97c0, 0xc04228d500, 0x2f, 0x0, 0x0, 0x0, 0x827220, 0xc04228d650, 0x17, 0xc04228d500, ...)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/f5.go:179 +0xa56
github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5.(*Device).ShowAllPoolStats(0xc0420e97c0, 0x2abb5e20, 0xb3d020, 0xc042465ac8)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/pr8kerl/f5er/f5/pool.go:180 +0x12d
github.com/ExpressenAB/bigip_exporter/collector.(*PoolCollector).Collect(0xc042104440, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/pool_collector.go:350 +0x8a
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect.func1(0xc042415860, 0xc0422c6000, 0xb0d080, 0xc042104440)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:53 +0x42
created by github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:55 +0x148
goroutine 584 [semacquire]:
sync.runtime_Semacquire(0xc0422c4e1c)
/usr/local/go/src/runtime/sema.go:47 +0x37
sync.(*WaitGroup).Wait(0xc0422c4e10)
/usr/local/go/src/sync/waitgroup.go:131 +0x9e
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather.func1(0xc0422c4e10, 0xc042415860)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:376 +0x34
created by github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:378 +0x285
Could that be updated?
Thanks for all your work!
Hello, what would the configuration be like if it is an F5 cluster, I have two nodes, one active and the other passive
hi - when i run the get command -
go get github.com/ExpressenAB/bigip_exporter
i get this error - how can i fix this ?
/root/go/pkg/mod/github.com/!expressen!a!b/[email protected]/bigip_exporter.go:20:26: undefined: prometheus.Handler
thanks
M.
BigIP_exporter doesn't export pool member statistics.
Unfortunately, f5er library doesn't provide any method to get all member statistics in on request. I have created an new issue in this project.
The F5 REST API provides an endpoint to get this statistics.
Hi,
i'm running exporter in debug mode in foreground. My BigIP has Version BIG-IP 11.6.0 Build 5.0.429 Hotfix HF5. After a while, i'm getting this error:
17:42:57 DEBUG node_collector.go:204 Successfully fetched statistics for nodes
17:42:57 DEBUG node_collector.go:211 Getting node statistics took 585.037792ms
17:42:57 DEBUG pool_collector.go:372 Successfully fetched statistics for pools
17:42:57 DEBUG pool_collector.go:379 Getting pool statistics took 870.630355ms
17:42:58 DEBUG vs_collector.go:504 Successfully fetched statistics for virtual servers
17:42:58 DEBUG vs_collector.go:511 Getting virtual server statistics took 2.202604024s
17:42:58 DEBUG rule_collector.go:167 Successfully fetched statistics for rules
17:42:58 DEBUG rule_collector.go:174 Getting rule stats took 2.259964622s
17:42:58 DEBUG bigip_collector.go:61 Total collection time was: 2.260005406s
17:43:58 DEBUG vs_collector.go:504 Successfully fetched statistics for virtual servers
17:43:58 DEBUG vs_collector.go:511 Getting virtual server statistics took 1.680180309s
17:43:58 DEBUG node_collector.go:204 Successfully fetched statistics for nodes
17:43:58 DEBUG node_collector.go:211 Getting node statistics took 1.725774764s
panic: runtime error: index out of range
goroutine 8306 [running]:
panic(0x858c00, 0xc4200100d0)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/ExpressenAB/bigip_exporter/collector.(*RuleCollector).Collect(0xc42005cf40, 0xc4207ce1e0)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/rule_collector.go:155 +0x812
github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect.func1(0xc4207ce1e0, 0xc42049c1e0, 0xafd0e0, 0xc42005cf40)
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:53 +0x3b
created by github.com/ExpressenAB/bigip_exporter/collector.(*BigipCollector).Collect
/Users/christoffer.gunning/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:55 +0x141
How can i help to solve this ?
Michael
Hello,
Thank you for your work on this exporter! I have found it is common for people to use Grafana to visualize Prometheus metrics and was wondering if you guys or anyone else have any Dashboards that could be shared with the community? I looked at the growing list of community dashboards at Grafana Labs but didn't see any for data from this exporter.
Thank you!
Hello Team,
We have a requirement to pull the Node and Pool Status using BigIP exporter.
For Ex:
We want all the node and pool stats shown by the URL mentioned below
https:///mgmt/tm/ltm/node/stats
Basically we are looking to get the following data with BigIP
"sessionStatus": {
"description": "enabled"
},
"status.availabilityState": {
"description": "Available"
},
"status.enabledState": {
"description": "enabled"
}
Please let us know how can we achieve this.
Thanks
Priyotosh
We've upgraded to BIG-IP 14.1.2.8 Build 0.0.7 Point Release 8.
And loose metrics.
For example, all apm related ones are not present, I used :
*_apm_ip_active_connections
*_apm_user_active_connections
I am trying to deploy a helm chart of bigip_exporter to monitor the f5_bigip_ctlr.
The chart installation succeeds but the pods keeps failing with following error:
panic: descriptor Desc{fqName: "my_namespace_rule_min_cycles", help: "min_cycles", constLabels: {}, variableLabels: [partition rule event]} is invalid: "my_namespace_rule_min_cycles" is not a valid metric name
goroutine 1 [running]:
panic(0x55b87cc325c0, 0xc42017cf00)
/usr/lib/go/src/runtime/panic.go:500 +0x1a5
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0xc42001ed40, 0xc42017ce70, 0x1, 0x1)
/go/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:353 +0xa6
github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus.MustRegister(0xc42017ce70, 0x1, 0x1)
/go/src/github.com/ExpressenAB/bigip_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:152 +0x55
main.main()
/go/src/github.com/ExpressenAB/bigip_exporter/bigip_exporter.go:54 +0x243
I am not sure which metric name it is complaining about,
There is not any metric configuration mentioned in the exporter README file.
Running the latest commit b415f1f I get the following runtime error.
This is using version "BIG-IP 12.1.1 Build 1.0.196 Hotfix HF1". The runtime error occurs as soon as I hit the /metrics endpoint.
$ ./bigip_exporter -bigip.host bigip.example.com -bigip.port 443 -bigip.username admin -bigip.password admin
2016/11/16 15:40:11 VS was succes: true
2016/11/16 15:40:11 Getting VS stats took 394.16887ms
2016/11/16 15:40:11 Pool was succes: true
2016/11/16 15:40:11 Getting pool stats took 553.608348ms
2016/11/16 15:40:11 Node was succes: true
2016/11/16 15:40:11 Getting node stats took 706.493054ms
panic: runtime error: index out of range
goroutine 9 [running]:
panic(0x2da280, 0xc420012110)
/usr/local/Cellar/go/1.7/libexec/src/runtime/panic.go:500 +0x1a1
github.com/ExpressenAB/bigip_exporter/collector.(*ruleCollector).Collect(0xc4200f44c0, 0xc42018e2a0)
/Users/federico/projects/golang/src/github.com/ExpressenAB/bigip_exporter/collector/rule_collector.go:153 +0x8db
github.com/ExpressenAB/bigip_exporter/collector.(*bigipCollector).Collect.func1(0xc42018e2a0, 0xc420013d40, 0x48f9a0, 0xc4200f44c0)
/Users/federico/projects/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:44 +0x3b
created by github.com/ExpressenAB/bigip_exporter/collector.(*bigipCollector).Collect
/Users/federico/projects/golang/src/github.com/ExpressenAB/bigip_exporter/collector/bigip_collector.go:46 +0x141
Thanks for this work!
I wonder if the exporter could be extended to support receiving the BigIP host (address) via a URL param from Prometheus.
This way, we don't need to deploy multiple exporter instances per each BigIP device and can control the targets to be scraped from Prometheus itself.
Hi - can you you give an example of how to use namespace.
thanks
We had an network outage, where the communication to the Big-IP was lost. The exporter paniced and exited, thus no more metrics.
缺少指标含义描述
Do we need to use F5 admin account to run the bigip_exporter?
I used the guest f5 account to run the exporter but I'm not able to get the metric data.
./bigip_exporter --bigip.host --bigip.port 443 --bigip.username admin --bigip.password admin
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.