optakt / flow-dps

Flow Data Provisioning Service
Apache License 2.0
29 stars 13 forks source link

Expose badger and go metrics #491

Closed Ullaakut closed 2 years ago

Ullaakut commented 2 years ago

Goal of this PR

Fixes #488

This PR imports "github.com/dgraph-io/badger/v2/y" in both indexer binaries, so that the metrics are exposed on the default HTTP handler. It also adds an HTTP server to both binaries which exposes the default handler (which is why it's given a nil handler).

You can test this PR by running the indexer and making a curl call to <FLAG_METRICS>/debug/vars, depending on what you set as the --metrics parameter.

FYI, here is the init function in badger's metrics package:

func init() {
  http.HandleFunc("/debug/vars", expvarHandler)
  Publish("cmdline", Func(cmdline))
  Publish("memstats", Func(memstats))
}

The exposed metrics are expvar metrics, so in order to consume them with something like prometheus, you will need external tooling, such as prometheus-expvar-exporter.

Checklist