mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright The OpenTelemetry 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 otelhttp
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	"go.opentelemetry.io/otel/attribute"
 | 
						|
	"go.opentelemetry.io/otel/trace"
 | 
						|
)
 | 
						|
 | 
						|
// Attribute keys that can be added to a span.
 | 
						|
const (
 | 
						|
	ReadBytesKey  = attribute.Key("http.read_bytes")  // if anything was read from the request body, the total number of bytes read
 | 
						|
	ReadErrorKey  = attribute.Key("http.read_error")  // If an error occurred while reading a request, the string of the error (io.EOF is not recorded)
 | 
						|
	WroteBytesKey = attribute.Key("http.wrote_bytes") // if anything was written to the response writer, the total number of bytes written
 | 
						|
	WriteErrorKey = attribute.Key("http.write_error") // if an error occurred while writing a reply, the string of the error (io.EOF is not recorded)
 | 
						|
)
 | 
						|
 | 
						|
// Server HTTP metrics
 | 
						|
const (
 | 
						|
	RequestCount          = "http.server.request_count"           // Incoming request count total
 | 
						|
	RequestContentLength  = "http.server.request_content_length"  // Incoming request bytes total
 | 
						|
	ResponseContentLength = "http.server.response_content_length" // Incoming response bytes total
 | 
						|
	ServerLatency         = "http.server.duration"                // Incoming end to end duration, microseconds
 | 
						|
)
 | 
						|
 | 
						|
// Filter is a predicate used to determine whether a given http.request should
 | 
						|
// be traced. A Filter must return true if the request should be traced.
 | 
						|
type Filter func(*http.Request) bool
 | 
						|
 | 
						|
func newTracer(tp trace.TracerProvider) trace.Tracer {
 | 
						|
	return tp.Tracer(instrumentationName, trace.WithInstrumentationVersion(SemVersion()))
 | 
						|
}
 |