edgeexporter

package module
v0.0.0-...-bb06c10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2019 License: MIT Imports: 5 Imported by: 1

README

edge-exporter

Currently, this project is in alpha state

edge-exporter is an opencensus exporter and provides tracing the tail latency span.

Example

package main

import (
  "context"
  "net/http"
  "os"
  "sync/atomic"
  "time"

  "contrib.go.opencensus.io/exporter/stackdriver"
  edgeexporter "github.com/takashabe/edge-exporter"
  "go.opencensus.io/trace"
)

func main() {
  sd, err := stackdriver.NewExporter(stackdriver.Options{
    ProjectID: os.Getenv("PROJECT_ID"),
  })
  if err != nil {
    panic(err)
  }

  edge := edgeexporter.New(edgeexporter.WithExportInterval(10*time.Second))
  edge.RegisterExporter(sd)

  trace.RegisterExporter(edge)
  trace.ApplyConfig(trace.Config{
    DefaultSampler: trace.AlwaysSample(),
  })

  http.HandleFunc("/", handler)

  http.ListenAndServe(":8080", nil)
}

var cnt int64

func handler(w http.ResponseWriter, req *http.Request) {
  _, span := trace.StartSpan(context.Background(), "handler")
  c := atomic.LoadInt64(&cnt)
  if c%5 == 0 {
    time.Sleep(50 * time.Millisecond)
  }
  span.End()
  atomic.AddInt64(&cnt, 1)
}

Documentation

Index

Constants

View Source
const DefaultExportInterval = time.Second

Variables

This section is empty.

Functions

This section is empty.

Types

type EdgeExporter

type EdgeExporter struct {
	// contains filtered or unexported fields
}

func New

func New(opts ...Option) *EdgeExporter

func (*EdgeExporter) ExportSpan

func (e *EdgeExporter) ExportSpan(sd *trace.SpanData)

func (*EdgeExporter) RegisterExporter

func (e *EdgeExporter) RegisterExporter(exp trace.Exporter)

func (*EdgeExporter) UnregisterExporter

func (e *EdgeExporter) UnregisterExporter(exp trace.Exporter)

type Option

type Option func(*EdgeExporter)

func WithExportInterval

func WithExportInterval(t time.Duration) Option

Directories

Path Synopsis
example module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL