plugins/input/skywalkingv3/opentelemetry.go (227 lines of code) (raw):
// 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 skywalkingv3
// OpenTelemetry Semantic Convention values for Resource attribute names.
// See: https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions/README.md
const (
AttributeCloudAccount = "cloud.account.id"
AttributeCloudProvider = "cloud.provider"
AttributeCloudRegion = "cloud.region"
AttributeCloudZone = "cloud.zone"
AttributeContainerID = "container.id"
AttributeContainerImage = "container.image.name"
AttributeContainerName = "container.name"
AttributeContainerTag = "container.image.tag"
AttributeDeploymentEnvironment = "deployment.environment"
AttributeFaasID = "faas.id"
AttributeFaasInstance = "faas.instance"
AttributeFaasName = "faas.name"
AttributeFaasVersion = "faas.version"
AttributeHostID = "host.id"
AttributeHostImageID = "host.image.id"
AttributeHostImageName = "host.image.name"
AttributeHostImageVersion = "host.image.version"
AttributeHostName = "host.name"
AttributeHostType = "host.type"
AttributeK8sCluster = "k8s.cluster.name"
AttributeK8sContainer = "k8s.container.name"
AttributeK8sCronJob = "k8s.cronjob.name"
AttributeK8sCronJobUID = "k8s.cronjob.uid"
AttributeK8sDaemonSet = "k8s.daemonset.name"
AttributeK8sDaemonSetUID = "k8s.daemonset.uid"
AttributeK8sDeployment = "k8s.deployment.name"
AttributeK8sDeploymentUID = "k8s.deployment.uid"
AttributeK8sJob = "k8s.job.name"
AttributeK8sJobUID = "k8s.job.uid"
AttributeK8sNamespace = "k8s.namespace.name"
AttributeK8sPod = "k8s.pod.name"
AttributeK8sPodUID = "k8s.pod.uid"
AttributeK8sReplicaSet = "k8s.replicaset.name"
AttributeK8sReplicaSetUID = "k8s.replicaset.uid"
AttributeK8sStatefulSet = "k8s.statefulset.name"
AttributeK8sStatefulSetUID = "k8s.statefulset.uid"
AttributeOSType = "os.type"
AttributeOSDescription = "os.description"
AttributeProcessCommand = "process.command"
AttributeProcessCommandLine = "process.command_line"
AttributeProcessExecutableName = "process.executable.name"
AttributeProcessExecutablePath = "process.executable.path"
AttributeProcessID = "process.pid"
AttributeProcessOwner = "process.owner"
AttributeServiceInstance = "service.instance.id"
AttributeServiceName = "service.name"
AttributeServiceNamespace = "service.namespace"
AttributeServiceVersion = "service.version"
AttributeTelemetryAutoVersion = "telemetry.auto.version"
AttributeTelemetrySDKLanguage = "telemetry.sdk.language"
AttributeTelemetrySDKName = "telemetry.sdk.name"
AttributeTelemetrySDKVersion = "telemetry.sdk.version"
)
// OpenTelemetry Semantic Convention values for Resource attribute "telemetry.sdk.language" values.
// See: https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions/README.md
const (
AttributeSDKLangValueCPP = "cpp"
AttributeSDKLangValueDotNET = "dotnet"
AttributeSDKLangValueErlang = "erlang"
AttributeSDKLangValueGo = "go"
AttributeSDKLangValueJava = "java"
AttributeSDKLangValueNodeJS = "nodejs"
AttributeSDKLangValuePHP = "php"
AttributeSDKLangValuePython = "python"
AttributeSDKLangValueRuby = "ruby"
AttributeSDKLangValueWebJS = "webjs"
)
// OpenTelemetry Semantic Convention values for Resource attribute "cloud.provider" values.
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/resource/semantic_conventions/cloud.md
const (
AttributeCloudProviderAWS = "aws"
AttributeCloudProviderAzure = "azure"
AttributeCloudProviderGCP = "gcp"
)
// GetResourceSemanticConventionAttributeNames a slice with all the Resource Semantic Conventions attribute names.
func GetResourceSemanticConventionAttributeNames() []string {
return []string{
AttributeCloudAccount,
AttributeCloudProvider,
AttributeCloudRegion,
AttributeCloudZone,
AttributeContainerID,
AttributeContainerImage,
AttributeContainerName,
AttributeContainerTag,
AttributeDeploymentEnvironment,
AttributeFaasID,
AttributeFaasInstance,
AttributeFaasName,
AttributeFaasVersion,
AttributeHostID,
AttributeHostImageID,
AttributeHostImageName,
AttributeHostImageVersion,
AttributeHostName,
AttributeHostType,
AttributeK8sCluster,
AttributeK8sContainer,
AttributeK8sCronJob,
AttributeK8sCronJobUID,
AttributeK8sDaemonSet,
AttributeK8sDaemonSetUID,
AttributeK8sDeployment,
AttributeK8sDeploymentUID,
AttributeK8sJob,
AttributeK8sJobUID,
AttributeK8sNamespace,
AttributeK8sPod,
AttributeK8sPodUID,
AttributeK8sReplicaSet,
AttributeK8sReplicaSetUID,
AttributeK8sStatefulSet,
AttributeK8sStatefulSetUID,
AttributeOSType,
AttributeOSDescription,
AttributeProcessCommand,
AttributeProcessCommandLine,
AttributeProcessExecutableName,
AttributeProcessExecutablePath,
AttributeProcessID,
AttributeProcessOwner,
AttributeServiceInstance,
AttributeServiceName,
AttributeServiceNamespace,
AttributeServiceVersion,
AttributeTelemetryAutoVersion,
AttributeTelemetrySDKLanguage,
AttributeTelemetrySDKName,
AttributeTelemetrySDKVersion,
}
}
// OpenTelemetry Semantic Convention values for general Span attribute names.
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/span-general.md
const (
AttributeComponent = "component"
AttributeEnduserID = "enduser.id"
AttributeEnduserRole = "enduser.role"
AttributeEnduserScope = "enduser.scope"
AttributeNetHostIP = "net.host.ip"
AttributeNetHostName = "net.host.name"
AttributeNetHostPort = "net.host.port"
AttributeNetPeerIP = "net.peer.ip"
AttributeNetPeerName = "net.peer.name"
AttributeNetPeerPort = "net.peer.port"
AttributeNetTransport = "net.transport"
AttributePeerService = "peer.service"
)
// OpenTelemetry Semantic Convention values for component attribute values.
// Possibly being removed due to issue #336
const (
ComponentTypeHTTP = "http"
ComponentTypeGRPC = "grpc"
)
// OpenTelemetry Semantic Convention attribute names for HTTP related attributes
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md
const (
AttributeHTTPClientIP = "http.client_ip"
AttributeHTTPFlavor = "http.flavor"
AttributeHTTPHost = "http.host"
AttributeHTTPHostName = "host.name"
AttributeHTTPHostPort = "host.port"
AttributeHTTPMethod = "http.method"
AttributeHTTPRequestContentLength = "http.request_content_length"
AttributeHTTPRequestContentLengthUncompressed = "http.request_content_length_uncompressed"
AttributeHTTPResponseContentLength = "http.response_content_length"
AttributeHTTPResponseContentLengthUncompressed = "http.response_content_length_uncompressed"
AttributeHTTPRoute = "http.route"
AttributeHTTPScheme = "http.scheme"
AttributeHTTPServerName = "http.server_name"
AttributeHTTPStatusCode = "http.status_code"
AttributeHTTPStatusText = "http.status_text"
AttributeHTTPTarget = "http.target"
AttributeHTTPURL = "http.url"
AttributeHTTPUserAgent = "http.user_agent"
)
// OpenTelemetry Semantic Convention attribute names for database related attributes
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/database.md
const (
AttributeDBConnectionString = "db.connection_string"
AttributeDBCassandraKeyspace = "db.cassandra.keyspace"
AttributeDBHBaseNamespace = "db.hbase.namespace"
AttributeDBJDBCDriverClassname = "db.jdbc.driver_classname"
AttributeDBMongoDBCollection = "db.mongodb.collection"
AttributeDBMsSQLInstanceName = "db.mssql.instance_name"
AttributeDBName = "db.name"
AttributeDBOperation = "db.operation"
AttributeDBRedisDatabaseIndex = "db.redis.database_index"
AttributeDBStatement = "db.statement"
AttributeDBSystem = "db.system"
AttributeDBUser = "db.user"
)
// OpenTelemetry Semantic Convention attribute names for gRPC related attributes
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/rpc.md
const (
AttributeMessageCompressedSize = "message.compressed_size"
AttributeMessageID = "message.id"
AttributeMessageType = "message.type"
AttributeMessageUncompressedSize = "message.uncompressed_size"
AttributeRPCMethod = "rpc.method"
AttributeRPCService = "rpc.service"
AttributeRPCSystem = "rpc.system"
EventTypeMessage = "message"
MessageTypeReceived = "RECEIVED"
MessageTypeSent = "SENT"
)
// OpenTelemetry Semantic Convention attribute names for FaaS related attributes
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/faas.md
const (
AttributeFaaSCron = "faas.cron"
AttributeFaaSDocumentCollection = "faas.document.collection"
AttributeFaaSDocumentName = "faas.document.name"
AttributeFaaSDocumentOperation = "faas.document.operation"
AttributeFaaSDocumentTime = "faas.document.time"
AttributeFaaSExecution = "faas.execution"
AttributeFaaSTime = "faas.time"
AttributeFaaSTrigger = "faas.trigger"
FaaSTriggerDataSource = "datasource"
FaaSTriggerHTTP = "http"
FaaSTriggerOther = "other"
FaaSTriggerPubSub = "pubsub"
FaaSTriggerTimer = "timer"
)
// OpenTelemetry Semantic Convention attribute names for messaging system related attributes
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/messaging.md
const (
AttributeMessagingConversationID = "messaging.conversation_id"
AttributeMessagingDestination = "messaging.destination"
AttributeMessagingDestinationKind = "messaging.destination_kind"
AttributeMessagingMessageID = "messaging.message_id"
AttributeMessagingOperation = "messaging.operation"
AttributeMessagingPayloadCompressedSize = "messaging.message_payload_compressed_size_bytes"
AttributeMessagingPayloadSize = "messaging.message_payload_size_bytes"
AttributeMessagingProtocol = "messaging.protocol"
AttributeMessagingProtocolVersion = "messaging.protocol_version"
AttributeMessagingSystem = "messaging.system"
AttributeMessagingTempDestination = "messaging.temp_destination"
AttributeMessagingURL = "messaging.url"
)
// OpenTelemetry Semantic Convention attribute names for exceptions
// See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/exceptions.md
const (
AttributeExceptionEventName = "exception"
AttributeExceptionMessage = "exception.message"
AttributeExceptionStacktrace = "exception.stacktrace"
AttributeExceptionType = "exception.type"
)