Coder Social home page Coder Social logo

bigip_exporter's People

Contributors

cgunning avatar cldmnky avatar dezmodue avatar neufeldtech avatar recollir avatar sgissi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bigip_exporter's Issues

Rule metrics doesn't handle different events

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.

Add bigip_host 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.

fatal error: concurrent map read and map write

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

Cluster F5

Hello, what would the configuration be like if it is an F5 cluster, I have two nodes, one active and the other passive

undefined: prometheus.Handler

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.

Pool member statistics

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.

panic: runtime error: index out of range

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

Any available Grafana Dashboards?

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!

Not able to scrape Pool and Node status

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

Support newer BIG-IP releases

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

bigip_exporter pod creation fails with error not a valid metric name

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.

panic: runtime error: index out of range

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

Option to provide the bigip host (target) in a URL param

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.

Do we need to use F5 admin account to run the bigip_exporter?

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.