go-libp2p-resource-manager/obs/grafana-dashboards
2022-07-07 15:24:59 -07:00
..
README.md Use templated version of grafana dashboard json 2022-07-07 15:24:59 -07:00
resource-manager.json Use templated version of grafana dashboard json 2022-07-07 15:24:59 -07:00

Ready to go Grafana Dashboard

Here are some prebuilt dashboards that you can add to your Grafana instance. To import follow the Grafana docs here

Setup

To make sure you're emitting the correct metrics you'll have to hook up the Opencensus views that stats.go exports. For Prometheus this looks like:

import (
    // ...
	ocprom "contrib.go.opencensus.io/exporter/prometheus"

	rcmgr "github.com/libp2p/go-libp2p-resource-manager"
	rcmgrObs "github.com/libp2p/go-libp2p-resource-manager/obs"

	"github.com/prometheus/client_golang/prometheus"
	"go.opencensus.io/stats/view"
)

    func SetupResourceManager() (network.ResourceManager, error) {
        // Hook up the trace reporter metrics
        view.Register(rcmgrObs.DefaultViews...)
        ocprom.NewExporter(ocprom.Options{
            Registry:  prometheus.DefaultRegisterer.(*prometheus.Registry),
            Namespace: "rcmgr_trace_metrics",
        })

        str, err := rcmgrObs.NewStatsTraceReporter()
        if err != nil {
            return nil, err
        }

        return rcmgr.NewResourceManager(limiter, rcmgr.WithTraceReporter(str))
    }

It should be fairly similar for other exporters. See the OpenCensus docs to see how to export to another exporter.

Updating Dashboard json

Use the share functionality on an existing dashboard, and make sure to toggle "Export for sharing externally". See the Grafana Docs for more details.