standard

package
v0.0.0-...-a1b153e Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package standard contains keys and values that have been standardized for use in OpenTelemetry. These standardizations are specified in the OpenTelemetry specification:

- https://github.com/open-telemetry/opentelemetry-specification/tree/v0.6.0/specification/resource/semantic_conventions - https://github.com/open-telemetry/opentelemetry-specification/tree/v0.6.0/specification/trace/semantic_conventions - https://github.com/open-telemetry/opentelemetry-specification/tree/v0.6.0/specification/metrics/semantic_conventions

Index

Constants

View Source
const (
	// Name of the service.
	ServiceNameKey = kv.Key("service.name")

	// A namespace for `service.name`. This needs to have meaning that helps
	// to distinguish a group of services. For example, the team name that
	// owns a group of services. `service.name` is expected to be unique
	// within the same namespace.
	ServiceNamespaceKey = kv.Key("service.namespace")

	// A unique identifier of the service instance. In conjunction with the
	// `service.name` and `service.namespace` this must be unique.
	ServiceInstanceIDKey = kv.Key("service.instance.id")

	// The version of the service API.
	ServiceVersionKey = kv.Key("service.version")
)

Standard service resource attribute keys.

View Source
const (
	// The name of the telemetry SDK.
	//
	// The default OpenTelemetry SDK provided by the OpenTelemetry project
	// MUST set telemetry.sdk.name to the value `opentelemetry`.
	//
	// If another SDK is used, this attribute MUST be set to the import path
	// of that SDK's package.
	//
	// The value `opentelemetry` is reserved and MUST NOT be used by
	// non-OpenTelemetry SDKs.
	TelemetrySDKNameKey = kv.Key("telemetry.sdk.name")

	// The language of the telemetry SDK.
	TelemetrySDKLanguageKey = kv.Key("telemetry.sdk.language")

	// The version string of the telemetry SDK.
	TelemetrySDKVersionKey = kv.Key("telemetry.sdk.version")
)

Standard telemetry SDK resource attribute keys.

View Source
const (
	// A uniquely identifying name for the Container.
	ContainerNameKey = kv.Key("container.name")

	// Container ID, usually a UUID, as for example used to
	// identify Docker containers. The UUID might be abbreviated.
	ContainerIDKey = kv.Key("container.id")

	// Name of the image the container was built on.
	ContainerImageNameKey = kv.Key("container.image.name")

	// Container image tag.
	ContainerImageTagKey = kv.Key("container.image.tag")
)

Standard container resource attribute keys.

View Source
const (
	// A uniquely identifying name for the FaaS.
	FaaSNameKey = kv.Key("faas.name")

	// The unique name of the function being executed.
	FaaSIDKey = kv.Key("faas.id")

	// The version of the function being executed.
	FaaSVersionKey = kv.Key("faas.version")

	// The execution environment identifier.
	FaaSInstanceKey = kv.Key("faas.instance")
)

Standard Function-as-a-Service resource attribute keys.

View Source
const (
	// Process identifier (PID).
	ProcessPIDKey = kv.Key("process.pid")
	// The name of the process executable. On Linux based systems, can be
	// set to the `Name` in `proc/[pid]/status`. On Windows, can be set to
	// the base name of `GetProcessImageFileNameW`.
	ProcessExecutableNameKey = kv.Key("process.executable.name")
	// The full path to the process executable. On Linux based systems, can
	// be set to the target of `proc/[pid]/exe`. On Windows, can be set to
	// the result of `GetProcessImageFileNameW`.
	ProcessExecutablePathKey = kv.Key("process.executable.path")
	// The command used to launch the process (i.e. the command name). On
	// Linux based systems, can be set to the zeroth string in
	// `proc/[pid]/cmdline`. On Windows, can be set to the first parameter
	// extracted from `GetCommandLineW`.
	ProcessCommandKey = kv.Key("process.command")
	// The full command used to launch the process. The value can be either
	// a list of strings representing the ordered list of arguments, or a
	// single string representing the full command. On Linux based systems,
	// can be set to the list of null-delimited strings extracted from
	// `proc/[pid]/cmdline`. On Windows, can be set to the result of
	// `GetCommandLineW`.
	ProcessCommandLineKey = kv.Key("process.command_line")
	// The username of the user that owns the process.
	ProcessOwnerKey = kv.Key("process.owner")
)

Standard operating system process resource attribute keys.

View Source
const (
	// A uniquely identifying name for the Kubernetes cluster. Kubernetes
	// does not have cluster names as an internal concept so this may be
	// set to any meaningful value within the environment. For example,
	// GKE clusters have a name which can be used for this label.
	K8SClusterNameKey = kv.Key("k8s.cluster.name")

	// The name of the namespace that the pod is running in.
	K8SNamespaceNameKey = kv.Key("k8s.namespace.name")

	// The name of the pod.
	K8SPodNameKey = kv.Key("k8s.pod.name")

	// The name of the deployment.
	K8SDeploymentNameKey = kv.Key("k8s.deployment.name")
)

Standard Kubernetes resource attribute keys.

View Source
const (
	// A uniquely identifying name for the host.
	HostNameKey = kv.Key("host.name")

	// A hostname as returned by the 'hostname' command on host machine.
	HostHostNameKey = kv.Key("host.hostname")

	// Unique host ID. For cloud environments this will be the instance ID.
	HostIDKey = kv.Key("host.id")

	// Type of host. For cloud environments this will be the machine type.
	HostTypeKey = kv.Key("host.type")

	// Name of the OS or VM image the host is running.
	HostImageNameKey = kv.Key("host.image.name")

	// Identifier of the image the host is running.
	HostImageIDKey = kv.Key("host.image.id")

	// Version of the image the host is running.
	HostImageVersionKey = kv.Key("host.image.version")
)

Standard host resource attribute keys.

View Source
const (
	// Name of the cloud provider.
	CloudProviderKey = kv.Key("cloud.provider")

	// The account ID from the cloud provider used for authorization.
	CloudAccountIDKey = kv.Key("cloud.account.id")

	// Geographical region where this resource is.
	CloudRegionKey = kv.Key("cloud.region")

	// Zone of the region where this resource is.
	CloudZoneKey = kv.Key("cloud.zone")
)

Standard cloud environment resource attribute keys.

View Source
const (
	// Transport protocol used.
	NetTransportKey = kv.Key("net.transport")

	// Remote address of the peer.
	NetPeerIPKey = kv.Key("net.peer.ip")

	// Remote port number.
	NetPeerPortKey = kv.Key("net.peer.port")

	// Remote hostname or similar.
	NetPeerNameKey = kv.Key("net.peer.name")

	// Local host IP. Useful in case of a multi-IP host.
	NetHostIPKey = kv.Key("net.host.ip")

	// Local host port.
	NetHostPortKey = kv.Key("net.host.port")

	// Local hostname or similar.
	NetHostNameKey = kv.Key("net.host.name")
)

Standard attribute keys used for network related operations.

View Source
const (
	// Username or the client identifier extracted from the access token or
	// authorization header in the inbound request from outside the system.
	EnduserIDKey = kv.Key("enduser.id")

	// Actual or assumed role the client is making the request with.
	EnduserRoleKey = kv.Key("enduser.role")

	// Scopes or granted authorities the client currently possesses.
	EnduserScopeKey = kv.Key("enduser.scope")
)

Standard attribute keys used to identify an authorized enduser.

View Source
const (
	// HTTP request method.
	HTTPMethodKey = kv.Key("http.method")

	// Full HTTP request URL in the form:
	// scheme://host[:port]/path?query[#fragment].
	HTTPUrlKey = kv.Key("http.url")

	// The full request target as passed in a HTTP request line or
	// equivalent, e.g. "/path/12314/?q=ddds#123".
	HTTPTargetKey = kv.Key("http.target")

	// The value of the HTTP host header.
	HTTPHostKey = kv.Key("http.host")

	// The URI scheme identifying the used protocol.
	HTTPSchemeKey = kv.Key("http.scheme")

	// HTTP response status code.
	HTTPStatusCodeKey = kv.Key("http.status_code")

	// HTTP reason phrase.
	HTTPStatusTextKey = kv.Key("http.status_text")

	// Kind of HTTP protocol used.
	HTTPFlavorKey = kv.Key("http.flavor")

	// Value of the HTTP User-Agent header sent by the client.
	HTTPUserAgentKey = kv.Key("http.user_agent")

	// The primary server name of the matched virtual host.
	HTTPServerNameKey = kv.Key("http.server_name")

	// The matched route served (path template). For example,
	// "/users/:userID?".
	HTTPRouteKey = kv.Key("http.route")

	// The IP address of the original client behind all proxies, if known
	// (e.g. from X-Forwarded-For).
	HTTPClientIPKey = kv.Key("http.client_ip")

	// The size of the request payload body in bytes.
	HTTPRequestContentLengthKey = kv.Key("http.request_content_length")

	// The size of the uncompressed request payload body after transport decoding.
	// Not set if transport encoding not used.
	HTTPRequestContentLengthUncompressedKey = kv.Key("http.request_content_length_uncompressed")

	// The size of the response payload body in bytes.
	HTTPResponseContentLengthKey = kv.Key("http.response_content_length")

	// The size of the uncompressed response payload body after transport decoding.
	// Not set if transport encoding not used.
	HTTPResponseContentLengthUncompressedKey = kv.Key("http.response_content_length_uncompressed")
)

Standard attribute keys for HTTP.

View Source
const (
	// Identifier for the database system (DBMS) being used.
	DBSystemKey = kv.Key("db.system")

	// Database Connection String with embedded credentials removed.
	DBConnectionStringKey = kv.Key("db.connection_string")

	// Username for accessing database.
	DBUserKey = kv.Key("db.user")
)

Standard attribute keys for database connections.

View Source
const (
	// Database instance name.
	DBNameKey = kv.Key("db.name")

	// A database statement for the given database type.
	DBStatementKey = kv.Key("db.statement")

	// A database operation for the given database type.
	DBOperationKey = kv.Key("db.operation")
)

Standard attribute keys for database calls.

View Source
const (
	// Name of the Cassandra keyspace accessed. Use instead of `db.name`.
	DBCassandraKeyspaceKey = kv.Key("db.cassandra.keyspace")

	// HBase namespace accessed. Use instead of `db.name`.
	DBHBaseNamespaceKey = kv.Key("db.hbase.namespace")

	// Index of Redis database accessed. Use instead of `db.name`.
	DBRedisDBIndexKey = kv.Key("db.redis.database_index")

	// Collection being accessed within the database in `db.name`.
	DBMongoDBCollectionKey = kv.Key("db.mongodb.collection")
)

Database technology-specific attributes

View Source
const (
	// A string identifying the remoting system.
	RPCSystemKey = kv.Key("rpc.system")

	// The full name of the service being called.
	RPCServiceKey = kv.Key("rpc.service")

	// The name of the method being called.
	RPCMethodKey = kv.Key("rpc.method")

	// Name of message transmitted or received.
	RPCNameKey = kv.Key("name")

	// Type of message transmitted or received.
	RPCMessageTypeKey = kv.Key("message.type")

	// Identifier of message transmitted or received.
	RPCMessageIDKey = kv.Key("message.id")

	// The compressed size of the message transmitted or received in bytes.
	RPCMessageCompressedSizeKey = kv.Key("message.compressed_size")

	// The uncompressed size of the message transmitted or received in
	// bytes.
	RPCMessageUncompressedSizeKey = kv.Key("message.uncompressed_size")
)

Standard attribute keys for RPC.

View Source
const (
	// A unique identifier describing the messaging system. For example,
	// kafka, rabbitmq or activemq.
	MessagingSystemKey = kv.Key("messaging.system")

	// The message destination name, e.g. MyQueue or MyTopic.
	MessagingDestinationKey = kv.Key("messaging.destination")

	// The kind of message destination.
	MessagingDestinationKindKey = kv.Key("messaging.destination_kind")

	// Describes if the destination is temporary or not.
	MessagingTempDestinationKey = kv.Key("messaging.temp_destination")

	// The name of the transport protocol.
	MessagingProtocolKey = kv.Key("messaging.protocol")

	// The version of the transport protocol.
	MessagingProtocolVersionKey = kv.Key("messaging.protocol_version")

	// Messaging service URL.
	MessagingURLKey = kv.Key("messaging.url")

	// Identifier used by the messaging system for a message.
	MessagingMessageIDKey = kv.Key("messaging.message_id")

	// Identifier used by the messaging system for a conversation.
	MessagingConversationIDKey = kv.Key("messaging.conversation_id")

	// The (uncompressed) size of the message payload in bytes.
	MessagingMessagePayloadSizeBytesKey = kv.Key("messaging.message_payload_size_bytes")

	// The compressed size of the message payload in bytes.
	MessagingMessagePayloadCompressedSizeBytesKey = kv.Key("messaging.message_payload_compressed_size_bytes")

	// Identifies which part and kind of message consumption is being
	// preformed.
	MessagingOperationKey = kv.Key("messaging.operation")

	// RabbitMQ specific attribute describing the destination routing key.
	MessagingRabbitMQRoutingKeyKey = kv.Key("messaging.rabbitmq.routing_key")
)

