pkgsite: Index | Files

package dcensus

import ""

Package dcensus provides functionality for debug instrumentation.


Package Files

dcensus.go debug.go


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{

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.
var KeyStatus = tag.MustNewKey("status")

KeyStatus is a tag key named "status".

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.

func RecordWithTag Uses

func RecordWithTag(ctx context.Context, key tag.Key, val string, m stats.Measurement)

RecordWithTag is a convenience function for recording a single measurement with a single tag.

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 {
    // 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 20 packages (graph) and is imported by 6 packages. Updated 2021-01-17. Refresh now. Tools for package owners.