pkgsite: golang.org/x/pkgsite/internal/dcensus Index | Files

package dcensus

import "golang.org/x/pkgsite/internal/dcensus"

Package dcensus provides functionality for debug instrumentation.

Index

Package Files

dcensus.go

Variables

var (
    ServerRequestCount = &view.View{
        Name:        "go-discovery/http/server/request_count",
        Description: "Count of HTTP requests started by Method",
        TagKeys:     []tag.Key{ochttp.Method},
        Measure:     ochttp.ServerRequestCount,
        Aggregation: view.Count(),
    }
    ServerResponseCount = &view.View{
        Name:        "go-discovery/http/server/response_count",
        Description: "Server response count by status code and route",
        TagKeys:     []tag.Key{ochttp.StatusCode, ochttp.KeyServerRoute},
        Measure:     ochttp.ServerLatency,
        Aggregation: view.Count(),
    }
    ServerLatency = &view.View{
        Name:        "go-discovery/http/server/response_latency",
        Description: "Server response distribution by status code and route",
        TagKeys:     []tag.Key{ochttp.KeyServerRoute},
        Measure:     ochttp.ServerLatency,
        Aggregation: ochttp.DefaultLatencyDistribution,
    }
    ServerResponseBytes = &view.View{
        Name:        "go-discovery/http/server/response_bytes",
        Description: "Size distribution of HTTP response body",
        TagKeys:     []tag.Key{ochttp.KeyServerRoute},
        Measure:     ochttp.ServerResponseBytes,
        Aggregation: ochttp.DefaultSizeDistribution,
    }
    ServerViews = []*view.View{
        ServerRequestCount,
        ServerResponseCount,
        ServerLatency,
        ServerResponseBytes,
    }
)

Customizations of ochttp views. Views are updated as follows:

+ ClientHost and ServerRoute are added to resp. client and server metrics.
  Since these are bounded cardinality in our metrics, they are useful to
  add additional context.
+ Method tags are removed. We don't have any routes that accept more than
  one HTTP method.

func Init Uses

func Init(cfg *config.Config, views ...*view.View) error

Init configures tracing and aggregation according to the given Views. If running on GCP, Init also configures exporting to StackDriver.

func NewServer Uses

func NewServer() (http.Handler, error)

NewServer creates a new http.Handler for serving debug information.

func NewViewExporter Uses

func NewViewExporter(cfg *config.Config) (_ *stackdriver.Exporter, err error)

NewViewExporter creates a StackDriver exporter for stats.

type RouteTagger Uses

type RouteTagger func(route string, r *http.Request) string

RouteTagger is a func that can be used to derive a dynamic route tag for an incoming request.

type Router Uses

type Router struct {
    http.Handler
    // contains filtered or unexported fields
}

Router is an http multiplexer that instruments per-handler debugging information and census instrumentation.

func NewRouter Uses

func NewRouter(tagger RouteTagger) *Router

NewRouter creates a new Router, using tagger to tag incoming requests in monitoring. If tagger is nil, a default route tagger is used.

func (*Router) Handle Uses

func (r *Router) Handle(route string, handler http.Handler)

Handle registers handler with the given route. It has the same routing semantics as http.ServeMux.

func (*Router) HandleFunc Uses

func (r *Router) HandleFunc(route string, handler http.HandlerFunc)

HandleFunc is a wrapper around Handle for http.HandlerFuncs.

Package dcensus imports 16 packages (graph) and is imported by 4 packages. Updated 2020-08-05. Refresh now. Tools for package owners.