Standard attribute keys for messaging systems.

View Source
const (

	// Type of the trigger on which the function is executed.
	FaaSTriggerKey = kv.Key("faas.trigger")

	// String containing the execution identifier of the function.
	FaaSExecutionKey = kv.Key("faas.execution")

	// A boolean indicating that the serverless function is executed
	// for the first time (aka cold start).
	FaaSColdstartKey = kv.Key("faas.coldstart")

	// The name of the source on which the operation was performed.
	// For example, in Cloud Storage or S3 corresponds to the bucket name,
	// and in Cosmos DB to the database name.
	FaaSDocumentCollectionKey = kv.Key("faas.document.collection")

	// The type of the operation that was performed on the data.
	FaaSDocumentOperationKey = kv.Key("faas.document.operation")

	// A string containing the time when the data was accessed.
	FaaSDocumentTimeKey = kv.Key("faas.document.time")

	// The document name/table subjected to the operation.
	FaaSDocumentNameKey = kv.Key("faas.document.name")

	// The function invocation time.
	FaaSTimeKey = kv.Key("faas.time")

	// The schedule period as Cron Expression.
	FaaSCronKey = kv.Key("faas.cron")
)

Standard attribute keys for FaaS systems.

View Source
const (
	// Service name of the remote service. Should equal the actual
	// `service.name` resource attribute of the remote service, if any.
	PeerServiceKey = kv.Key("peer.service")
)

General attribute keys for spans.

Variables

View Source
var (
	CloudProviderAWS   = CloudProviderKey.String("aws")
	CloudProviderAzure = CloudProviderKey.String("azure")
	CloudProviderGCP   = CloudProviderKey.String("gcp")
)
View Source
var (
	NetTransportTCP    = NetTransportKey.String("IP.TCP")
	NetTransportUDP    = NetTransportKey.String("IP.UDP")
	NetTransportIP     = NetTransportKey.String("IP")
	NetTransportUnix   = NetTransportKey.String("Unix")
	NetTransportPipe   = NetTransportKey.String("pipe")
	NetTransportInProc = NetTransportKey.String("inproc")
	NetTransportOther  = NetTransportKey.String("other")
)
View Source
var (
	HTTPSchemeHTTP  = HTTPSchemeKey.String("http")
	HTTPSchemeHTTPS = HTTPSchemeKey.String("https")

	HTTPFlavor1_0  = HTTPFlavorKey.String("1.0")
	HTTPFlavor1_1  = HTTPFlavorKey.String("1.1")
	HTTPFlavor2    = HTTPFlavorKey.String("2")
	HTTPFlavorSPDY = HTTPFlavorKey.String("SPDY")
	HTTPFlavorQUIC = HTTPFlavorKey.String("QUIC")
)
View Source
var (
	DBSystemDB2       = DBSystemKey.String("db2")        // IBM DB2
	DBSystemDerby     = DBSystemKey.String("derby")      // Apache Derby
	DBSystemHive      = DBSystemKey.String("hive")       // Apache Hive
	DBSystemMariaDB   = DBSystemKey.String("mariadb")    // MariaDB
	DBSystemMSSql     = DBSystemKey.String("mssql")      // Microsoft SQL Server
	DBSystemMySQL     = DBSystemKey.String("mysql")      // MySQL
	DBSystemOracle    = DBSystemKey.String("oracle")     // Oracle Database
	DBSystemPostgres  = DBSystemKey.String("postgresql") // PostgreSQL
	DBSystemSqlite    = DBSystemKey.String("sqlite")     // SQLite
	DBSystemTeradata  = DBSystemKey.String("teradata")   // Teradata
	DBSystemOtherSQL  = DBSystemKey.String("other_sql")  // Some other Sql database. Fallback only
	DBSystemCassandra = DBSystemKey.String("cassandra")  // Cassandra
	DBSystemCosmosDB  = DBSystemKey.String("cosmosdb")   // Microsoft Azure CosmosDB
	DBSystemCouchbase = DBSystemKey.String("couchbase")  // Couchbase
	DBSystemCouchDB   = DBSystemKey.String("couchdb")    // CouchDB
	DBSystemDynamoDB  = DBSystemKey.String("dynamodb")   // Amazon DynamoDB
	DBSystemHBase     = DBSystemKey.String("hbase")      // HBase
	DBSystemMongodb   = DBSystemKey.String("mongodb")    // MongoDB
	DBSystemNeo4j     = DBSystemKey.String("neo4j")      // Neo4j
	DBSystemRedis     = DBSystemKey.String("redis")      // Redis
)
View Source
var (
	RPCSystemGRPC = RPCSystemKey.String("grpc")

	RPCNameMessage = RPCNameKey.String("message")

	RPCMessageTypeSent     = RPCMessageTypeKey.String("SENT")
	RPCMessageTypeReceived = RPCMessageTypeKey.String("RECEIVED")
)
View Source
var (
	MessagingDestinationKindKeyQueue = MessagingDestinationKindKey.String("queue")
	MessagingDestinationKindKeyTopic = MessagingDestinationKindKey.String("topic")

	MessagingTempDestination = MessagingTempDestinationKey.Bool(true)

	MessagingOperationReceive = MessagingOperationKey.String("receive")
	MessagingOperationProcess = MessagingOperationKey.String("process")
)
View Source
var (
	FaasTriggerDatasource = FaaSTriggerKey.String("datasource")
	FaasTriggerHTTP       = FaaSTriggerKey.String("http")
	FaasTriggerPubSub     = FaaSTriggerKey.String("pubsub")
	FaasTriggerTimer      = FaaSTriggerKey.String("timer")
	FaasTriggerOther      = FaaSTriggerKey.String("other")

	FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert")
	FaaSDocumentOperationEdit   = FaaSDocumentOperationKey.String("edit")
	FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete")
)
View Source
var (
	TelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String("go")
)

