semconv

package
v0.67.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package semconv provides OpenTelemetry semantic convention types and functionality.

Index

Constants

View Source
const OTelSemConvStabilityOptIn = "OTEL_SEMCONV_STABILITY_OPT_IN"

OTelSemConvStabilityOptIn is an environment variable. That can be set to "http/dup" to keep getting the old HTTP semantic conventions.

Variables

This section is empty.

Functions

func SplitHostPort

func SplitHostPort(hostport string) (host string, port int)

SplitHostPort splits a network address hostport of the form "host", "host%zone", "[host]", "[host%zone], "host:port", "host%zone:port", "[host]:port", "[host%zone]:port", or ":port" into host or host%zone and port.

An empty host is returned if it is not provided or unparsable. A negative port is returned if it is not provided or unparsable.

Types

type CurrentHTTPClient

type CurrentHTTPClient struct{}

func (CurrentHTTPClient) ErrorType

func (n CurrentHTTPClient) ErrorType(err error) attribute.KeyValue

func (CurrentHTTPClient) MetricAttributes

func (n CurrentHTTPClient) MetricAttributes(req *http.Request, statusCode int, additionalAttributes []attribute.KeyValue) []attribute.KeyValue

func (CurrentHTTPClient) RequestTraceAttrs

func (n CurrentHTTPClient) RequestTraceAttrs(req *http.Request) []attribute.KeyValue

RequestTraceAttrs returns trace attributes for an HTTP request made by a client.

func (CurrentHTTPClient) ResponseTraceAttrs

func (n CurrentHTTPClient) ResponseTraceAttrs(resp *http.Response) []attribute.KeyValue

ResponseTraceAttrs returns trace attributes for an HTTP response made by a client.

func (CurrentHTTPClient) TraceAttributes

func (n CurrentHTTPClient) TraceAttributes(host string) []attribute.KeyValue

TraceAttributes returns attributes for httptrace.

type CurrentHTTPServer

type CurrentHTTPServer struct{}

func (CurrentHTTPServer) MetricAttributes

func (n CurrentHTTPServer) MetricAttributes(server string, req *http.Request, statusCode int, route string, additionalAttributes []attribute.KeyValue) []attribute.KeyValue

func (CurrentHTTPServer) NetworkTransportAttr

func (n CurrentHTTPServer) NetworkTransportAttr(network string) attribute.KeyValue

func (CurrentHTTPServer) RequestTraceAttrs

func (n CurrentHTTPServer) RequestTraceAttrs(server string, req *http.Request, opts RequestTraceAttrsOpts) []attribute.KeyValue

RequestTraceAttrs returns trace attributes for an HTTP request received by a server.

The server must be the primary server name if it is known. For example this would be the ServerName directive (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache server, and the server_name directive (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an nginx server. More generically, the primary server name would be the host header value that matches the default virtual host of an HTTP server. It should include the host identifier and if a port is used to route to the server that port identifier should be included as an appropriate port suffix.

If the primary server name is not known, server should be an empty string. The req Host will be used to determine the server instead.

func (CurrentHTTPServer) ResponseTraceAttrs

func (n CurrentHTTPServer) ResponseTraceAttrs(resp ResponseTelemetry) []attribute.KeyValue

ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response.

If any of the fields in the ResponseTelemetry are not set the attribute will be omitted.

func (CurrentHTTPServer) Route

func (n CurrentHTTPServer) Route(route string) attribute.KeyValue

Route returns the attribute for the route.

type HTTPClient

type HTTPClient struct {
	// contains filtered or unexported fields
}

func NewHTTPClient

func NewHTTPClient(meter metric.Meter) HTTPClient

func (HTTPClient) ErrorType

func (c HTTPClient) ErrorType(err error) attribute.KeyValue

func (HTTPClient) MetricOptions

func (c HTTPClient) MetricOptions(ma MetricAttributes) map[string]MetricOpts

func (HTTPClient) RecordMetrics

func (s HTTPClient) RecordMetrics(ctx context.Context, md MetricData, opts map[string]MetricOpts)

func (HTTPClient) RequestTraceAttrs

func (c HTTPClient) RequestTraceAttrs(req *http.Request) []attribute.KeyValue

RequestTraceAttrs returns attributes for an HTTP request made by a client.

func (HTTPClient) ResponseTraceAttrs

func (c HTTPClient) ResponseTraceAttrs(resp *http.Response) []attribute.KeyValue

ResponseTraceAttrs returns metric attributes for an HTTP request made by a client.

func (HTTPClient) Status

func (c HTTPClient) Status(code int) (codes.Code, string)

func (HTTPClient) TraceAttributes

func (s HTTPClient) TraceAttributes(host string) []attribute.KeyValue

type HTTPServer

type HTTPServer struct {
	// contains filtered or unexported fields
}

func NewHTTPServer

func NewHTTPServer(meter metric.Meter) HTTPServer

func (HTTPServer) NetworkTransportAttr

func (s HTTPServer) NetworkTransportAttr(network string) []attribute.KeyValue

func (HTTPServer) RecordMetrics

func (s HTTPServer) RecordMetrics(ctx context.Context, md ServerMetricData)

func (HTTPServer) RequestTraceAttrs

func (s HTTPServer) RequestTraceAttrs(server string, req *http.Request, opts RequestTraceAttrsOpts) []attribute.KeyValue

RequestTraceAttrs returns trace attributes for an HTTP request received by a server.

The server must be the primary server name if it is known. For example this would be the ServerName directive (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache server, and the server_name directive (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an nginx server. More generically, the primary server name would be the host header value that matches the default virtual host of an HTTP server. It should include the host identifier and if a port is used to route to the server that port identifier should be included as an appropriate port suffix.

If the primary server name is not known, server should be an empty string. The req Host will be used to determine the server instead.

func (HTTPServer) ResponseTraceAttrs

func (s HTTPServer) ResponseTraceAttrs(resp ResponseTelemetry) []attribute.KeyValue

ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response.

If any of the fields in the ResponseTelemetry are not set the attribute will be omitted.

func (HTTPServer) Route

func (s HTTPServer) Route(route string) attribute.KeyValue

Route returns the attribute for the route.

func (HTTPServer) Status

func (s HTTPServer) Status(code int) (codes.Code, string)

Status returns a span status code and message for an HTTP status code value returned by a server. Status codes in the 400-499 range are not returned as errors.

type MetricAttributes

type MetricAttributes struct {
	Req                  *http.Request
	StatusCode           int
	Route                string
	AdditionalAttributes []attribute.KeyValue
}

type MetricData

type MetricData struct {
	RequestSize int64

	// The request duration, in milliseconds
	ElapsedTime float64
}

type MetricOpts

type MetricOpts struct {
	// contains filtered or unexported fields
}

func (MetricOpts) AddOptions

func (o MetricOpts) AddOptions() metric.AddOption

func (MetricOpts) MeasurementOption

func (o MetricOpts) MeasurementOption() metric.MeasurementOption

type RequestTraceAttrsOpts

type RequestTraceAttrsOpts struct {
	// If set, this is used as value for the "http.client_ip" attribute.
	HTTPClientIP string
}

type ResponseTelemetry

type ResponseTelemetry struct {
	StatusCode int
	ReadBytes  int64
	ReadError  error
	WriteBytes int64
	WriteError error
}

type ServerMetricData

type ServerMetricData struct {
	ServerName   string
	ResponseSize int64

	MetricData
	MetricAttributes
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL