mirror of
https://github.com/Luzifer/nginx-sso.git
synced 2024-12-21 05:11:17 +00:00
70 lines
2.1 KiB
Go
70 lines
2.1 KiB
Go
// 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()
|
|
})
|
|
}
|