Standard telemetry SDK resource attributes.

Functions

func EndUserAttributesFromHTTPRequest

func EndUserAttributesFromHTTPRequest(request *http.Request) []kv.KeyValue

EndUserAttributesFromHTTPRequest generates attributes of the enduser namespace as specified by the OpenTelemetry specification for a span.

func HTTPAttributesFromHTTPStatusCode

func HTTPAttributesFromHTTPStatusCode(code int) []kv.KeyValue

HTTPAttributesFromHTTPStatusCode generates attributes of the http namespace as specified by the OpenTelemetry specification for a span.

func HTTPClientAttributesFromHTTPRequest

func HTTPClientAttributesFromHTTPRequest(request *http.Request) []kv.KeyValue

HTTPClientAttributesFromHTTPRequest generates attributes of the http namespace as specified by the OpenTelemetry specification for a span on the client side.

func HTTPServerAttributesFromHTTPRequest

func HTTPServerAttributesFromHTTPRequest(serverName, route string, request *http.Request) []kv.KeyValue

HTTPServerAttributesFromHTTPRequest generates attributes of the http namespace as specified by the OpenTelemetry specification for a span on the server side. Currently, only basic authentication is supported.

func HTTPServerMetricAttributesFromHTTPRequest

func HTTPServerMetricAttributesFromHTTPRequest(serverName string, request *http.Request) []kv.KeyValue

HTTPServerMetricAttributesFromHTTPRequest generates low-cardinality attributes to be used with server-side HTTP metrics.

func NetAttributesFromHTTPRequest

func NetAttributesFromHTTPRequest(network string, request *http.Request) []kv.KeyValue

NetAttributesFromHTTPRequest generates attributes of the net namespace as specified by the OpenTelemetry specification for a span. The network parameter is a string that net.Dial function from standard library can understand.

func SpanStatusFromHTTPStatusCode

func SpanStatusFromHTTPStatusCode(code int) (codes.Code, string)

SpanStatusFromHTTPStatusCode generates a status code and a message as specified by the OpenTelemetry specification for a span.

Types

This section is empty.

Jump to

Keyboard shortcuts

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