OpenCensus is being archived! Read the blog post to learn more

Wavefront

Introduction

Wavefront is a cloud-native monitoring and analytics platform that delivers 3D observability by ingesting, analyzing and visualizing metrics, traces, and histograms from distributed applications, containers, microservices, and any clouds infrastructure. To learn more, check out Wavefront distributed tracing demo here.

The Go exporter is available at https://github.com/wavefrontHQ/opencensus-exporter

Requirements

You’ll need a Wavefront account. Sign-up here.

Creating the exporter

The exporter uses Wavefront SDKs to connect to Wavefront.
Instructions to use the Go SDK are here.

package main

import (
    "log"

	"github.com/wavefronthq/opencensus-exporter/wavefront"
	"github.com/wavefronthq/wavefront-sdk-go/senders"
	"go.opencensus.io/stats/view"
)

func main() {
    sender, _ := senders.NewProxySender(&senders.ProxyConfiguration{})
    wf, err := wavefront.NewExporter(sender,/*options*/)
    if err != nil {
        log.Fatalf("Failed to create Wavefront Exporter: %v",err)
    }
    
    // Flush before main exits
    defer func() {
		exporter.Stop()
		sender.Close()
	}()

    // Register it as a metrics exporter
    view.RegisterExporter(wf)
}
package main

import (
    "log"

	"github.com/wavefronthq/opencensus-exporter/wavefront"
	"github.com/wavefronthq/wavefront-sdk-go/senders"
	"go.opencensus.io/trace"
)

func main() {
    sender, _ := senders.NewProxySender(&senders.ProxyConfiguration{})
    wf, err := wavefront.NewExporter(sender,/*options*/)
    if err != nil {
        log.Fatalf("Failed to create Wavefront Exporter: %v",err)
    }
    
    // Flush before main exits
    defer func() {
		exporter.Stop()
		sender.Close()
	}()

    // Register it as a trace exporter
    trace.RegisterExporter(wf)
}
package main

import (
    "log"

	"github.com/wavefronthq/opencensus-exporter/wavefront"
	"github.com/wavefronthq/wavefront-sdk-go/senders"
	"go.opencensus.io/stats/view"
	"go.opencensus.io/trace"
)

func main() {
    sender, _ := senders.NewProxySender(&senders.ProxyConfiguration{})
    wf, err := wavefront.NewExporter(sender,/*options*/)
    if err != nil {
        log.Fatalf("Failed to create Wavefront Exporter: %v",err)
    }
    
    // Flush before main exits
    defer func() {
		exporter.Stop()
		sender.Close()
	}()

    // Register it as a metrics exporter
    view.RegisterExporter(wf)

    // Register it as a trace exporter
    trace.RegisterExporter(wf)
}

Viewing your Metrics

Learn more at Wavefront Docs - Getting Started

Viewing your Traces

Learn more at Wavefront Docs - Tracing UI Overview