mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-01-12 02:28:07 +02:00
semconv: Stop generating httpconv.go, netconv.go, http.go (#4145)
This commit is contained in:
parent
bb867e6a4e
commit
b4faa3dfdb
@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Starting from `v1.21.0` of semantic conventions, `go.opentelemetry.io/otel/semconv/{version}/httpconv` and `go.opentelemetry.io/otel/semconv/{version}/netconv` packages will no longer be published. (#4145)
|
||||||
|
|
||||||
## [1.16.0/0.39.0] 2023-05-18
|
## [1.16.0/0.39.0] 2023-05-18
|
||||||
|
|
||||||
This release contains the first stable release of the OpenTelemetry Go [metric API].
|
This release contains the first stable release of the OpenTelemetry Go [metric API].
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
// 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 semconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}"
|
|
||||||
|
|
||||||
// HTTP scheme attributes.
|
|
||||||
var (
|
|
||||||
HTTPSchemeHTTP = HTTPSchemeKey.String("http")
|
|
||||||
HTTPSchemeHTTPS = HTTPSchemeKey.String("https")
|
|
||||||
)
|
|
@ -1,154 +0,0 @@
|
|||||||
// 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 httpconv provides OpenTelemetry HTTP semantic conventions for
|
|
||||||
// tracing telemetry.
|
|
||||||
package httpconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}/httpconv"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/attribute"
|
|
||||||
"go.opentelemetry.io/otel/codes"
|
|
||||||
"go.opentelemetry.io/otel/semconv/internal/v4"
|
|
||||||
semconv "go.opentelemetry.io/otel/semconv/{{.TagVer}}"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
nc = &internal.NetConv{
|
|
||||||
NetHostNameKey: semconv.NetHostNameKey,
|
|
||||||
NetHostPortKey: semconv.NetHostPortKey,
|
|
||||||
NetPeerNameKey: semconv.NetPeerNameKey,
|
|
||||||
NetPeerPortKey: semconv.NetPeerPortKey,
|
|
||||||
NetSockPeerAddrKey: semconv.NetSockPeerAddrKey,
|
|
||||||
NetSockPeerPortKey: semconv.NetSockPeerPortKey,
|
|
||||||
NetTransportOther: semconv.NetTransportOther,
|
|
||||||
NetTransportTCP: semconv.NetTransportTCP,
|
|
||||||
NetTransportUDP: semconv.NetTransportUDP,
|
|
||||||
NetTransportInProc: semconv.NetTransportInProc,
|
|
||||||
}
|
|
||||||
|
|
||||||
hc = &internal.HTTPConv{
|
|
||||||
NetConv: nc,
|
|
||||||
|
|
||||||
EnduserIDKey: semconv.EnduserIDKey,
|
|
||||||
HTTPClientIPKey: semconv.HTTPClientIPKey,
|
|
||||||
NetProtocolNameKey: semconv.NetProtocolNameKey,
|
|
||||||
NetProtocolVersionKey: semconv.NetProtocolVersionKey,
|
|
||||||
HTTPMethodKey: semconv.HTTPMethodKey,
|
|
||||||
HTTPRequestContentLengthKey: semconv.HTTPRequestContentLengthKey,
|
|
||||||
HTTPResponseContentLengthKey: semconv.HTTPResponseContentLengthKey,
|
|
||||||
HTTPRouteKey: semconv.HTTPRouteKey,
|
|
||||||
HTTPSchemeHTTP: semconv.HTTPSchemeHTTP,
|
|
||||||
HTTPSchemeHTTPS: semconv.HTTPSchemeHTTPS,
|
|
||||||
HTTPStatusCodeKey: semconv.HTTPStatusCodeKey,
|
|
||||||
HTTPTargetKey: semconv.HTTPTargetKey,
|
|
||||||
HTTPURLKey: semconv.HTTPURLKey,
|
|
||||||
UserAgentOriginalKey: semconv.UserAgentOriginalKey,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// ClientResponse returns trace attributes for an HTTP response received by a
|
|
||||||
// client from a server. It will return the following attributes if the related
|
|
||||||
// values are defined in resp: "http.status.code",
|
|
||||||
// "http.response_content_length".
|
|
||||||
//
|
|
||||||
// This does not add all OpenTelemetry required attributes for an HTTP event,
|
|
||||||
// it assumes ClientRequest was used to create the span with a complete set of
|
|
||||||
// attributes. If a complete set of attributes can be generated using the
|
|
||||||
// request contained in resp. For example:
|
|
||||||
//
|
|
||||||
// append(ClientResponse(resp), ClientRequest(resp.Request)...)
|
|
||||||
func ClientResponse(resp *http.Response) []attribute.KeyValue {
|
|
||||||
return hc.ClientResponse(resp)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClientRequest returns trace attributes for an HTTP request made by a client.
|
|
||||||
// The following attributes are always returned: "http.url",
|
|
||||||
// "net.protocol.(name|version)", "http.method", "net.peer.name".
|
|
||||||
// The following attributes are returned if the related values are defined
|
|
||||||
// in req: "net.peer.port", "http.user_agent", "http.request_content_length",
|
|
||||||
// "enduser.id".
|
|
||||||
func ClientRequest(req *http.Request) []attribute.KeyValue {
|
|
||||||
return hc.ClientRequest(req)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClientStatus returns a span status code and message for an HTTP status code
|
|
||||||
// value received by a client.
|
|
||||||
func ClientStatus(code int) (codes.Code, string) {
|
|
||||||
return hc.ClientStatus(code)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerRequest 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.
|
|
||||||
//
|
|
||||||
// The following attributes are always returned: "http.method", "http.scheme",
|
|
||||||
// ""net.protocol.(name|version)", "http.target", "net.host.name".
|
|
||||||
// The following attributes are returned if they related values are defined
|
|
||||||
// in req: "net.host.port", "net.sock.peer.addr", "net.sock.peer.port",
|
|
||||||
// "user_agent.original", "enduser.id", "http.client_ip".
|
|
||||||
func ServerRequest(server string, req *http.Request) []attribute.KeyValue {
|
|
||||||
return hc.ServerRequest(server, req)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerStatus 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.
|
|
||||||
func ServerStatus(code int) (codes.Code, string) {
|
|
||||||
return hc.ServerStatus(code)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RequestHeader returns the contents of h as attributes.
|
|
||||||
//
|
|
||||||
// Instrumentation should require an explicit configuration of which headers to
|
|
||||||
// captured and then prune what they pass here. Including all headers can be a
|
|
||||||
// security risk - explicit configuration helps avoid leaking sensitive
|
|
||||||
// information.
|
|
||||||
//
|
|
||||||
// The User-Agent header is already captured in the user_agent.original attribute
|
|
||||||
// from ClientRequest and ServerRequest. Instrumentation may provide an option
|
|
||||||
// to capture that header here even though it is not recommended. Otherwise,
|
|
||||||
// instrumentation should filter that out of what is passed.
|
|
||||||
func RequestHeader(h http.Header) []attribute.KeyValue {
|
|
||||||
return hc.RequestHeader(h)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseHeader returns the contents of h as attributes.
|
|
||||||
//
|
|
||||||
// Instrumentation should require an explicit configuration of which headers to
|
|
||||||
// captured and then prune what they pass here. Including all headers can be a
|
|
||||||
// security risk - explicit configuration helps avoid leaking sensitive
|
|
||||||
// information.
|
|
||||||
//
|
|
||||||
// The User-Agent header is already captured in the user_agent.original attribute
|
|
||||||
// from ClientRequest and ServerRequest. Instrumentation may provide an option
|
|
||||||
// to capture that header here even though it is not recommended. Otherwise,
|
|
||||||
// instrumentation should filter that out of what is passed.
|
|
||||||
func ResponseHeader(h http.Header) []attribute.KeyValue {
|
|
||||||
return hc.ResponseHeader(h)
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
// 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 netconv provides OpenTelemetry network semantic conventions for
|
|
||||||
// tracing telemetry.
|
|
||||||
package netconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}/netconv"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net"
|
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/attribute"
|
|
||||||
"go.opentelemetry.io/otel/semconv/internal/v4"
|
|
||||||
semconv "go.opentelemetry.io/otel/semconv/{{.TagVer}}"
|
|
||||||
)
|
|
||||||
|
|
||||||
var nc = &internal.NetConv{
|
|
||||||
NetHostNameKey: semconv.NetHostNameKey,
|
|
||||||
NetHostPortKey: semconv.NetHostPortKey,
|
|
||||||
NetPeerNameKey: semconv.NetPeerNameKey,
|
|
||||||
NetPeerPortKey: semconv.NetPeerPortKey,
|
|
||||||
NetSockFamilyKey: semconv.NetSockFamilyKey,
|
|
||||||
NetSockPeerAddrKey: semconv.NetSockPeerAddrKey,
|
|
||||||
NetSockPeerPortKey: semconv.NetSockPeerPortKey,
|
|
||||||
NetSockHostAddrKey: semconv.NetSockHostAddrKey,
|
|
||||||
NetSockHostPortKey: semconv.NetSockHostPortKey,
|
|
||||||
NetTransportOther: semconv.NetTransportOther,
|
|
||||||
NetTransportTCP: semconv.NetTransportTCP,
|
|
||||||
NetTransportUDP: semconv.NetTransportUDP,
|
|
||||||
NetTransportInProc: semconv.NetTransportInProc,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transport returns a trace attribute describing the transport protocol of the
|
|
||||||
// passed network. See the net.Dial for information about acceptable network
|
|
||||||
// values.
|
|
||||||
func Transport(network string) attribute.KeyValue {
|
|
||||||
return nc.Transport(network)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Client returns trace attributes for a client network connection to address.
|
|
||||||
// See net.Dial for information about acceptable address values, address should
|
|
||||||
// be the same as the one used to create conn. If conn is nil, only network
|
|
||||||
// peer attributes will be returned that describe address. Otherwise, the
|
|
||||||
// socket level information about conn will also be included.
|
|
||||||
func Client(address string, conn net.Conn) []attribute.KeyValue {
|
|
||||||
return nc.Client(address, conn)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Server returns trace attributes for a network listener listening at address.
|
|
||||||
// See net.Listen for information about acceptable address values, address
|
|
||||||
// should be the same as the one used to create ln. If ln is nil, only network
|
|
||||||
// host attributes will be returned that describe address. Otherwise, the
|
|
||||||
// socket level information about ln will also be included.
|
|
||||||
func Server(address string, ln net.Listener) []attribute.KeyValue {
|
|
||||||
return nc.Server(address, ln)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user