Add support for tracing via OpenCencus
This adds a few flags for configuring the tracer. Includes support for jaeger tracing (built into OC).
This commit is contained in:
70
vendor/go.opencensus.io/zpages/zpages.go
generated
vendored
Normal file
70
vendor/go.opencensus.io/zpages/zpages.go
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright 2017, OpenCensus Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
// Package zpages implements a collection of HTML pages that display RPC stats
|
||||
// and trace data, and also functions to write that same data in plain text to
|
||||
// an io.Writer.
|
||||
//
|
||||
// Users can also embed the HTML for stats and traces in custom status pages.
|
||||
//
|
||||
// zpages are currrently work-in-process and cannot display minutely and
|
||||
// hourly stats correctly.
|
||||
//
|
||||
// Performance
|
||||
//
|
||||
// Installing the zpages has a performance overhead because additional traces
|
||||
// and stats will be collected in-process. In most cases, we expect this
|
||||
// overhead will not be significant but it depends on many factors, including
|
||||
// how many spans your process creates and how richly annotated they are.
|
||||
package zpages // import "go.opencensus.io/zpages"
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"path"
|
||||
"sync"
|
||||
|
||||
"go.opencensus.io/internal"
|
||||
)
|
||||
|
||||
// TODO(ramonza): Remove Handler to make initialization lazy.
|
||||
|
||||
// Handler is deprecated: Use Handle.
|
||||
var Handler http.Handler
|
||||
|
||||
func init() {
|
||||
mux := http.NewServeMux()
|
||||
Handle(mux, "/")
|
||||
Handler = mux
|
||||
}
|
||||
|
||||
// Handle adds the z-pages to the given ServeMux rooted at pathPrefix.
|
||||
func Handle(mux *http.ServeMux, pathPrefix string) {
|
||||
enable()
|
||||
if mux == nil {
|
||||
mux = http.DefaultServeMux
|
||||
}
|
||||
mux.HandleFunc(path.Join(pathPrefix, "rpcz"), rpczHandler)
|
||||
mux.HandleFunc(path.Join(pathPrefix, "tracez"), tracezHandler)
|
||||
mux.Handle(path.Join(pathPrefix, "public/"), http.FileServer(fs))
|
||||
}
|
||||
|
||||
var enableOnce sync.Once
|
||||
|
||||
func enable() {
|
||||
enableOnce.Do(func() {
|
||||
internal.LocalSpanStoreEnabled = true
|
||||
registerRPCViews()
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user