From 7e2b190caa9fd62cbb14ee6c041ca40d658d3d29 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Tue, 25 May 2021 00:19:55 +0200 Subject: [PATCH 01/21] Introduce SemanticConventions project Will be the home for the auto-generated semantic conventions constants. --- OpenTelemetry.proj | 5 + OpenTelemetry.sln | 6 + .../.publicApi/net461/PublicAPI.Shipped.txt | 0 .../.publicApi/net461/PublicAPI.Unshipped.txt | 368 +++++ .../netstandard2.0/PublicAPI.Shipped.txt | 0 .../netstandard2.0/PublicAPI.Unshipped.txt | 368 +++++ .../OpenTelemetry.SemanticConventions.csproj | 13 + .../README.md | 33 + .../Resource/ResourceSemanticConventions.cs | 775 +++++++++ .../Trace/TraceSemanticConventions.cs | 1471 +++++++++++++++++ .../scripts/semantic-convetion/.gitignore | 1 + .../scripts/semantic-convetion/generate.ps1 | 41 + .../scripts/semantic-convetion/generate.sh | 45 + .../templates/SemanticConventions.cs.j2 | 94 ++ 14 files changed, 3220 insertions(+) create mode 100644 src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Shipped.txt create mode 100644 src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt create mode 100644 src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Shipped.txt create mode 100644 src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt create mode 100644 src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj create mode 100644 src/OpenTelemetry.SemanticConventions/README.md create mode 100644 src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs create mode 100644 src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs create mode 100644 src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore create mode 100644 src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 create mode 100755 src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh create mode 100644 src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 diff --git a/OpenTelemetry.proj b/OpenTelemetry.proj index 6247d1d6c5c..5ad26cfbaa5 100644 --- a/OpenTelemetry.proj +++ b/OpenTelemetry.proj @@ -11,6 +11,11 @@ + + + + + diff --git a/OpenTelemetry.sln b/OpenTelemetry.sln index 5a9fe749683..61443107eed 100644 --- a/OpenTelemetry.sln +++ b/OpenTelemetry.sln @@ -222,6 +222,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.Prom EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs", "src\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj", "{6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.SemanticConventions", "src\OpenTelemetry.SemanticConventions\OpenTelemetry.SemanticConventions.csproj", "{D4519DF6-CC72-4AC4-A851-E21383098D11}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -460,6 +462,10 @@ Global {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.Build.0 = Release|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Shipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Shipped.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt new file mode 100644 index 00000000000..85c6b8bc744 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt @@ -0,0 +1,368 @@ +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsContainerArn = "aws.ecs.container.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsLaunchtype = "aws.ecs.launchtype" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskArn = "aws.ecs.task.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskFamily = "aws.ecs.task.family" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskRevision = "aws.ecs.task.revision" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEksClusterArn = "aws.eks.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupArns = "aws.log.group.arns" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupNames = "aws.log.group.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamArns = "aws.log.stream.arns" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamNames = "aws.log.stream.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAccountId = "cloud.account.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAvailabilityZone = "cloud.availability_zone" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudPlatform = "cloud.platform" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudProvider = "cloud.provider" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudRegion = "cloud.region" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerId = "container.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerImageName = "container.image.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerImageTag = "container.image.tag" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerName = "container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerRuntime = "container.runtime" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeploymentEnvironment = "deployment.environment" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceId = "device.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelIdentifier = "device.model.identifier" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelName = "device.model.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasId = "faas.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasInstance = "faas.instance" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasMaxMemory = "faas.max_memory" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasName = "faas.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasVersion = "faas.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostArch = "host.arch" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostId = "host.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageId = "host.image.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageName = "host.image.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageVersion = "host.image.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostName = "host.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostType = "host.type" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sClusterName = "k8s.cluster.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerName = "k8s.container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobName = "k8s.cronjob.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobUid = "k8s.cronjob.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetName = "k8s.daemonset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetUid = "k8s.daemonset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDeploymentName = "k8s.deployment.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDeploymentUid = "k8s.deployment.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sJobName = "k8s.job.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sJobUid = "k8s.job.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNamespaceName = "k8s.namespace.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNodeName = "k8s.node.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNodeUid = "k8s.node.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sPodName = "k8s.pod.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sPodUid = "k8s.pod.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sReplicasetName = "k8s.replicaset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sReplicasetUid = "k8s.replicaset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sStatefulsetName = "k8s.statefulset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sStatefulsetUid = "k8s.statefulset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsDescription = "os.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsName = "os.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsType = "os.type" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsVersion = "os.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommand = "process.command" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommandArgs = "process.command_args" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommandLine = "process.command_line" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutableName = "process.executable.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutablePath = "process.executable.path" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessOwner = "process.owner" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessPid = "process.pid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeDescription = "process.runtime.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeName = "process.runtime.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeVersion = "process.runtime.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceInstanceId = "service.instance.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceName = "service.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceNamespace = "service.namespace" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceVersion = "service.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetryAutoVersion = "telemetry.auto.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkLanguage = "telemetry.sdk.language" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkName = "telemetry.sdk.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkVersion = "telemetry.sdk.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineDescription = "webengine.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineName = "webengine.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineVersion = "webengine.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Ec2 = "ec2" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsElasticBeanstalk = "aws_elastic_beanstalk" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsLambda = "aws_lambda" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureAks = "azure_aks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureAppService = "azure_app_service" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureContainerInstances = "azure_container_instances" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureFunctions = "azure_functions" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureVm = "azure_vm" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpAppEngine = "gcp_app_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudFunctions = "gcp_cloud_functions" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Amd64 = "amd64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm32 = "arm32" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm64 = "arm64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ia64 = "ia64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc32 = "ppc32" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc64 = "ppc64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.X86 = "x86" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Aix = "aix" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Darwin = "darwin" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Dragonflybsd = "dragonflybsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Freebsd = "freebsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Hpux = "hpux" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Linux = "linux" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Netbsd = "netbsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Openbsd = "openbsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Solaris = "solaris" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Windows = "windows" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.ZOs = "z_os" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Cpp = "cpp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Dotnet = "dotnet" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Erlang = "erlang" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Go = "go" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Java = "java" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Nodejs = "nodejs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Php = "php" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Python = "python" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Ruby = "ruby" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Webjs = "webjs" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributeDefinitions = "aws.dynamodb.attribute_definitions" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbConsistentRead = "aws.dynamodb.consistent_read" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbConsumedCapacity = "aws.dynamodb.consumed_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbCount = "aws.dynamodb.count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbExclusiveStartTable = "aws.dynamodb.exclusive_start_table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbGlobalSecondaryIndexes = "aws.dynamodb.global_secondary_indexes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbGlobalSecondaryIndexUpdates = "aws.dynamodb.global_secondary_index_updates" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbIndexName = "aws.dynamodb.index_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbItemCollectionMetrics = "aws.dynamodb.item_collection_metrics" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbLimit = "aws.dynamodb.limit" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbLocalSecondaryIndexes = "aws.dynamodb.local_secondary_indexes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProjection = "aws.dynamodb.projection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProvisionedReadCapacity = "aws.dynamodb.provisioned_read_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProvisionedWriteCapacity = "aws.dynamodb.provisioned_write_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbScanForward = "aws.dynamodb.scan_forward" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbScannedCount = "aws.dynamodb.scanned_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbSegment = "aws.dynamodb.segment" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbSelect = "aws.dynamodb.select" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableCount = "aws.dynamodb.table_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableNames = "aws.dynamodb.table_names" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTotalSegments = "aws.dynamodb.total_segments" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFilepath = "code.filepath" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFunction = "code.function" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeLineno = "code.lineno" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeNamespace = "code.namespace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraConsistencyLevel = "db.cassandra.consistency_level" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorId = "db.cassandra.coordinator.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraIdempotence = "db.cassandra.idempotence" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraKeyspace = "db.cassandra.keyspace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraPageSize = "db.cassandra.page_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraSpeculativeExecutionCount = "db.cassandra.speculative_execution_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraTable = "db.cassandra.table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbConnectionString = "db.connection_string" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbHbaseNamespace = "db.hbase.namespace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbInstance = "db.instance" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMongodbCollection = "db.mongodb.collection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMssqlInstanceName = "db.mssql.instance_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbName = "db.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbOperation = "db.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbRedisDatabaseIndex = "db.redis.database_index" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbSqlTable = "db.sql.table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbStatement = "db.statement" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbSystem = "db.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbUser = "db.user" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserId = "enduser.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserRole = "enduser.role" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserScope = "enduser.scope" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEscaped = "exception.escaped" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEventName = "exception" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionMessage = "exception.message" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionStacktrace = "exception.stacktrace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionType = "exception.type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasColdstart = "faas.coldstart" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasCron = "faas.cron" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentCollection = "faas.document.collection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentName = "faas.document.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentOperation = "faas.document.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentTime = "faas.document.time" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasExecution = "faas.execution" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedName = "faas.invoked_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedProvider = "faas.invoked_provider" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedRegion = "faas.invoked_region" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTime = "faas.time" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTrigger = "faas.trigger" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpClientIp = "http.client_ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpFlavor = "http.flavor" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpHost = "http.host" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpMethod = "http.method" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLength = "http.request_content_length" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLength = "http.response_content_length" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRoute = "http.route" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpScheme = "http.scheme" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpServerName = "http.server_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "http.status_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUserAgent = "http.user_agent" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConversationId = "messaging.conversation_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestination = "messaging.destination" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestinationKind = "messaging.destination_kind" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaClientId = "messaging.kafka.client_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaConsumerGroup = "messaging.kafka.consumer_group" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaMessageKey = "messaging.kafka.message_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaPartition = "messaging.kafka.partition" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaTombstone = "messaging.kafka.tombstone" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessageId = "messaging.message_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessagePayloadCompressedSizeBytes = "messaging.message_payload_compressed_size_bytes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessagePayloadSizeBytes = "messaging.message_payload_size_bytes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingOperation = "messaging.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocol = "messaging.protocol" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocolVersion = "messaging.protocol_version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRoutingKey = "messaging.rabbitmq.routing_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerIp = "net.peer.ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerName = "net.peer.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerPort = "net.peer.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetTransport = "net.transport" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributePeerService = "peer.service" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcGrpcStatusCode = "rpc.grpc.status_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorCode = "rpc.jsonrpc.error_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorMessage = "rpc.jsonrpc.error_message" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcRequestId = "rpc.jsonrpc.request_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcVersion = "rpc.jsonrpc.version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcMethod = "rpc.method" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcService = "rpc.service" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcSystem = "rpc.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeThreadId = "thread.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeThreadName = "thread.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.All = "all" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Any = "any" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.EachQuorum = "each_quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalOne = "local_one" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalQuorum = "local_quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalSerial = "local_serial" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.One = "one" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Quorum = "quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Serial = "serial" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Three = "three" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Two = "two" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Adabas = "adabas" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cache = "cache" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cassandra = "cassandra" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cloudscape = "cloudscape" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cockroachdb = "cockroachdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Coldfusion = "coldfusion" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cosmosdb = "cosmosdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Couchbase = "couchbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Couchdb = "couchdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Db2 = "db2" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Derby = "derby" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Dynamodb = "dynamodb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Edb = "edb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Elasticsearch = "elasticsearch" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Filemaker = "filemaker" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Firebird = "firebird" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Firstsql = "firstsql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Geode = "geode" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.H2 = "h2" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hanadb = "hanadb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hbase = "hbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hive = "hive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hsqldb = "hsqldb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Informix = "informix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Ingres = "ingres" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Instantdb = "instantdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Interbase = "interbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mariadb = "mariadb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Maxdb = "maxdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Memcached = "memcached" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mongodb = "mongodb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mssql = "mssql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mysql = "mysql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Neo4j = "neo4j" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Netezza = "netezza" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Oracle = "oracle" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.OtherSql = "other_sql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pervasive = "pervasive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pointbase = "pointbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Postgresql = "postgresql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Progress = "progress" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Redis = "redis" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Redshift = "redshift" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Sqlite = "sqlite" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Sybase = "sybase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Teradata = "teradata" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Vertica = "vertica" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Delete = "delete" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Edit = "edit" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Insert = "insert" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Datasource = "datasource" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Http = "http" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Other = "other" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Pubsub = "pubsub" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Timer = "timer" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http10 = "1.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1.1" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Queue = "queue" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpUdp = "ip_udp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Other = "other" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Pipe = "pipe" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Unix = "unix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Aborted = 10 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.AlreadyExists = 6 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Cancelled = 1 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.DataLoss = 15 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.DeadlineExceeded = 4 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.FailedPrecondition = 9 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Internal = 13 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.InvalidArgument = 3 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.NotFound = 5 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Ok = 0 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.OutOfRange = 11 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.PermissionDenied = 7 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.ResourceExhausted = 8 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unauthenticated = 16 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unavailable = 14 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unimplemented = 12 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unknown = 2 -> int +OpenTelemetry.Resources.ResourceSemanticConventions +OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues +OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues +OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues +OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues +OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues +OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues +OpenTelemetry.Trace.TraceSemanticConventions +OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues +OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues +OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues +OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Shipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000000..85c6b8bc744 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,368 @@ +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsContainerArn = "aws.ecs.container.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsLaunchtype = "aws.ecs.launchtype" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskArn = "aws.ecs.task.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskFamily = "aws.ecs.task.family" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskRevision = "aws.ecs.task.revision" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEksClusterArn = "aws.eks.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupArns = "aws.log.group.arns" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupNames = "aws.log.group.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamArns = "aws.log.stream.arns" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamNames = "aws.log.stream.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAccountId = "cloud.account.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAvailabilityZone = "cloud.availability_zone" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudPlatform = "cloud.platform" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudProvider = "cloud.provider" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudRegion = "cloud.region" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerId = "container.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerImageName = "container.image.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerImageTag = "container.image.tag" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerName = "container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerRuntime = "container.runtime" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeploymentEnvironment = "deployment.environment" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceId = "device.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelIdentifier = "device.model.identifier" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelName = "device.model.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasId = "faas.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasInstance = "faas.instance" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasMaxMemory = "faas.max_memory" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasName = "faas.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasVersion = "faas.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostArch = "host.arch" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostId = "host.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageId = "host.image.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageName = "host.image.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostImageVersion = "host.image.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostName = "host.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostType = "host.type" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sClusterName = "k8s.cluster.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerName = "k8s.container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobName = "k8s.cronjob.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobUid = "k8s.cronjob.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetName = "k8s.daemonset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetUid = "k8s.daemonset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDeploymentName = "k8s.deployment.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDeploymentUid = "k8s.deployment.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sJobName = "k8s.job.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sJobUid = "k8s.job.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNamespaceName = "k8s.namespace.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNodeName = "k8s.node.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sNodeUid = "k8s.node.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sPodName = "k8s.pod.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sPodUid = "k8s.pod.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sReplicasetName = "k8s.replicaset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sReplicasetUid = "k8s.replicaset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sStatefulsetName = "k8s.statefulset.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sStatefulsetUid = "k8s.statefulset.uid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsDescription = "os.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsName = "os.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsType = "os.type" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeOsVersion = "os.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommand = "process.command" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommandArgs = "process.command_args" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessCommandLine = "process.command_line" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutableName = "process.executable.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutablePath = "process.executable.path" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessOwner = "process.owner" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessPid = "process.pid" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeDescription = "process.runtime.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeName = "process.runtime.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeVersion = "process.runtime.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceInstanceId = "service.instance.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceName = "service.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceNamespace = "service.namespace" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeServiceVersion = "service.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetryAutoVersion = "telemetry.auto.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkLanguage = "telemetry.sdk.language" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkName = "telemetry.sdk.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeTelemetrySdkVersion = "telemetry.sdk.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineDescription = "webengine.description" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineName = "webengine.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineVersion = "webengine.version" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Ec2 = "ec2" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsElasticBeanstalk = "aws_elastic_beanstalk" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsLambda = "aws_lambda" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureAks = "azure_aks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureAppService = "azure_app_service" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureContainerInstances = "azure_container_instances" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureFunctions = "azure_functions" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AzureVm = "azure_vm" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpAppEngine = "gcp_app_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudFunctions = "gcp_cloud_functions" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Amd64 = "amd64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm32 = "arm32" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm64 = "arm64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ia64 = "ia64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc32 = "ppc32" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc64 = "ppc64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.X86 = "x86" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Aix = "aix" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Darwin = "darwin" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Dragonflybsd = "dragonflybsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Freebsd = "freebsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Hpux = "hpux" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Linux = "linux" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Netbsd = "netbsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Openbsd = "openbsd" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Solaris = "solaris" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Windows = "windows" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.ZOs = "z_os" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Cpp = "cpp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Dotnet = "dotnet" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Erlang = "erlang" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Go = "go" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Java = "java" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Nodejs = "nodejs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Php = "php" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Python = "python" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Ruby = "ruby" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Webjs = "webjs" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributeDefinitions = "aws.dynamodb.attribute_definitions" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbConsistentRead = "aws.dynamodb.consistent_read" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbConsumedCapacity = "aws.dynamodb.consumed_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbCount = "aws.dynamodb.count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbExclusiveStartTable = "aws.dynamodb.exclusive_start_table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbGlobalSecondaryIndexes = "aws.dynamodb.global_secondary_indexes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbGlobalSecondaryIndexUpdates = "aws.dynamodb.global_secondary_index_updates" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbIndexName = "aws.dynamodb.index_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbItemCollectionMetrics = "aws.dynamodb.item_collection_metrics" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbLimit = "aws.dynamodb.limit" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbLocalSecondaryIndexes = "aws.dynamodb.local_secondary_indexes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProjection = "aws.dynamodb.projection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProvisionedReadCapacity = "aws.dynamodb.provisioned_read_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbProvisionedWriteCapacity = "aws.dynamodb.provisioned_write_capacity" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbScanForward = "aws.dynamodb.scan_forward" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbScannedCount = "aws.dynamodb.scanned_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbSegment = "aws.dynamodb.segment" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbSelect = "aws.dynamodb.select" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableCount = "aws.dynamodb.table_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableNames = "aws.dynamodb.table_names" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTotalSegments = "aws.dynamodb.total_segments" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFilepath = "code.filepath" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFunction = "code.function" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeLineno = "code.lineno" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeNamespace = "code.namespace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraConsistencyLevel = "db.cassandra.consistency_level" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorId = "db.cassandra.coordinator.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraIdempotence = "db.cassandra.idempotence" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraKeyspace = "db.cassandra.keyspace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraPageSize = "db.cassandra.page_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraSpeculativeExecutionCount = "db.cassandra.speculative_execution_count" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraTable = "db.cassandra.table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbConnectionString = "db.connection_string" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbHbaseNamespace = "db.hbase.namespace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbInstance = "db.instance" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMongodbCollection = "db.mongodb.collection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMssqlInstanceName = "db.mssql.instance_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbName = "db.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbOperation = "db.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbRedisDatabaseIndex = "db.redis.database_index" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbSqlTable = "db.sql.table" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbStatement = "db.statement" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbSystem = "db.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbUser = "db.user" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserId = "enduser.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserRole = "enduser.role" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserScope = "enduser.scope" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEscaped = "exception.escaped" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEventName = "exception" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionMessage = "exception.message" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionStacktrace = "exception.stacktrace" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionType = "exception.type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasColdstart = "faas.coldstart" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasCron = "faas.cron" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentCollection = "faas.document.collection" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentName = "faas.document.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentOperation = "faas.document.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasDocumentTime = "faas.document.time" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasExecution = "faas.execution" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedName = "faas.invoked_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedProvider = "faas.invoked_provider" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedRegion = "faas.invoked_region" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTime = "faas.time" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTrigger = "faas.trigger" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpClientIp = "http.client_ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpFlavor = "http.flavor" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpHost = "http.host" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpMethod = "http.method" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLength = "http.request_content_length" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLength = "http.response_content_length" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRoute = "http.route" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpScheme = "http.scheme" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpServerName = "http.server_name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "http.status_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUserAgent = "http.user_agent" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConversationId = "messaging.conversation_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestination = "messaging.destination" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestinationKind = "messaging.destination_kind" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaClientId = "messaging.kafka.client_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaConsumerGroup = "messaging.kafka.consumer_group" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaMessageKey = "messaging.kafka.message_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaPartition = "messaging.kafka.partition" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingKafkaTombstone = "messaging.kafka.tombstone" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessageId = "messaging.message_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessagePayloadCompressedSizeBytes = "messaging.message_payload_compressed_size_bytes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingMessagePayloadSizeBytes = "messaging.message_payload_size_bytes" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingOperation = "messaging.operation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocol = "messaging.protocol" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocolVersion = "messaging.protocol_version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRoutingKey = "messaging.rabbitmq.routing_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerIp = "net.peer.ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerName = "net.peer.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerPort = "net.peer.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetTransport = "net.transport" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributePeerService = "peer.service" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcGrpcStatusCode = "rpc.grpc.status_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorCode = "rpc.jsonrpc.error_code" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorMessage = "rpc.jsonrpc.error_message" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcRequestId = "rpc.jsonrpc.request_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcVersion = "rpc.jsonrpc.version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcMethod = "rpc.method" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcService = "rpc.service" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcSystem = "rpc.system" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeThreadId = "thread.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeThreadName = "thread.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.All = "all" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Any = "any" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.EachQuorum = "each_quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalOne = "local_one" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalQuorum = "local_quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.LocalSerial = "local_serial" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.One = "one" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Quorum = "quorum" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Serial = "serial" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Three = "three" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues.Two = "two" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Adabas = "adabas" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cache = "cache" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cassandra = "cassandra" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cloudscape = "cloudscape" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cockroachdb = "cockroachdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Coldfusion = "coldfusion" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Cosmosdb = "cosmosdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Couchbase = "couchbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Couchdb = "couchdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Db2 = "db2" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Derby = "derby" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Dynamodb = "dynamodb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Edb = "edb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Elasticsearch = "elasticsearch" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Filemaker = "filemaker" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Firebird = "firebird" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Firstsql = "firstsql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Geode = "geode" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.H2 = "h2" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hanadb = "hanadb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hbase = "hbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hive = "hive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Hsqldb = "hsqldb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Informix = "informix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Ingres = "ingres" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Instantdb = "instantdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Interbase = "interbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mariadb = "mariadb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Maxdb = "maxdb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Memcached = "memcached" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mongodb = "mongodb" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mssql = "mssql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mysql = "mysql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Neo4j = "neo4j" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Netezza = "netezza" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Oracle = "oracle" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.OtherSql = "other_sql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pervasive = "pervasive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pointbase = "pointbase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Postgresql = "postgresql" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Progress = "progress" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Redis = "redis" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Redshift = "redshift" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Sqlite = "sqlite" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Sybase = "sybase" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Teradata = "teradata" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Vertica = "vertica" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Delete = "delete" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Edit = "edit" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Insert = "insert" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Datasource = "datasource" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Http = "http" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Other = "other" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Pubsub = "pubsub" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Timer = "timer" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http10 = "1.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1.1" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Queue = "queue" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpUdp = "ip_udp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Other = "other" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Pipe = "pipe" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Unix = "unix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Aborted = 10 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.AlreadyExists = 6 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Cancelled = 1 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.DataLoss = 15 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.DeadlineExceeded = 4 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.FailedPrecondition = 9 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Internal = 13 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.InvalidArgument = 3 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.NotFound = 5 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Ok = 0 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.OutOfRange = 11 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.PermissionDenied = 7 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.ResourceExhausted = 8 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unauthenticated = 16 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unavailable = 14 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unimplemented = 12 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unknown = 2 -> int +OpenTelemetry.Resources.ResourceSemanticConventions +OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues +OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues +OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues +OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues +OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues +OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues +OpenTelemetry.Trace.TraceSemanticConventions +OpenTelemetry.Trace.TraceSemanticConventions.DbCassandraConsistencyLevelValues +OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues +OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues +OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues +OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj new file mode 100644 index 00000000000..012dbcfaf05 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj @@ -0,0 +1,13 @@ + + + + netstandard2.0;net461 + OpenTelemetry Semantic Conventions + $(PackageTags);semantic-conventions + + + + $(NoWarn),IDE0005 + + + diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md new file mode 100644 index 00000000000..97a633ebc00 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -0,0 +1,33 @@ +# Semantic Conventions for OpenTelemetry .NET + +This project contains the generated code for the Semantic Conventions +defined by the OpenTelemetry specification. + +## Installation + +```shell +dotnet add package OpenTelemetry.SemanticConventions +``` + +## Generating the files + +This project uses the +[Semantic Convention Generator](https://github.com/open-telemetry/build-tools/blob/main/semantic-conventions/README.md). +The folder `scripts` at the top level of the project contains +the templates and the script file used in the process. + +To generate the code files, run: + +```shell +./scripts/semantic-convetion/generate.sh +``` + +Or, with PowerShell: + +```shell +./scripts/semantic-convetion/generate.ps1 +``` + +## References + +* [OpenTelemetry Project](https://opentelemetry.io/) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs new file mode 100644 index 00000000000..02ecef86fcf --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -0,0 +1,775 @@ +// +// 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. +// + +using System; + +// This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 +namespace OpenTelemetry.Resources +{ + /// + /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. + /// . + /// + /// + /// Schema and specification version: https://opentelemetry.io/schemas/v1.7.0. + /// + public static class ResourceSemanticConventions + { + /// + /// Name of the cloud provider. + /// + public const string AttributeCloudProvider = "cloud.provider"; + + /// + /// The cloud account ID the resource is assigned to. + /// + public const string AttributeCloudAccountId = "cloud.account.id"; + + /// + /// The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, or Google Cloud regions. + /// + public const string AttributeCloudRegion = "cloud.region"; + + /// + /// Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running. + /// + /// + /// Availability zones are called "zones" on Alibaba Cloud and Google Cloud. + /// + public const string AttributeCloudAvailabilityZone = "cloud.availability_zone"; + + /// + /// The cloud platform in use. + /// + /// + /// The prefix of the service SHOULD match the one specified in `cloud.provider`. + /// + public const string AttributeCloudPlatform = "cloud.platform"; + + /// + /// The Amazon Resource Name (ARN) of an ECS container instance. + /// + public const string AttributeAwsEcsContainerArn = "aws.ecs.container.arn"; + + /// + /// The ARN of an ECS cluster. + /// + public const string AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn"; + + /// + /// The launch type for an ECS task. + /// + public const string AttributeAwsEcsLaunchtype = "aws.ecs.launchtype"; + + /// + /// The ARN of an ECS task definition. + /// + public const string AttributeAwsEcsTaskArn = "aws.ecs.task.arn"; + + /// + /// The task definition family this task definition is a member of. + /// + public const string AttributeAwsEcsTaskFamily = "aws.ecs.task.family"; + + /// + /// The revision for this task definition. + /// + public const string AttributeAwsEcsTaskRevision = "aws.ecs.task.revision"; + + /// + /// The ARN of an EKS cluster. + /// + public const string AttributeAwsEksClusterArn = "aws.eks.cluster.arn"; + + /// + /// The name(s) of the AWS log group(s) an application is writing to. + /// + /// + /// Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group. + /// + public const string AttributeAwsLogGroupNames = "aws.log.group.names"; + + /// + /// The Amazon Resource Name(s) (ARN) of the AWS log group(s). + /// + /// + /// See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). + /// + public const string AttributeAwsLogGroupArns = "aws.log.group.arns"; + + /// + /// The name(s) of the AWS log stream(s) an application is writing to. + /// + public const string AttributeAwsLogStreamNames = "aws.log.stream.names"; + + /// + /// The ARN(s) of the AWS log stream(s). + /// + /// + /// See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream. + /// + public const string AttributeAwsLogStreamArns = "aws.log.stream.arns"; + + /// + /// Container name. + /// + public const string AttributeContainerName = "container.name"; + + /// + /// Container ID. Usually a UUID, as for example used to identify Docker containers. The UUID might be abbreviated. + /// + public const string AttributeContainerId = "container.id"; + + /// + /// The container runtime managing this container. + /// + public const string AttributeContainerRuntime = "container.runtime"; + + /// + /// Name of the image the container was built on. + /// + public const string AttributeContainerImageName = "container.image.name"; + + /// + /// Container image tag. + /// + public const string AttributeContainerImageTag = "container.image.tag"; + + /// + /// Name of the deployment environment (aka deployment tier). + /// + public const string AttributeDeploymentEnvironment = "deployment.environment"; + + /// + /// A unique identifier representing the device. + /// + /// + /// The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence. + /// + public const string AttributeDeviceId = "device.id"; + + /// + /// The model identifier for the device. + /// + /// + /// It's recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device. + /// + public const string AttributeDeviceModelIdentifier = "device.model.identifier"; + + /// + /// The marketing name for the device model. + /// + /// + /// It's recommended this value represents a human readable version of the device model rather than a machine readable alternative. + /// + public const string AttributeDeviceModelName = "device.model.name"; + + /// + /// The name of the single function that this runtime instance executes. + /// + /// + /// This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes). + /// + public const string AttributeFaasName = "faas.name"; + + /// + /// The unique ID of the single function that this runtime instance executes. + /// + /// + /// Depending on the cloud provider, use: * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Take care not to use the "invoked ARN" directly but replace any [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple different aliases. * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id). On some providers, it may not be possible to determine the full ID at startup, which is why this field cannot be made required. For example, on AWS the account ID part of the ARN is not available without calling another AWS API which may be deemed too slow for a short-running lambda function. As an alternative, consider setting `faas.id` as a span attribute instead. + /// + public const string AttributeFaasId = "faas.id"; + + /// + /// The immutable version of the function being executed. + /// + /// + /// Depending on the cloud provider and platform, use: * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) (an integer represented as a decimal string). * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions) (i.e., the function name plus the revision suffix). * **Google Cloud Functions:** The value of the [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). * **Azure Functions:** Not applicable. Do not set this attribute. + /// + public const string AttributeFaasVersion = "faas.version"; + + /// + /// The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version. + /// + /// + /// * **AWS Lambda:** Use the (full) log stream name. + /// + public const string AttributeFaasInstance = "faas.instance"; + + /// + /// The amount of memory available to the serverless function in MiB. + /// + /// + /// It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information. + /// + public const string AttributeFaasMaxMemory = "faas.max_memory"; + + /// + /// Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. + /// + public const string AttributeHostId = "host.id"; + + /// + /// Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user. + /// + public const string AttributeHostName = "host.name"; + + /// + /// Type of host. For Cloud, this must be the machine type. + /// + public const string AttributeHostType = "host.type"; + + /// + /// The CPU architecture the host system is running on. + /// + public const string AttributeHostArch = "host.arch"; + + /// + /// Name of the VM image or OS install the host was instantiated from. + /// + public const string AttributeHostImageName = "host.image.name"; + + /// + /// VM image ID. For Cloud, this value is from the provider. + /// + public const string AttributeHostImageId = "host.image.id"; + + /// + /// The version string of the VM image as defined in Version Attributes. + /// + public const string AttributeHostImageVersion = "host.image.version"; + + /// + /// The name of the cluster. + /// + public const string AttributeK8sClusterName = "k8s.cluster.name"; + + /// + /// The name of the Node. + /// + public const string AttributeK8sNodeName = "k8s.node.name"; + + /// + /// The UID of the Node. + /// + public const string AttributeK8sNodeUid = "k8s.node.uid"; + + /// + /// The name of the namespace that the pod is running in. + /// + public const string AttributeK8sNamespaceName = "k8s.namespace.name"; + + /// + /// The UID of the Pod. + /// + public const string AttributeK8sPodUid = "k8s.pod.uid"; + + /// + /// The name of the Pod. + /// + public const string AttributeK8sPodName = "k8s.pod.name"; + + /// + /// The name of the Container in a Pod template. + /// + public const string AttributeK8sContainerName = "k8s.container.name"; + + /// + /// The UID of the ReplicaSet. + /// + public const string AttributeK8sReplicasetUid = "k8s.replicaset.uid"; + + /// + /// The name of the ReplicaSet. + /// + public const string AttributeK8sReplicasetName = "k8s.replicaset.name"; + + /// + /// The UID of the Deployment. + /// + public const string AttributeK8sDeploymentUid = "k8s.deployment.uid"; + + /// + /// The name of the Deployment. + /// + public const string AttributeK8sDeploymentName = "k8s.deployment.name"; + + /// + /// The UID of the StatefulSet. + /// + public const string AttributeK8sStatefulsetUid = "k8s.statefulset.uid"; + + /// + /// The name of the StatefulSet. + /// + public const string AttributeK8sStatefulsetName = "k8s.statefulset.name"; + + /// + /// The UID of the DaemonSet. + /// + public const string AttributeK8sDaemonsetUid = "k8s.daemonset.uid"; + + /// + /// The name of the DaemonSet. + /// + public const string AttributeK8sDaemonsetName = "k8s.daemonset.name"; + + /// + /// The UID of the Job. + /// + public const string AttributeK8sJobUid = "k8s.job.uid"; + + /// + /// The name of the Job. + /// + public const string AttributeK8sJobName = "k8s.job.name"; + + /// + /// The UID of the CronJob. + /// + public const string AttributeK8sCronjobUid = "k8s.cronjob.uid"; + + /// + /// The name of the CronJob. + /// + public const string AttributeK8sCronjobName = "k8s.cronjob.name"; + + /// + /// The operating system type. + /// + public const string AttributeOsType = "os.type"; + + /// + /// Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands. + /// + public const string AttributeOsDescription = "os.description"; + + /// + /// Human readable operating system name. + /// + public const string AttributeOsName = "os.name"; + + /// + /// The version string of the operating system as defined in Version Attributes. + /// + public const string AttributeOsVersion = "os.version"; + + /// + /// Process identifier (PID). + /// + public const string AttributeProcessPid = "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. + /// + public const string AttributeProcessExecutableName = "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. + /// + public const string AttributeProcessExecutablePath = "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. + /// + public const string AttributeProcessCommand = "process.command"; + + /// + /// The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of GetCommandLineW. Do not set this if you have to assemble it just for monitoring; use process.command_args instead. + /// + public const string AttributeProcessCommandLine = "process.command_line"; + + /// + /// All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from proc/[pid]/cmdline. For libc-based executables, this would be the full argv vector passed to main. + /// + public const string AttributeProcessCommandArgs = "process.command_args"; + + /// + /// The username of the user that owns the process. + /// + public const string AttributeProcessOwner = "process.owner"; + + /// + /// The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler. + /// + public const string AttributeProcessRuntimeName = "process.runtime.name"; + + /// + /// The version of the runtime of this process, as returned by the runtime without modification. + /// + public const string AttributeProcessRuntimeVersion = "process.runtime.version"; + + /// + /// An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. + /// + public const string AttributeProcessRuntimeDescription = "process.runtime.description"; + + /// + /// Logical name of the service. + /// + /// + /// MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`. + /// + public const string AttributeServiceName = "service.name"; + + /// + /// A namespace for service.name. + /// + /// + /// A string value having a 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. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace. + /// + public const string AttributeServiceNamespace = "service.namespace"; + + /// + /// The string ID of the service instance. + /// + /// + /// MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations). + /// + public const string AttributeServiceInstanceId = "service.instance.id"; + + /// + /// The version string of the service API or implementation. + /// + public const string AttributeServiceVersion = "service.version"; + + /// + /// The name of the telemetry SDK as defined above. + /// + public const string AttributeTelemetrySdkName = "telemetry.sdk.name"; + + /// + /// The language of the telemetry SDK. + /// + public const string AttributeTelemetrySdkLanguage = "telemetry.sdk.language"; + + /// + /// The version string of the telemetry SDK. + /// + public const string AttributeTelemetrySdkVersion = "telemetry.sdk.version"; + + /// + /// The version string of the auto instrumentation agent, if used. + /// + public const string AttributeTelemetryAutoVersion = "telemetry.auto.version"; + + /// + /// The name of the web engine. + /// + public const string AttributeWebengineName = "webengine.name"; + + /// + /// The version of the web engine. + /// + public const string AttributeWebengineVersion = "webengine.version"; + + /// + /// Additional description of the web engine (e.g. detailed version and edition information). + /// + public const string AttributeWebengineDescription = "webengine.description"; + + /// + /// Name of the cloud provider. + /// + public static class CloudProviderValues + { + /// + /// Alibaba Cloud. + /// + public const string AlibabaCloud = "alibaba_cloud"; + + /// + /// Amazon Web Services. + /// + public const string Aws = "aws"; + + /// + /// Microsoft Azure. + /// + public const string Azure = "azure"; + + /// + /// Google Cloud Platform. + /// + public const string Gcp = "gcp"; + } + + /// + /// The cloud platform in use. + /// + public static class CloudPlatformValues + { + /// + /// Alibaba Cloud Elastic Compute Service. + /// + public const string AlibabaCloudEcs = "alibaba_cloud_ecs"; + + /// + /// Alibaba Cloud Function Compute. + /// + public const string AlibabaCloudFc = "alibaba_cloud_fc"; + + /// + /// AWS Elastic Compute Cloud. + /// + public const string AwsEc2 = "aws_ec2"; + + /// + /// AWS Elastic Container Service. + /// + public const string AwsEcs = "aws_ecs"; + + /// + /// AWS Elastic Kubernetes Service. + /// + public const string AwsEks = "aws_eks"; + + /// + /// AWS Lambda. + /// + public const string AwsLambda = "aws_lambda"; + + /// + /// AWS Elastic Beanstalk. + /// + public const string AwsElasticBeanstalk = "aws_elastic_beanstalk"; + + /// + /// Azure Virtual Machines. + /// + public const string AzureVm = "azure_vm"; + + /// + /// Azure Container Instances. + /// + public const string AzureContainerInstances = "azure_container_instances"; + + /// + /// Azure Kubernetes Service. + /// + public const string AzureAks = "azure_aks"; + + /// + /// Azure Functions. + /// + public const string AzureFunctions = "azure_functions"; + + /// + /// Azure App Service. + /// + public const string AzureAppService = "azure_app_service"; + + /// + /// Google Cloud Compute Engine (GCE). + /// + public const string GcpComputeEngine = "gcp_compute_engine"; + + /// + /// Google Cloud Run. + /// + public const string GcpCloudRun = "gcp_cloud_run"; + + /// + /// Google Cloud Kubernetes Engine (GKE). + /// + public const string GcpKubernetesEngine = "gcp_kubernetes_engine"; + + /// + /// Google Cloud Functions (GCF). + /// + public const string GcpCloudFunctions = "gcp_cloud_functions"; + + /// + /// Google Cloud App Engine (GAE). + /// + public const string GcpAppEngine = "gcp_app_engine"; + } + + /// + /// The launch type for an ECS task. + /// + public static class AwsEcsLaunchtypeValues + { + /// + /// ec2. + /// + public const string Ec2 = "ec2"; + + /// + /// fargate. + /// + public const string Fargate = "fargate"; + } + + /// + /// The CPU architecture the host system is running on. + /// + public static class HostArchValues + { + /// + /// AMD64. + /// + public const string Amd64 = "amd64"; + + /// + /// ARM32. + /// + public const string Arm32 = "arm32"; + + /// + /// ARM64. + /// + public const string Arm64 = "arm64"; + + /// + /// Itanium. + /// + public const string Ia64 = "ia64"; + + /// + /// 32-bit PowerPC. + /// + public const string Ppc32 = "ppc32"; + + /// + /// 64-bit PowerPC. + /// + public const string Ppc64 = "ppc64"; + + /// + /// 32-bit x86. + /// + public const string X86 = "x86"; + } + + /// + /// The operating system type. + /// + public static class OsTypeValues + { + /// + /// Microsoft Windows. + /// + public const string Windows = "windows"; + + /// + /// Linux. + /// + public const string Linux = "linux"; + + /// + /// Apple Darwin. + /// + public const string Darwin = "darwin"; + + /// + /// FreeBSD. + /// + public const string Freebsd = "freebsd"; + + /// + /// NetBSD. + /// + public const string Netbsd = "netbsd"; + + /// + /// OpenBSD. + /// + public const string Openbsd = "openbsd"; + + /// + /// DragonFly BSD. + /// + public const string Dragonflybsd = "dragonflybsd"; + + /// + /// HP-UX (Hewlett Packard Unix). + /// + public const string Hpux = "hpux"; + + /// + /// AIX (Advanced Interactive eXecutive). + /// + public const string Aix = "aix"; + + /// + /// Oracle Solaris. + /// + public const string Solaris = "solaris"; + + /// + /// IBM z/OS. + /// + public const string ZOs = "z_os"; + } + + /// + /// The language of the telemetry SDK. + /// + public static class TelemetrySdkLanguageValues + { + /// + /// cpp. + /// + public const string Cpp = "cpp"; + + /// + /// dotnet. + /// + public const string Dotnet = "dotnet"; + + /// + /// erlang. + /// + public const string Erlang = "erlang"; + + /// + /// go. + /// + public const string Go = "go"; + + /// + /// java. + /// + public const string Java = "java"; + + /// + /// nodejs. + /// + public const string Nodejs = "nodejs"; + + /// + /// php. + /// + public const string Php = "php"; + + /// + /// python. + /// + public const string Python = "python"; + + /// + /// ruby. + /// + public const string Ruby = "ruby"; + + /// + /// webjs. + /// + public const string Webjs = "webjs"; + } + } +} diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs new file mode 100644 index 00000000000..f94caa00c2a --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -0,0 +1,1471 @@ +// +// 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. +// + +using System; + +// This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 +namespace OpenTelemetry.Trace +{ + /// + /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. + /// . + /// + /// + /// Schema and specification version: https://opentelemetry.io/schemas/v1.7.0. + /// + public static class TraceSemanticConventions + { + /// + /// The full invoked ARN as provided on the Context passed to the function (Lambda-Runtime-Invoked-Function-Arn header on the /runtime/invocation/next applicable). + /// + /// + /// This may be different from `faas.id` if an alias is involved. + /// + public const string AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn"; + + /// + /// An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers. + /// + public const string AttributeDbSystem = "db.system"; + + /// + /// The connection string used to connect to the database. It is recommended to remove embedded credentials. + /// + public const string AttributeDbConnectionString = "db.connection_string"; + + /// + /// Username for accessing the database. + /// + public const string AttributeDbUser = "db.user"; + + /// + /// The fully-qualified class name of the Java Database Connectivity (JDBC) driver used to connect. + /// + public const string AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname"; + + /// + /// If no tech-specific attribute is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails). + /// + /// + /// In some SQL databases, the database name to be used is called "schema name". + /// + public const string AttributeDbName = "db.name"; + + /// + /// The database statement being executed. + /// + /// + /// The value may be sanitized to exclude sensitive information. + /// + public const string AttributeDbStatement = "db.statement"; + + /// + /// The name of the operation being executed, e.g. the MongoDB command name such as findAndModify, or the SQL keyword. + /// + /// + /// When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted. + /// + public const string AttributeDbOperation = "db.operation"; + + /// + /// The Microsoft SQL Server instance name connecting to. This name is used to determine the port of a named instance. + /// + /// + /// If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard). + /// + public const string AttributeDbMssqlInstanceName = "db.mssql.instance_name"; + + /// + /// The name of the keyspace being accessed. To be used instead of the generic db.name attribute. + /// + public const string AttributeDbCassandraKeyspace = "db.cassandra.keyspace"; + + /// + /// The fetch size used for paging, i.e. how many rows will be returned at once. + /// + public const string AttributeDbCassandraPageSize = "db.cassandra.page_size"; + + /// + /// The consistency level of the query. Based on consistency values from CQL. + /// + public const string AttributeDbCassandraConsistencyLevel = "db.cassandra.consistency_level"; + + /// + /// The name of the primary table that the operation is acting upon, including the schema name (if applicable). + /// + /// + /// This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. + /// + public const string AttributeDbCassandraTable = "db.cassandra.table"; + + /// + /// Whether or not the query is idempotent. + /// + public const string AttributeDbCassandraIdempotence = "db.cassandra.idempotence"; + + /// + /// The number of times a query was speculatively executed. Not set or 0 if the query was not executed speculatively. + /// + public const string AttributeDbCassandraSpeculativeExecutionCount = "db.cassandra.speculative_execution_count"; + + /// + /// The ID of the coordinating node for a query. + /// + public const string AttributeDbCassandraCoordinatorId = "db.cassandra.coordinator.id"; + + /// + /// The data center of the coordinating node for a query. + /// + public const string AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc"; + + /// + /// The HBase namespace being accessed. To be used instead of the generic db.name attribute. + /// + public const string AttributeDbHbaseNamespace = "db.hbase.namespace"; + + /// + /// The index of the database being accessed as used in the SELECT command, provided as an integer. To be used instead of the generic db.name attribute. + /// + public const string AttributeDbRedisDatabaseIndex = "db.redis.database_index"; + + /// + /// The collection being accessed within the database stated in db.name. + /// + public const string AttributeDbMongodbCollection = "db.mongodb.collection"; + + /// + /// The name of the primary table that the operation is acting upon, including the schema name (if applicable). + /// + /// + /// It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. + /// + public const string AttributeDbSqlTable = "db.sql.table"; + + /// + /// The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it. + /// + public const string AttributeExceptionType = "exception.type"; + + /// + /// The exception message. + /// + public const string AttributeExceptionMessage = "exception.message"; + + /// + /// A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. + /// + public const string AttributeExceptionStacktrace = "exception.stacktrace"; + + /// + /// SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span. + /// + /// + /// An exception is considered to have escaped (or left) the scope of a span, if that span is ended while the exception is still logically "in flight". This may be actually "in flight" in some languages (e.g. if the exception is passed to a Context manager's `__exit__` method in Python) but will usually be caught at the point of recording the exception in most languages. It is usually not possible to determine at the point where an exception is thrown whether it will escape the scope of a span. However, it is trivial to know that an exception will escape, if one checks for an active exception just before ending the span, as done in the [example above](#exception-end-example). It follows that an exception may still escape the scope of the span even if the `exception.escaped` attribute was not set or set to false, since the event might have been recorded at a time where it was not clear whether the exception will escape. + /// + public const string AttributeExceptionEscaped = "exception.escaped"; + + /// + /// Type of the trigger on which the function is executed. + /// + public const string AttributeFaasTrigger = "faas.trigger"; + + /// + /// The execution ID of the current function execution. + /// + public const string AttributeFaasExecution = "faas.execution"; + + /// + /// The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name. + /// + public const string AttributeFaasDocumentCollection = "faas.document.collection"; + + /// + /// Describes the type of the operation that was performed on the data. + /// + public const string AttributeFaasDocumentOperation = "faas.document.operation"; + + /// + /// A string containing the time when the data was accessed in the ISO 8601 format expressed in UTC. + /// + public const string AttributeFaasDocumentTime = "faas.document.time"; + + /// + /// The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name. + /// + public const string AttributeFaasDocumentName = "faas.document.name"; + + /// + /// A string containing the function invocation time in the ISO 8601 format expressed in UTC. + /// + public const string AttributeFaasTime = "faas.time"; + + /// + /// A string containing the schedule period as Cron Expression. + /// + public const string AttributeFaasCron = "faas.cron"; + + /// + /// A boolean that is true if the serverless function is executed for the first time (aka cold-start). + /// + public const string AttributeFaasColdstart = "faas.coldstart"; + + /// + /// The name of the invoked function. + /// + /// + /// SHOULD be equal to the `faas.name` resource attribute of the invoked function. + /// + public const string AttributeFaasInvokedName = "faas.invoked_name"; + + /// + /// The cloud provider of the invoked function. + /// + /// + /// SHOULD be equal to the `cloud.provider` resource attribute of the invoked function. + /// + public const string AttributeFaasInvokedProvider = "faas.invoked_provider"; + + /// + /// The cloud region of the invoked function. + /// + /// + /// SHOULD be equal to the `cloud.region` resource attribute of the invoked function. + /// + public const string AttributeFaasInvokedRegion = "faas.invoked_region"; + + /// + /// Transport protocol used. See note below. + /// + public const string AttributeNetTransport = "net.transport"; + + /// + /// Remote address of the peer (dotted decimal for IPv4 or RFC5952 for IPv6). + /// + public const string AttributeNetPeerIp = "net.peer.ip"; + + /// + /// Remote port number. + /// + public const string AttributeNetPeerPort = "net.peer.port"; + + /// + /// Remote hostname or similar, see note below. + /// + public const string AttributeNetPeerName = "net.peer.name"; + + /// + /// Like net.peer.ip but for the host IP. Useful in case of a multi-IP host. + /// + public const string AttributeNetHostIp = "net.host.ip"; + + /// + /// Like net.peer.port but for the host port. + /// + public const string AttributeNetHostPort = "net.host.port"; + + /// + /// Local hostname or similar, see note below. + /// + public const string AttributeNetHostName = "net.host.name"; + + /// + /// The internet connection type currently being used by the host. + /// + public const string AttributeNetHostConnectionType = "net.host.connection.type"; + + /// + /// This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection. + /// + public const string AttributeNetHostConnectionSubtype = "net.host.connection.subtype"; + + /// + /// The name of the mobile carrier. + /// + public const string AttributeNetHostCarrierName = "net.host.carrier.name"; + + /// + /// The mobile carrier country code. + /// + public const string AttributeNetHostCarrierMcc = "net.host.carrier.mcc"; + + /// + /// The mobile carrier network code. + /// + public const string AttributeNetHostCarrierMnc = "net.host.carrier.mnc"; + + /// + /// The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network. + /// + public const string AttributeNetHostCarrierIcc = "net.host.carrier.icc"; + + /// + /// The service.name of the remote service. SHOULD be equal to the actual service.name resource attribute of the remote service if any. + /// + public const string AttributePeerService = "peer.service"; + + /// + /// Username or client_id extracted from the access token or Authorization header in the inbound request from outside the system. + /// + public const string AttributeEnduserId = "enduser.id"; + + /// + /// Actual/assumed role the client is making the request under extracted from token or application security context. + /// + public const string AttributeEnduserRole = "enduser.role"; + + /// + /// Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an OAuth 2.0 Access Token or an attribute value in a SAML 2.0 Assertion. + /// + public const string AttributeEnduserScope = "enduser.scope"; + + /// + /// Current "managed" thread ID (as opposed to OS thread ID). + /// + public const string AttributeThreadId = "thread.id"; + + /// + /// Current thread name. + /// + public const string AttributeThreadName = "thread.name"; + + /// + /// The method or function name, or equivalent (usually rightmost part of the code unit's name). + /// + public const string AttributeCodeFunction = "code.function"; + + /// + /// The "namespace" within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit. + /// + public const string AttributeCodeNamespace = "code.namespace"; + + /// + /// The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). + /// + public const string AttributeCodeFilepath = "code.filepath"; + + /// + /// The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function. + /// + public const string AttributeCodeLineno = "code.lineno"; + + /// + /// HTTP request method. + /// + public const string AttributeHttpMethod = "http.method"; + + /// + /// Full HTTP request URL in the form scheme://host[:port]/path?query[#fragment]. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless. + /// + /// + /// `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`. + /// + public const string AttributeHttpUrl = "http.url"; + + /// + /// The full request target as passed in a HTTP request line or equivalent. + /// + public const string AttributeHttpTarget = "http.target"; + + /// + /// The value of the HTTP host header. An empty Host header should also be reported, see note. + /// + /// + /// When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set. + /// + public const string AttributeHttpHost = "http.host"; + + /// + /// The URI scheme identifying the used protocol. + /// + public const string AttributeHttpScheme = "http.scheme"; + + /// + /// HTTP response status code. + /// + public const string AttributeHttpStatusCode = "http.status_code"; + + /// + /// Kind of HTTP protocol used. + /// + /// + /// If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed. + /// + public const string AttributeHttpFlavor = "http.flavor"; + + /// + /// Value of the HTTP User-Agent header sent by the client. + /// + public const string AttributeHttpUserAgent = "http.user_agent"; + + /// + /// The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. + /// + public const string AttributeHttpRequestContentLength = "http.request_content_length"; + + /// + /// The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used. + /// + public const string AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed"; + + /// + /// The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. + /// + public const string AttributeHttpResponseContentLength = "http.response_content_length"; + + /// + /// The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used. + /// + public const string AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed"; + + /// + /// The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( net.host.name should be used instead). + /// + /// + /// `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available. + /// + public const string AttributeHttpServerName = "http.server_name"; + + /// + /// The matched route (path template). + /// + public const string AttributeHttpRoute = "http.route"; + + /// + /// The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For). + /// + /// + /// This is not necessarily the same as `net.peer.ip`, which would identify the network-level peer, which may be a proxy. This attribute should be set when a source of information different from the one used for `net.peer.ip`, is available even if that other source just confirms the same value as `net.peer.ip`. Rationale: For `net.peer.ip`, one typically does not know if it comes from a proxy, reverse proxy, or the actual client. Setting `http.client_ip` when it's the same as `net.peer.ip` means that one is at least somewhat confident that the address is not that of the closest proxy. + /// + public const string AttributeHttpClientIp = "http.client_ip"; + + /// + /// The keys in the RequestItems object field. + /// + public const string AttributeAwsDynamodbTableNames = "aws.dynamodb.table_names"; + + /// + /// The JSON-serialized value of each item in the ConsumedCapacity response field. + /// + public const string AttributeAwsDynamodbConsumedCapacity = "aws.dynamodb.consumed_capacity"; + + /// + /// The JSON-serialized value of the ItemCollectionMetrics response field. + /// + public const string AttributeAwsDynamodbItemCollectionMetrics = "aws.dynamodb.item_collection_metrics"; + + /// + /// The value of the ProvisionedThroughput.ReadCapacityUnits request parameter. + /// + public const string AttributeAwsDynamodbProvisionedReadCapacity = "aws.dynamodb.provisioned_read_capacity"; + + /// + /// The value of the ProvisionedThroughput.WriteCapacityUnits request parameter. + /// + public const string AttributeAwsDynamodbProvisionedWriteCapacity = "aws.dynamodb.provisioned_write_capacity"; + + /// + /// The value of the ConsistentRead request parameter. + /// + public const string AttributeAwsDynamodbConsistentRead = "aws.dynamodb.consistent_read"; + + /// + /// The value of the ProjectionExpression request parameter. + /// + public const string AttributeAwsDynamodbProjection = "aws.dynamodb.projection"; + + /// + /// The value of the Limit request parameter. + /// + public const string AttributeAwsDynamodbLimit = "aws.dynamodb.limit"; + + /// + /// The value of the AttributesToGet request parameter. + /// + public const string AttributeAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get"; + + /// + /// The value of the IndexName request parameter. + /// + public const string AttributeAwsDynamodbIndexName = "aws.dynamodb.index_name"; + + /// + /// The value of the Select request parameter. + /// + public const string AttributeAwsDynamodbSelect = "aws.dynamodb.select"; + + /// + /// The JSON-serialized value of each item of the GlobalSecondaryIndexes request field. + /// + public const string AttributeAwsDynamodbGlobalSecondaryIndexes = "aws.dynamodb.global_secondary_indexes"; + + /// + /// The JSON-serialized value of each item of the LocalSecondaryIndexes request field. + /// + public const string AttributeAwsDynamodbLocalSecondaryIndexes = "aws.dynamodb.local_secondary_indexes"; + + /// + /// The value of the ExclusiveStartTableName request parameter. + /// + public const string AttributeAwsDynamodbExclusiveStartTable = "aws.dynamodb.exclusive_start_table"; + + /// + /// The the number of items in the TableNames response parameter. + /// + public const string AttributeAwsDynamodbTableCount = "aws.dynamodb.table_count"; + + /// + /// The value of the ScanIndexForward request parameter. + /// + public const string AttributeAwsDynamodbScanForward = "aws.dynamodb.scan_forward"; + + /// + /// The value of the Segment request parameter. + /// + public const string AttributeAwsDynamodbSegment = "aws.dynamodb.segment"; + + /// + /// The value of the TotalSegments request parameter. + /// + public const string AttributeAwsDynamodbTotalSegments = "aws.dynamodb.total_segments"; + + /// + /// The value of the Count response parameter. + /// + public const string AttributeAwsDynamodbCount = "aws.dynamodb.count"; + + /// + /// The value of the ScannedCount response parameter. + /// + public const string AttributeAwsDynamodbScannedCount = "aws.dynamodb.scanned_count"; + + /// + /// The JSON-serialized value of each item in the AttributeDefinitions request field. + /// + public const string AttributeAwsDynamodbAttributeDefinitions = "aws.dynamodb.attribute_definitions"; + + /// + /// The JSON-serialized value of each item in the the GlobalSecondaryIndexUpdates request field. + /// + public const string AttributeAwsDynamodbGlobalSecondaryIndexUpdates = "aws.dynamodb.global_secondary_index_updates"; + + /// + /// A string identifying the messaging system. + /// + public const string AttributeMessagingSystem = "messaging.system"; + + /// + /// The message destination name. This might be equal to the span name but is required nevertheless. + /// + public const string AttributeMessagingDestination = "messaging.destination"; + + /// + /// The kind of message destination. + /// + public const string AttributeMessagingDestinationKind = "messaging.destination_kind"; + + /// + /// A boolean that is true if the message destination is temporary. + /// + public const string AttributeMessagingTempDestination = "messaging.temp_destination"; + + /// + /// The name of the transport protocol. + /// + public const string AttributeMessagingProtocol = "messaging.protocol"; + + /// + /// The version of the transport protocol. + /// + public const string AttributeMessagingProtocolVersion = "messaging.protocol_version"; + + /// + /// Connection string. + /// + public const string AttributeMessagingUrl = "messaging.url"; + + /// + /// A value used by the messaging system as an identifier for the message, represented as a string. + /// + public const string AttributeMessagingMessageId = "messaging.message_id"; + + /// + /// The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID". + /// + public const string AttributeMessagingConversationId = "messaging.conversation_id"; + + /// + /// The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. + /// + public const string AttributeMessagingMessagePayloadSizeBytes = "messaging.message_payload_size_bytes"; + + /// + /// The compressed size of the message payload in bytes. + /// + public const string AttributeMessagingMessagePayloadCompressedSizeBytes = "messaging.message_payload_compressed_size_bytes"; + + /// + /// A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case. + /// + public const string AttributeMessagingOperation = "messaging.operation"; + + /// + /// The identifier for the consumer receiving a message. For Kafka, set it to {messaging.kafka.consumer_group} - {messaging.kafka.client_id}, if both are present, or only messaging.kafka.consumer_group. For brokers, such as RabbitMQ and Artemis, set it to the client_id of the client consuming the message. + /// + public const string AttributeMessagingConsumerId = "messaging.consumer_id"; + + /// + /// RabbitMQ message routing key. + /// + public const string AttributeMessagingRabbitmqRoutingKey = "messaging.rabbitmq.routing_key"; + + /// + /// Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from messaging.message_id in that they're not unique. If the key is null, the attribute MUST NOT be set. + /// + /// + /// If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value. + /// + public const string AttributeMessagingKafkaMessageKey = "messaging.kafka.message_key"; + + /// + /// Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers. + /// + public const string AttributeMessagingKafkaConsumerGroup = "messaging.kafka.consumer_group"; + + /// + /// Client Id for the Consumer or Producer that is handling the message. + /// + public const string AttributeMessagingKafkaClientId = "messaging.kafka.client_id"; + + /// + /// Partition the message is sent to. + /// + public const string AttributeMessagingKafkaPartition = "messaging.kafka.partition"; + + /// + /// A boolean that is true if the message is a tombstone. + /// + public const string AttributeMessagingKafkaTombstone = "messaging.kafka.tombstone"; + + /// + /// A string identifying the remoting system. + /// + public const string AttributeRpcSystem = "rpc.system"; + + /// + /// The full (logical) name of the service being called, including its package name, if applicable. + /// + /// + /// This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side). + /// + public const string AttributeRpcService = "rpc.service"; + + /// + /// The name of the (logical) method being called, must be equal to the $method part in the span name. + /// + /// + /// This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side). + /// + public const string AttributeRpcMethod = "rpc.method"; + + /// + /// The numeric status code of the gRPC request. + /// + public const string AttributeRpcGrpcStatusCode = "rpc.grpc.status_code"; + + /// + /// Protocol version as in jsonrpc property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted. + /// + public const string AttributeRpcJsonrpcVersion = "rpc.jsonrpc.version"; + + /// + /// id property of request or response. Since protocol allows id to be int, string, null or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of null value. Omit entirely if this is a notification. + /// + public const string AttributeRpcJsonrpcRequestId = "rpc.jsonrpc.request_id"; + + /// + /// error.code property of response if it is an error response. + /// + public const string AttributeRpcJsonrpcErrorCode = "rpc.jsonrpc.error_code"; + + /// + /// error.message property of response if it is an error response. + /// + public const string AttributeRpcJsonrpcErrorMessage = "rpc.jsonrpc.error_message"; + + /// + /// Whether this is a received or sent message. + /// + public const string AttributeMessageType = "message.type"; + + /// + /// MUST be calculated as two different counters starting from 1 one for sent messages and one for received message. + /// + /// + /// This way we guarantee that the values will be consistent between different implementations. + /// + public const string AttributeMessageId = "message.id"; + + /// + /// Compressed size of the message in bytes. + /// + public const string AttributeMessageCompressedSize = "message.compressed_size"; + + /// + /// Uncompressed size of the message in bytes. + /// + public const string AttributeMessageUncompressedSize = "message.uncompressed_size"; + + // Manually defined and not YET in the YAML +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + public const string AttributeDbInstance = "db.instance"; + + public const string AttributeExceptionEventName = "exception"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member + + /// + /// An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers. + /// + public static class DbSystemValues + { + /// + /// Some other SQL database. Fallback only. See notes. + /// + public const string OtherSql = "other_sql"; + + /// + /// Microsoft SQL Server. + /// + public const string Mssql = "mssql"; + + /// + /// MySQL. + /// + public const string Mysql = "mysql"; + + /// + /// Oracle Database. + /// + public const string Oracle = "oracle"; + + /// + /// IBM Db2. + /// + public const string Db2 = "db2"; + + /// + /// PostgreSQL. + /// + public const string Postgresql = "postgresql"; + + /// + /// Amazon Redshift. + /// + public const string Redshift = "redshift"; + + /// + /// Apache Hive. + /// + public const string Hive = "hive"; + + /// + /// Cloudscape. + /// + public const string Cloudscape = "cloudscape"; + + /// + /// HyperSQL DataBase. + /// + public const string Hsqldb = "hsqldb"; + + /// + /// Progress Database. + /// + public const string Progress = "progress"; + + /// + /// SAP MaxDB. + /// + public const string Maxdb = "maxdb"; + + /// + /// SAP HANA. + /// + public const string Hanadb = "hanadb"; + + /// + /// Ingres. + /// + public const string Ingres = "ingres"; + + /// + /// FirstSQL. + /// + public const string Firstsql = "firstsql"; + + /// + /// EnterpriseDB. + /// + public const string Edb = "edb"; + + /// + /// InterSystems Caché. + /// + public const string Cache = "cache"; + + /// + /// Adabas (Adaptable Database System). + /// + public const string Adabas = "adabas"; + + /// + /// Firebird. + /// + public const string Firebird = "firebird"; + + /// + /// Apache Derby. + /// + public const string Derby = "derby"; + + /// + /// FileMaker. + /// + public const string Filemaker = "filemaker"; + + /// + /// Informix. + /// + public const string Informix = "informix"; + + /// + /// InstantDB. + /// + public const string Instantdb = "instantdb"; + + /// + /// InterBase. + /// + public const string Interbase = "interbase"; + + /// + /// MariaDB. + /// + public const string Mariadb = "mariadb"; + + /// + /// Netezza. + /// + public const string Netezza = "netezza"; + + /// + /// Pervasive PSQL. + /// + public const string Pervasive = "pervasive"; + + /// + /// PointBase. + /// + public const string Pointbase = "pointbase"; + + /// + /// SQLite. + /// + public const string Sqlite = "sqlite"; + + /// + /// Sybase. + /// + public const string Sybase = "sybase"; + + /// + /// Teradata. + /// + public const string Teradata = "teradata"; + + /// + /// Vertica. + /// + public const string Vertica = "vertica"; + + /// + /// H2. + /// + public const string H2 = "h2"; + + /// + /// ColdFusion IMQ. + /// + public const string Coldfusion = "coldfusion"; + + /// + /// Apache Cassandra. + /// + public const string Cassandra = "cassandra"; + + /// + /// Apache HBase. + /// + public const string Hbase = "hbase"; + + /// + /// MongoDB. + /// + public const string Mongodb = "mongodb"; + + /// + /// Redis. + /// + public const string Redis = "redis"; + + /// + /// Couchbase. + /// + public const string Couchbase = "couchbase"; + + /// + /// CouchDB. + /// + public const string Couchdb = "couchdb"; + + /// + /// Microsoft Azure Cosmos DB. + /// + public const string Cosmosdb = "cosmosdb"; + + /// + /// Amazon DynamoDB. + /// + public const string Dynamodb = "dynamodb"; + + /// + /// Neo4j. + /// + public const string Neo4j = "neo4j"; + + /// + /// Apache Geode. + /// + public const string Geode = "geode"; + + /// + /// Elasticsearch. + /// + public const string Elasticsearch = "elasticsearch"; + + /// + /// Memcached. + /// + public const string Memcached = "memcached"; + + /// + /// CockroachDB. + /// + public const string Cockroachdb = "cockroachdb"; + } + + /// + /// The consistency level of the query. Based on consistency values from CQL. + /// + public static class DbCassandraConsistencyLevelValues + { + /// + /// all. + /// + public const string All = "all"; + + /// + /// each_quorum. + /// + public const string EachQuorum = "each_quorum"; + + /// + /// quorum. + /// + public const string Quorum = "quorum"; + + /// + /// local_quorum. + /// + public const string LocalQuorum = "local_quorum"; + + /// + /// one. + /// + public const string One = "one"; + + /// + /// two. + /// + public const string Two = "two"; + + /// + /// three. + /// + public const string Three = "three"; + + /// + /// local_one. + /// + public const string LocalOne = "local_one"; + + /// + /// any. + /// + public const string Any = "any"; + + /// + /// serial. + /// + public const string Serial = "serial"; + + /// + /// local_serial. + /// + public const string LocalSerial = "local_serial"; + } + + /// + /// Type of the trigger on which the function is executed. + /// + public static class FaasTriggerValues + { + /// + /// A response to some data source operation such as a database or filesystem read/write. + /// + public const string Datasource = "datasource"; + + /// + /// To provide an answer to an inbound HTTP request. + /// + public const string Http = "http"; + + /// + /// A function is set to be executed when messages are sent to a messaging system. + /// + public const string Pubsub = "pubsub"; + + /// + /// A function is scheduled to be executed regularly. + /// + public const string Timer = "timer"; + + /// + /// If none of the others apply. + /// + public const string Other = "other"; + } + + /// + /// Describes the type of the operation that was performed on the data. + /// + public static class FaasDocumentOperationValues + { + /// + /// When a new object is created. + /// + public const string Insert = "insert"; + + /// + /// When an object is modified. + /// + public const string Edit = "edit"; + + /// + /// When an object is deleted. + /// + public const string Delete = "delete"; + } + + /// + /// The cloud provider of the invoked function. + /// + public static class FaasInvokedProviderValues + { + /// + /// Alibaba Cloud. + /// + public const string AlibabaCloud = "alibaba_cloud"; + + /// + /// Amazon Web Services. + /// + public const string Aws = "aws"; + + /// + /// Microsoft Azure. + /// + public const string Azure = "azure"; + + /// + /// Google Cloud Platform. + /// + public const string Gcp = "gcp"; + } + + /// + /// Transport protocol used. See note below. + /// + public static class NetTransportValues + { + /// + /// ip_tcp. + /// + public const string IpTcp = "ip_tcp"; + + /// + /// ip_udp. + /// + public const string IpUdp = "ip_udp"; + + /// + /// Another IP-based protocol. + /// + public const string Ip = "ip"; + + /// + /// Unix Domain socket. See below. + /// + public const string Unix = "unix"; + + /// + /// Named or anonymous pipe. See note below. + /// + public const string Pipe = "pipe"; + + /// + /// In-process communication. + /// + public const string Inproc = "inproc"; + + /// + /// Something else (non IP-based). + /// + public const string Other = "other"; + } + + /// + /// The internet connection type currently being used by the host. + /// + public static class NetHostConnectionTypeValues + { + /// + /// wifi. + /// + public const string Wifi = "wifi"; + + /// + /// wired. + /// + public const string Wired = "wired"; + + /// + /// cell. + /// + public const string Cell = "cell"; + + /// + /// unavailable. + /// + public const string Unavailable = "unavailable"; + + /// + /// unknown. + /// + public const string Unknown = "unknown"; + } + + /// + /// This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection. + /// + public static class NetHostConnectionSubtypeValues + { + /// + /// GPRS. + /// + public const string Gprs = "gprs"; + + /// + /// EDGE. + /// + public const string Edge = "edge"; + + /// + /// UMTS. + /// + public const string Umts = "umts"; + + /// + /// CDMA. + /// + public const string Cdma = "cdma"; + + /// + /// EVDO Rel. 0. + /// + public const string Evdo0 = "evdo_0"; + + /// + /// EVDO Rev. A. + /// + public const string EvdoA = "evdo_a"; + + /// + /// CDMA2000 1XRTT. + /// + public const string Cdma20001xrtt = "cdma2000_1xrtt"; + + /// + /// HSDPA. + /// + public const string Hsdpa = "hsdpa"; + + /// + /// HSUPA. + /// + public const string Hsupa = "hsupa"; + + /// + /// HSPA. + /// + public const string Hspa = "hspa"; + + /// + /// IDEN. + /// + public const string Iden = "iden"; + + /// + /// EVDO Rev. B. + /// + public const string EvdoB = "evdo_b"; + + /// + /// LTE. + /// + public const string Lte = "lte"; + + /// + /// EHRPD. + /// + public const string Ehrpd = "ehrpd"; + + /// + /// HSPAP. + /// + public const string Hspap = "hspap"; + + /// + /// GSM. + /// + public const string Gsm = "gsm"; + + /// + /// TD-SCDMA. + /// + public const string TdScdma = "td_scdma"; + + /// + /// IWLAN. + /// + public const string Iwlan = "iwlan"; + + /// + /// 5G NR (New Radio). + /// + public const string Nr = "nr"; + + /// + /// 5G NRNSA (New Radio Non-Standalone). + /// + public const string Nrnsa = "nrnsa"; + + /// + /// LTE CA. + /// + public const string LteCa = "lte_ca"; + } + + /// + /// Kind of HTTP protocol used. + /// + public static class HttpFlavorValues + { + /// + /// HTTP 1.0. + /// + public const string Http10 = "1.0"; + + /// + /// HTTP 1.1. + /// + public const string Http11 = "1.1"; + + /// + /// HTTP 2. + /// + public const string Http20 = "2.0"; + + /// + /// SPDY protocol. + /// + public const string Spdy = "SPDY"; + + /// + /// QUIC protocol. + /// + public const string Quic = "QUIC"; + } + + /// + /// The kind of message destination. + /// + public static class MessagingDestinationKindValues + { + /// + /// A message sent to a queue. + /// + public const string Queue = "queue"; + + /// + /// A message sent to a topic. + /// + public const string Topic = "topic"; + } + + /// + /// A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case. + /// + public static class MessagingOperationValues + { + /// + /// receive. + /// + public const string Receive = "receive"; + + /// + /// process. + /// + public const string Process = "process"; + } + + /// + /// The numeric status code of the gRPC request. + /// + public static class RpcGrpcStatusCodeValues + { + /// + /// OK. + /// + public const int Ok = 0; + + /// + /// CANCELLED. + /// + public const int Cancelled = 1; + + /// + /// UNKNOWN. + /// + public const int Unknown = 2; + + /// + /// INVALID_ARGUMENT. + /// + public const int InvalidArgument = 3; + + /// + /// DEADLINE_EXCEEDED. + /// + public const int DeadlineExceeded = 4; + + /// + /// NOT_FOUND. + /// + public const int NotFound = 5; + + /// + /// ALREADY_EXISTS. + /// + public const int AlreadyExists = 6; + + /// + /// PERMISSION_DENIED. + /// + public const int PermissionDenied = 7; + + /// + /// RESOURCE_EXHAUSTED. + /// + public const int ResourceExhausted = 8; + + /// + /// FAILED_PRECONDITION. + /// + public const int FailedPrecondition = 9; + + /// + /// ABORTED. + /// + public const int Aborted = 10; + + /// + /// OUT_OF_RANGE. + /// + public const int OutOfRange = 11; + + /// + /// UNIMPLEMENTED. + /// + public const int Unimplemented = 12; + + /// + /// INTERNAL. + /// + public const int Internal = 13; + + /// + /// UNAVAILABLE. + /// + public const int Unavailable = 14; + + /// + /// DATA_LOSS. + /// + public const int DataLoss = 15; + + /// + /// UNAUTHENTICATED. + /// + public const int Unauthenticated = 16; + } + + /// + /// Whether this is a received or sent message. + /// + public static class MessageTypeValues + { + /// + /// sent. + /// + public const string Sent = "SENT"; + + /// + /// received. + /// + public const string Received = "RECEIVED"; + } + } +} diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore new file mode 100644 index 00000000000..a93b221beb5 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore @@ -0,0 +1 @@ +opentelemetry-specification/ diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 new file mode 100644 index 00000000000..47a051a88de --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -0,0 +1,41 @@ + +$SCRIPT_DIR=$PSScriptRoot +$ROOT_DIR="${SCRIPT_DIR}/../../" + +# freeze the spec & generator tools versions to make SemanticAttributes generation reproducible +$SPEC_VERSION="v1.7.0" +$GENERATOR_VERSION="0.8.0" + +Set-Location $SCRIPT_DIR + +rm -rf opentelemetry-specification || true +mkdir opentelemetry-specification +Set-Location opentelemetry-specification + +git init +git remote add origin https://github.com/open-telemetry/opentelemetry-specification.git +git fetch origin $SPEC_VERSION +git reset --hard FETCH_HEAD +Set-Location ${SCRIPT_DIR} + +docker run --rm ` + -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/trace:/source ` + -v ${SCRIPT_DIR}/templates:/templates ` + -v ${ROOT_DIR}/Trace:/output ` + otel/semconvgen:$GENERATOR_VERSION ` + -f /source code ` + --template /templates/SemanticConventions.cs.j2 ` + --output /output/TraceSemanticConventions.cs ` + -D class=TraceSemanticConventions ` + -D pkg=OpenTelemetry.Trace + +docker run --rm ` + -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/resource:/source ` + -v ${SCRIPT_DIR}/templates:/templates ` + -v ${ROOT_DIR}/Resource:/output ` + otel/semconvgen:$GENERATOR_VERSION ` + -f /source code ` + --template /templates/SemanticConventions.cs.j2 ` + --output /output/ResourceSemanticConventions.cs ` + -D class=ResourceSemanticConventions ` + -D pkg=OpenTelemetry.Resources diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh new file mode 100755 index 00000000000..f3cedfc04d0 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ROOT_DIR="${SCRIPT_DIR}/../../" + +# freeze the spec & generator tools versions to make SemanticAttributes generation reproducible +SPEC_VERSION=v1.7.0 +SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION +GENERATOR_VERSION=0.8.0 + +cd ${SCRIPT_DIR} + +rm -rf opentelemetry-specification || true +mkdir opentelemetry-specification +cd opentelemetry-specification + +git init +git remote add origin https://github.com/open-telemetry/opentelemetry-specification.git +git fetch origin "$SPEC_VERSION" +git reset --hard FETCH_HEAD +cd ${SCRIPT_DIR} + +docker run --rm \ + -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/trace:/source \ + -v ${SCRIPT_DIR}/templates:/templates \ + -v ${ROOT_DIR}/Trace:/output \ + otel/semconvgen:$GENERATOR_VERSION \ + -f /source code \ + --template /templates/SemanticConventions.cs.j2 \ + --output /output/TraceSemanticConventions.cs \ + -Dclass=TraceSemanticConventions \ + -DschemaUrl=$SCHEMA_URL \ + -Dpkg=OpenTelemetry.Trace + +docker run --rm \ + -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/resource:/source \ + -v ${SCRIPT_DIR}/templates:/templates \ + -v ${ROOT_DIR}/Resource:/output \ + otel/semconvgen:$GENERATOR_VERSION \ + -f /source code \ + --template /templates/SemanticConventions.cs.j2 \ + --output /output/ResourceSemanticConventions.cs \ + -Dclass=ResourceSemanticConventions \ + -DschemaUrl=$SCHEMA_URL \ + -Dpkg=OpenTelemetry.Resources diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 new file mode 100644 index 00000000000..060ec84fb17 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -0,0 +1,94 @@ +{%- macro print_value(type, value) -%} + {{ "\"" if type == "string"}}{{value}}{{ "\"" if type == "string"}} +{%- endmacro %} + +{%- macro formatRemarks(text) -%} +{%- set notes = ' '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} +{{notes}} +{%- endmacro -%} + +{%- macro formatXmlDoc(text) -%} +{%- set escaped = text.encode('ascii', 'xmlcharrefreplace').decode() -%} + {%- if not escaped.endswith('.')-%} + {{escaped + '.'}} + {%- else -%} + {{escaped}} + {%- endif -%} +{%- endmacro -%} + +// +// 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. +// + +using System; + +// This file has been auto generated from buildscripts/semantic-convention{{template}} +namespace {{pkg | trim}} +{ + /// + /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. + /// . + /// + /// + /// Schema and specification version: {{schemaUrl}}. + /// + public static class {{class}} + { +{%- for attribute in attributes if attribute.is_local and not attribute.ref %} + /// + /// {{formatXmlDoc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// +{%- if attribute.note %} + /// + /// {{formatRemarks(attribute.note)}} + /// +{%- endif %} +{%- if attribute.deprecated %} + [Obsolete("{{attribute.deprecated | to_doc_brief}}")] +{%- endif %} + public const string Attribute{{attribute.fqn | to_camelcase(True)}} = "{{attribute.fqn}}"; +{% endfor -%} + +{%- if class == "TraceSemanticConventions" %} + // Manually defined and not YET in the YAML +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + public const string AttributeDbInstance = "db.instance"; + + public const string AttributeExceptionEventName = "exception"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +{%- endif -%} +{%- for attribute in attributes if attribute.is_local and not attribute.ref %} +{%- if attribute.is_enum %} +{%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} +{%- set type = attribute.attr_type.enum_type %} + {%- if not loop.first -%} {{"\n"}} {%- endif %} + /// + /// {{formatXmlDoc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// + public static class {{class_name}} + { + {%- for member in attribute.attr_type.members %} + /// + /// {{formatXmlDoc(member.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// + public const {{ type }} {{ member.member_id | to_camelcase(True) }} = {{ print_value(type, member.value) }}; + {%- if not loop.last -%} {{"\n"}} {%- endif %} + {%- endfor %} + } +{%- endif -%} +{%- endfor %} + } +} + From 03ffc5d6f7df0e0d51d7e8310af2689de6d30aca Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 20 Oct 2021 15:27:23 +0200 Subject: [PATCH 02/21] Add missing PublicAPI entries Added instructions on how to update the PublicAPI files using the dotnet-format global tool. --- .../.publicApi/net461/PublicAPI.Unshipped.txt | 46 +++++++++++++++++++ .../netstandard2.0/PublicAPI.Unshipped.txt | 46 +++++++++++++++++++ .../OpenTelemetry.SemanticConventions.csproj | 4 -- .../README.md | 11 +++++ 4 files changed, 103 insertions(+), 4 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt index 85c6b8bc744..cc70a80e5fe 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt @@ -81,6 +81,8 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineName const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineVersion = "webengine.version" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Ec2 = "ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudEcs = "alibaba_cloud_ecs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudFc = "alibaba_cloud_fc" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string @@ -96,6 +98,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.Gc const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string @@ -210,6 +213,11 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "ht const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUserAgent = "http.user_agent" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageCompressedSize = "message.compressed_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageId = "message.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageType = "message.type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageUncompressedSize = "message.uncompressed_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConsumerId = "messaging.consumer_id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConversationId = "messaging.conversation_id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestination = "messaging.destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestinationKind = "messaging.destination_kind" -> string @@ -228,6 +236,12 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRou const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierIcc = "net.host.carrier.icc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMcc = "net.host.carrier.mcc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMnc = "net.host.carrier.mnc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierName = "net.host.carrier.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionSubtype = "net.host.connection.subtype" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionType = "net.host.connection.type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string @@ -307,6 +321,7 @@ const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Vertica = "ver const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Delete = "delete" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Edit = "edit" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Insert = "insert" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string @@ -320,10 +335,38 @@ const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1. const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Received = "RECEIVED" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Sent = "SENT" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Queue = "queue" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma = "cdma" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma20001xrtt = "cdma2000_1xrtt" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Edge = "edge" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Ehrpd = "ehrpd" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Evdo0 = "evdo_0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.EvdoA = "evdo_a" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.EvdoB = "evdo_b" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Gprs = "gprs" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Gsm = "gsm" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hsdpa = "hsdpa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hspa = "hspa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hspap = "hspap" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hsupa = "hsupa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Iden = "iden" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Iwlan = "iwlan" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Lte = "lte" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.LteCa = "lte_ca" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Nr = "nr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Nrnsa = "nrnsa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.TdScdma = "td_scdma" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Umts = "umts" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Cell = "cell" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unavailable = "unavailable" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unknown = "unknown" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wifi = "wifi" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wired = "wired" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string @@ -362,7 +405,10 @@ OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues +OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues +OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index 85c6b8bc744..cc70a80e5fe 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -81,6 +81,8 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineName const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeWebengineVersion = "webengine.version" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Ec2 = "ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudEcs = "alibaba_cloud_ecs" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudFc = "alibaba_cloud_fc" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string @@ -96,6 +98,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.Gc const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string @@ -210,6 +213,11 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "ht const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUserAgent = "http.user_agent" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageCompressedSize = "message.compressed_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageId = "message.id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageType = "message.type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessageUncompressedSize = "message.uncompressed_size" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConsumerId = "messaging.consumer_id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingConversationId = "messaging.conversation_id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestination = "messaging.destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingDestinationKind = "messaging.destination_kind" -> string @@ -228,6 +236,12 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRou const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierIcc = "net.host.carrier.icc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMcc = "net.host.carrier.mcc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMnc = "net.host.carrier.mnc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierName = "net.host.carrier.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionSubtype = "net.host.connection.subtype" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionType = "net.host.connection.type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string @@ -307,6 +321,7 @@ const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Vertica = "ver const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Delete = "delete" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Edit = "edit" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues.Insert = "insert" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string @@ -320,10 +335,38 @@ const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1. const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Received = "RECEIVED" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Sent = "SENT" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Queue = "queue" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma = "cdma" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma20001xrtt = "cdma2000_1xrtt" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Edge = "edge" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Ehrpd = "ehrpd" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Evdo0 = "evdo_0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.EvdoA = "evdo_a" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.EvdoB = "evdo_b" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Gprs = "gprs" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Gsm = "gsm" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hsdpa = "hsdpa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hspa = "hspa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hspap = "hspap" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Hsupa = "hsupa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Iden = "iden" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Iwlan = "iwlan" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Lte = "lte" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.LteCa = "lte_ca" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Nr = "nr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Nrnsa = "nrnsa" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.TdScdma = "td_scdma" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Umts = "umts" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Cell = "cell" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unavailable = "unavailable" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unknown = "unknown" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wifi = "wifi" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wired = "wired" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string @@ -362,7 +405,10 @@ OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues +OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues +OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj index 012dbcfaf05..c7718acb0f8 100644 --- a/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj +++ b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj @@ -6,8 +6,4 @@ $(PackageTags);semantic-conventions - - $(NoWarn),IDE0005 - - diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md index 97a633ebc00..bb1d076efd3 100644 --- a/src/OpenTelemetry.SemanticConventions/README.md +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -28,6 +28,17 @@ Or, with PowerShell: ./scripts/semantic-convetion/generate.ps1 ``` +## Updating PublicAPI files + +If new items are added, it is important that the PublicAPI files are updated. +We can use the [dotnet-format](https://github.com/dotnet/format) global tool to update the files and fix the `RS0016` warnings: + +```shell +$ OpenTelemetry.SemanticConventions: dotnet format -a warn +``` + + ## References * [OpenTelemetry Project](https://opentelemetry.io/) +* [Build tools](https://github.com/open-telemetry/build-tools) From 00dfd83463220dc4d40ab39f5aa603b7ad0d2be5 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 20 Oct 2021 16:00:45 +0200 Subject: [PATCH 03/21] Add auto-generated to template To avoid having StyleCop warnings for the auto-generated files. --- .../scripts/semantic-convetion/generate.ps1 | 7 ++++++- .../semantic-convetion/templates/SemanticConventions.cs.j2 | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 index 47a051a88de..79fc2ab0b5e 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -4,11 +4,12 @@ $ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible $SPEC_VERSION="v1.7.0" +$SCHEMA_URL="https://opentelemetry.io/schemas/$SPEC_VERSION" $GENERATOR_VERSION="0.8.0" Set-Location $SCRIPT_DIR -rm -rf opentelemetry-specification || true +rm -r -fo opentelemetry-specification mkdir opentelemetry-specification Set-Location opentelemetry-specification @@ -27,6 +28,7 @@ docker run --rm ` --template /templates/SemanticConventions.cs.j2 ` --output /output/TraceSemanticConventions.cs ` -D class=TraceSemanticConventions ` + -D schemaUrl=$SCHEMA_URL ` -D pkg=OpenTelemetry.Trace docker run --rm ` @@ -38,4 +40,7 @@ docker run --rm ` --template /templates/SemanticConventions.cs.j2 ` --output /output/ResourceSemanticConventions.cs ` -D class=ResourceSemanticConventions ` + -D schemaUrl=$SCHEMA_URL ` -D pkg=OpenTelemetry.Resources + +cd ${ROOT_DIR} diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 060ec84fb17..5a0e55a98b3 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -16,6 +16,8 @@ {%- endif -%} {%- endmacro -%} +// (Turns off StyleCop analysis in this file.) + // // Copyright The OpenTelemetry Authors // From 3e0f044b4ede3d1d1dbf9b65523313062b2aa3cb Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 20 Oct 2021 16:13:30 +0200 Subject: [PATCH 04/21] Update files Now with the auto-generated header --- .../Resource/ResourceSemanticConventions.cs | 2 ++ .../Trace/TraceSemanticConventions.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 02ecef86fcf..3a70323ce4d 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -1,3 +1,5 @@ +// (Turns off StyleCop analysis in this file.) + // // Copyright The OpenTelemetry Authors // diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index f94caa00c2a..78c68496c0b 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -1,3 +1,5 @@ +// (Turns off StyleCop analysis in this file.) + // // Copyright The OpenTelemetry Authors // From 6298fe06ce75b85d40262700ee90843a127fb01b Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 20 Oct 2021 17:41:00 +0200 Subject: [PATCH 05/21] Fix resource semconv specification URL --- .../Resource/ResourceSemanticConventions.cs | 2 +- .../semantic-convetion/templates/SemanticConventions.cs.j2 | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 3a70323ce4d..03c54f97060 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -23,7 +23,7 @@ namespace OpenTelemetry.Resources { /// /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. - /// . + /// . /// /// /// Schema and specification version: https://opentelemetry.io/schemas/v1.7.0. diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 5a0e55a98b3..65c6a6833db 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -41,7 +41,12 @@ namespace {{pkg | trim}} { /// /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. + {%- if class == "TraceSemanticConventions" %} /// . + {%- endif %} + {%- if class == "ResourceSemanticConventions" %} + /// . + {%- endif %} /// /// /// Schema and specification version: {{schemaUrl}}. From 9fe560785bf230a754d1c9d81b68f8b7d8194733 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 20 Oct 2021 17:47:54 +0200 Subject: [PATCH 06/21] Fix markdown issues --- src/OpenTelemetry.SemanticConventions/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md index bb1d076efd3..b15f0c71d72 100644 --- a/src/OpenTelemetry.SemanticConventions/README.md +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -30,14 +30,14 @@ Or, with PowerShell: ## Updating PublicAPI files -If new items are added, it is important that the PublicAPI files are updated. -We can use the [dotnet-format](https://github.com/dotnet/format) global tool to update the files and fix the `RS0016` warnings: +If new items are added, it is important that the PublicAPI files are updated. +We can use the [dotnet-format](https://github.com/dotnet/format) global tool +to update the files and fix the `RS0016` warnings: ```shell -$ OpenTelemetry.SemanticConventions: dotnet format -a warn +dotnet format -a warn ``` - ## References * [OpenTelemetry Project](https://opentelemetry.io/) From 3abccc513fdc77f3a8aedaea5685d6410ada1681 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Fri, 22 Oct 2021 16:50:02 +0200 Subject: [PATCH 07/21] PR fixes and using the dotnet format tool Taking advantage of line breaks in long and leveraging dotnet format tool to fix indentation afterwards. --- .../.config/dotnet-tools.json | 12 ++++++ .../scripts/semantic-convetion/generate.ps1 | 11 +++++- .../scripts/semantic-convetion/generate.sh | 7 ++++ .../templates/SemanticConventions.cs.j2 | 37 +++++++++---------- 4 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json diff --git a/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json b/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json new file mode 100644 index 00000000000..d8d5a3bc721 --- /dev/null +++ b/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-format": { + "version": "5.1.250801", + "commands": [ + "dotnet-format" + ] + } + } +} \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 index 79fc2ab0b5e..9c08171ecf9 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -7,9 +7,13 @@ $SPEC_VERSION="v1.7.0" $SCHEMA_URL="https://opentelemetry.io/schemas/$SPEC_VERSION" $GENERATOR_VERSION="0.8.0" +# install the dotnet-format tool +Write-Host "Restoring dotnet-format tool" +dotnet tool restore + Set-Location $SCRIPT_DIR -rm -r -fo opentelemetry-specification +Remove-Item -r -fo opentelemetry-specification mkdir opentelemetry-specification Set-Location opentelemetry-specification @@ -43,4 +47,7 @@ docker run --rm ` -D schemaUrl=$SCHEMA_URL ` -D pkg=OpenTelemetry.Resources -cd ${ROOT_DIR} +Set-Location ${ROOT_DIR} + +Write-Host "Running dotnet-format on the generated files" +dotnet format -w -s warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index f3cedfc04d0..84158bc5cea 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -8,6 +8,10 @@ SPEC_VERSION=v1.7.0 SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION GENERATOR_VERSION=0.8.0 +# install the dotnet-format tool +echo "Restoring dotnet-format tool" +dotnet tool restore + cd ${SCRIPT_DIR} rm -rf opentelemetry-specification || true @@ -43,3 +47,6 @@ docker run --rm \ -Dclass=ResourceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ -Dpkg=OpenTelemetry.Resources + +echo "Running dotnet-format on the generated files" +dotnet format -w -s warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 65c6a6833db..dfdeee83e0f 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -2,12 +2,12 @@ {{ "\"" if type == "string"}}{{value}}{{ "\"" if type == "string"}} {%- endmacro %} -{%- macro formatRemarks(text) -%} -{%- set notes = ' '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} +{%- macro format_remarks(text) -%} +{%- set notes = '\n /// '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} {{notes}} {%- endmacro -%} -{%- macro formatXmlDoc(text) -%} +{%- macro format_xml_doc(text) -%} {%- set escaped = text.encode('ascii', 'xmlcharrefreplace').decode() -%} {%- if not escaped.endswith('.')-%} {{escaped + '.'}} @@ -16,8 +16,6 @@ {%- endif -%} {%- endmacro -%} -// (Turns off StyleCop analysis in this file.) - // // Copyright The OpenTelemetry Authors // @@ -43,8 +41,7 @@ namespace {{pkg | trim}} /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. {%- if class == "TraceSemanticConventions" %} /// . - {%- endif %} - {%- if class == "ResourceSemanticConventions" %} + {%- elif class == "ResourceSemanticConventions" %} /// . {%- endif %} /// @@ -55,16 +52,16 @@ namespace {{pkg | trim}} { {%- for attribute in attributes if attribute.is_local and not attribute.ref %} /// - /// {{formatXmlDoc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// {{format_xml_doc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// -{%- if attribute.note %} + {%- if attribute.note %} /// - /// {{formatRemarks(attribute.note)}} + /// {{format_remarks(attribute.note)}} /// -{%- endif %} -{%- if attribute.deprecated %} + {%- endif %} + {%- if attribute.deprecated %} [Obsolete("{{attribute.deprecated | to_doc_brief}}")] -{%- endif %} + {%- endif %} public const string Attribute{{attribute.fqn | to_camelcase(True)}} = "{{attribute.fqn}}"; {% endfor -%} @@ -77,24 +74,24 @@ namespace {{pkg | trim}} #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member {%- endif -%} {%- for attribute in attributes if attribute.is_local and not attribute.ref %} -{%- if attribute.is_enum %} -{%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} -{%- set type = attribute.attr_type.enum_type %} + {%- if attribute.is_enum %} + {%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} + {%- set type = attribute.attr_type.enum_type %} {%- if not loop.first -%} {{"\n"}} {%- endif %} /// - /// {{formatXmlDoc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// {{format_xml_doc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// public static class {{class_name}} { {%- for member in attribute.attr_type.members %} /// - /// {{formatXmlDoc(member.brief | render_markdown(code="{0}", paragraph="{0}"))}} + /// {{format_xml_doc(member.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// public const {{ type }} {{ member.member_id | to_camelcase(True) }} = {{ print_value(type, member.value) }}; - {%- if not loop.last -%} {{"\n"}} {%- endif %} + {%- if not loop.last -%} {{"\n"}} {%- endif %} {%- endfor %} } -{%- endif -%} + {%- endif -%} {%- endfor %} } } From 546fc1967848f68dea29df380434e147c3c1a80c Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Fri, 22 Oct 2021 17:35:59 +0200 Subject: [PATCH 08/21] Fix trailing space in remarks For some reason dotnet tool -w does not remove it. Needed to use the -a for analysers but in a separate command. --- .../Resource/ResourceSemanticConventions.cs | 28 +++++++++++++--- .../Trace/TraceSemanticConventions.cs | 32 ++++++++++++++++--- .../scripts/semantic-convetion/generate.ps1 | 1 + .../scripts/semantic-convetion/generate.sh | 1 + .../templates/SemanticConventions.cs.j2 | 2 +- 5 files changed, 53 insertions(+), 11 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 03c54f97060..0e49ecaef74 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -1,5 +1,3 @@ -// (Turns off StyleCop analysis in this file.) - // // Copyright The OpenTelemetry Authors // @@ -16,7 +14,6 @@ // limitations under the License. // -using System; // This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 namespace OpenTelemetry.Resources @@ -191,7 +188,20 @@ public static class ResourceSemanticConventions /// The unique ID of the single function that this runtime instance executes. /// /// - /// Depending on the cloud provider, use: * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Take care not to use the "invoked ARN" directly but replace any [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple different aliases. * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id). On some providers, it may not be possible to determine the full ID at startup, which is why this field cannot be made required. For example, on AWS the account ID part of the ARN is not available without calling another AWS API which may be deemed too slow for a short-running lambda function. As an alternative, consider setting `faas.id` as a span attribute instead. + /// Depending on the cloud provider, use: + /// + /// * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + /// Take care not to use the "invoked ARN" directly but replace any + /// [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple + /// different aliases. + /// * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) + /// * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id). + /// + /// On some providers, it may not be possible to determine the full ID at startup, + /// which is why this field cannot be made required. For example, on AWS the account ID + /// part of the ARN is not available without calling another AWS API + /// which may be deemed too slow for a short-running lambda function. + /// As an alternative, consider setting `faas.id` as a span attribute instead. /// public const string AttributeFaasId = "faas.id"; @@ -199,7 +209,15 @@ public static class ResourceSemanticConventions /// The immutable version of the function being executed. /// /// - /// Depending on the cloud provider and platform, use: * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) (an integer represented as a decimal string). * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions) (i.e., the function name plus the revision suffix). * **Google Cloud Functions:** The value of the [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). * **Azure Functions:** Not applicable. Do not set this attribute. + /// Depending on the cloud provider and platform, use: + /// + /// * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) + /// (an integer represented as a decimal string). + /// * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions) + /// (i.e., the function name plus the revision suffix). + /// * **Google Cloud Functions:** The value of the + /// [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). + /// * **Azure Functions:** Not applicable. Do not set this attribute. /// public const string AttributeFaasVersion = "faas.version"; diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index 78c68496c0b..33ff349e340 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -1,5 +1,3 @@ -// (Turns off StyleCop analysis in this file.) - // // Copyright The OpenTelemetry Authors // @@ -16,7 +14,6 @@ // limitations under the License. // -using System; // This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 namespace OpenTelemetry.Trace @@ -175,7 +172,22 @@ public static class TraceSemanticConventions /// SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span. /// /// - /// An exception is considered to have escaped (or left) the scope of a span, if that span is ended while the exception is still logically "in flight". This may be actually "in flight" in some languages (e.g. if the exception is passed to a Context manager's `__exit__` method in Python) but will usually be caught at the point of recording the exception in most languages. It is usually not possible to determine at the point where an exception is thrown whether it will escape the scope of a span. However, it is trivial to know that an exception will escape, if one checks for an active exception just before ending the span, as done in the [example above](#exception-end-example). It follows that an exception may still escape the scope of the span even if the `exception.escaped` attribute was not set or set to false, since the event might have been recorded at a time where it was not clear whether the exception will escape. + /// An exception is considered to have escaped (or left) the scope of a span, + /// if that span is ended while the exception is still logically "in flight". + /// This may be actually "in flight" in some languages (e.g. if the exception + /// is passed to a Context manager's `__exit__` method in Python) but will + /// usually be caught at the point of recording the exception in most languages. + /// + /// It is usually not possible to determine at the point where an exception is thrown + /// whether it will escape the scope of a span. + /// However, it is trivial to know that an exception + /// will escape, if one checks for an active exception just before ending the span, + /// as done in the [example above](#exception-end-example). + /// + /// It follows that an exception may still escape the scope of the span + /// even if the `exception.escaped` attribute was not set or set to false, + /// since the event might have been recorded at a time where it was not + /// clear whether the exception will escape. /// public const string AttributeExceptionEscaped = "exception.escaped"; @@ -449,7 +461,17 @@ public static class TraceSemanticConventions /// The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For). /// /// - /// This is not necessarily the same as `net.peer.ip`, which would identify the network-level peer, which may be a proxy. This attribute should be set when a source of information different from the one used for `net.peer.ip`, is available even if that other source just confirms the same value as `net.peer.ip`. Rationale: For `net.peer.ip`, one typically does not know if it comes from a proxy, reverse proxy, or the actual client. Setting `http.client_ip` when it's the same as `net.peer.ip` means that one is at least somewhat confident that the address is not that of the closest proxy. + /// This is not necessarily the same as `net.peer.ip`, which would + /// identify the network-level peer, which may be a proxy. + /// + /// This attribute should be set when a source of information different + /// from the one used for `net.peer.ip`, is available even if that other + /// source just confirms the same value as `net.peer.ip`. + /// Rationale: For `net.peer.ip`, one typically does not know if it + /// comes from a proxy, reverse proxy, or the actual client. Setting + /// `http.client_ip` when it's the same as `net.peer.ip` means that + /// one is at least somewhat confident that the address is not that of + /// the closest proxy. /// public const string AttributeHttpClientIp = "http.client_ip"; diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 index 9c08171ecf9..dced94e409c 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -50,4 +50,5 @@ docker run --rm ` Set-Location ${ROOT_DIR} Write-Host "Running dotnet-format on the generated files" +dotnet format -a warn dotnet format -w -s warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index 84158bc5cea..ef684921588 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -49,4 +49,5 @@ docker run --rm \ -Dpkg=OpenTelemetry.Resources echo "Running dotnet-format on the generated files" +dotnet format -a warn dotnet format -w -s warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index dfdeee83e0f..aa1073fff23 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -3,7 +3,7 @@ {%- endmacro %} {%- macro format_remarks(text) -%} -{%- set notes = '\n /// '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} +{%- set notes = '\n ///'.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} {{notes}} {%- endmacro -%} From 9f77cf4b731385d082d59f4955b6caac4fbcc7a8 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Tue, 26 Oct 2021 22:29:54 +0200 Subject: [PATCH 09/21] Adapt bash script and README Now that dotnet format is running. Also now public api files are updated automatically. --- src/OpenTelemetry.SemanticConventions/README.md | 16 +++++++++------- .../scripts/semantic-convetion/generate.sh | 2 ++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md index b15f0c71d72..1d0ed2e9afc 100644 --- a/src/OpenTelemetry.SemanticConventions/README.md +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -28,15 +28,17 @@ Or, with PowerShell: ./scripts/semantic-convetion/generate.ps1 ``` -## Updating PublicAPI files +### dotnet-format -If new items are added, it is important that the PublicAPI files are updated. -We can use the [dotnet-format](https://github.com/dotnet/format) global tool -to update the files and fix the `RS0016` warnings: +The script installs and runs the [dotnet format](https://github.com/dotnet/format) +tool after the `.cs` files are generated. It will apply fixes for whitespaces, +code style and analyzer warnings. -```shell -dotnet format -a warn -``` +### Updating PublicAPI files + +Because the script runs `dotnet-format`, the PublicAPI files **will be +updated automatically**, as the tool fixes warnings for analyzers +([RS0016](https://github.com/dotnet/roslyn-analyzers/issues/3229)). ## References diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index ef684921588..ae75b8f5bc8 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -47,6 +47,8 @@ docker run --rm \ -Dclass=ResourceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ -Dpkg=OpenTelemetry.Resources + +cd ${ROOT_DIR} echo "Running dotnet-format on the generated files" dotnet format -a warn From 6ea49efa068497c961ce1d19fa024e7ff80993a3 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Fri, 5 Nov 2021 16:56:10 +0100 Subject: [PATCH 10/21] Add support for prefixes and event name --- .../Resource/ResourceSemanticConventions.cs | 156 ++++++++++++++++ .../Trace/TraceSemanticConventions.cs | 176 +++++++++++++++++- .../templates/SemanticConventions.cs.j2 | 39 +++- 3 files changed, 356 insertions(+), 15 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 0e49ecaef74..2c229803015 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -501,6 +501,162 @@ public static class ResourceSemanticConventions /// public const string AttributeWebengineDescription = "webengine.description"; + /// + /// Prefix for 'cloud'. + /// + /// span + public static readonly string PrefixCloud = "cloud"; + + /// + /// Prefix for 'aws.ecs'. + /// + /// span + public static readonly string PrefixAwsEcs = "aws.ecs"; + + /// + /// Prefix for 'aws.eks'. + /// + /// span + public static readonly string PrefixAwsEks = "aws.eks"; + + /// + /// Prefix for 'aws.log'. + /// + /// span + public static readonly string PrefixAwsLog = "aws.log"; + + /// + /// Prefix for 'container'. + /// + /// span + public static readonly string PrefixContainer = "container"; + + /// + /// Prefix for 'deployment'. + /// + /// span + public static readonly string PrefixDeployment = "deployment"; + + /// + /// Prefix for 'device'. + /// + /// span + public static readonly string PrefixDevice = "device"; + + /// + /// Prefix for 'faas_resource'. + /// + /// span + public static readonly string PrefixFaasResource = "faas"; + + /// + /// Prefix for 'host'. + /// + /// span + public static readonly string PrefixHost = "host"; + + /// + /// Prefix for 'k8s.cluster'. + /// + /// span + public static readonly string PrefixK8sCluster = "k8s.cluster"; + + /// + /// Prefix for 'k8s.node'. + /// + /// span + public static readonly string PrefixK8sNode = "k8s.node"; + + /// + /// Prefix for 'k8s.namespace'. + /// + /// span + public static readonly string PrefixK8sNamespace = "k8s.namespace"; + + /// + /// Prefix for 'k8s.pod'. + /// + /// span + public static readonly string PrefixK8sPod = "k8s.pod"; + + /// + /// Prefix for 'k8s.container'. + /// + /// span + public static readonly string PrefixK8sContainer = "k8s.container"; + + /// + /// Prefix for 'k8s.replicaset'. + /// + /// span + public static readonly string PrefixK8sReplicaset = "k8s.replicaset"; + + /// + /// Prefix for 'k8s.deployment'. + /// + /// span + public static readonly string PrefixK8sDeployment = "k8s.deployment"; + + /// + /// Prefix for 'k8s.statefulset'. + /// + /// span + public static readonly string PrefixK8sStatefulset = "k8s.statefulset"; + + /// + /// Prefix for 'k8s.daemonset'. + /// + /// span + public static readonly string PrefixK8sDaemonset = "k8s.daemonset"; + + /// + /// Prefix for 'k8s.job'. + /// + /// span + public static readonly string PrefixK8sJob = "k8s.job"; + + /// + /// Prefix for 'k8s.cronjob'. + /// + /// span + public static readonly string PrefixK8sCronjob = "k8s.cronjob"; + + /// + /// Prefix for 'os'. + /// + /// span + public static readonly string PrefixOs = "os"; + + /// + /// Prefix for 'process'. + /// + /// span + public static readonly string PrefixProcess = "process"; + + /// + /// Prefix for 'process.runtime'. + /// + /// span + public static readonly string PrefixProcessRuntime = "process.runtime"; + + /// + /// Prefix for 'service'. + /// + /// span + public static readonly string PrefixService = "service"; + + /// + /// Prefix for 'telemetry'. + /// + /// span + public static readonly string PrefixTelemetry = "telemetry"; + + /// + /// Prefix for 'webengine_resource'. + /// + /// span + public static readonly string PrefixWebengineResource = "webengine"; + /// /// Name of the cloud provider. /// diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index 33ff349e340..3f30ce98e7d 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -27,6 +27,11 @@ namespace OpenTelemetry.Trace /// public static class TraceSemanticConventions { + /// + /// Attribute for db.instance. + /// + public const string AttributeDbInstance = "db.instance"; + /// /// The full invoked ARN as provided on the Context passed to the function (Lambda-Runtime-Invoked-Function-Arn header on the /runtime/invocation/next applicable). /// @@ -752,12 +757,173 @@ public static class TraceSemanticConventions /// public const string AttributeMessageUncompressedSize = "message.uncompressed_size"; - // Manually defined and not YET in the YAML -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - public const string AttributeDbInstance = "db.instance"; + /// + /// Prefix for 'aws.lambda'. + /// + /// span + public static readonly string PrefixAwsLambda = "aws.lambda"; + + /// + /// Prefix for 'db'. + /// + /// span + public static readonly string PrefixDb = "db"; + + /// + /// Prefix for 'db.mssql'. + /// + /// span + public static readonly string PrefixDbMssql = "db.mssql"; + + /// + /// Prefix for 'db.cassandra'. + /// + /// span + public static readonly string PrefixDbCassandra = "db.cassandra"; + + /// + /// Prefix for 'db.hbase'. + /// + /// span + public static readonly string PrefixDbHbase = "db.hbase"; + + /// + /// Prefix for 'db.redis'. + /// + /// span + public static readonly string PrefixDbRedis = "db.redis"; - public const string AttributeExceptionEventName = "exception"; -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member + /// + /// Prefix for 'db.mongodb'. + /// + /// span + public static readonly string PrefixDbMongodb = "db.mongodb"; + + /// + /// Prefix for 'db.sql'. + /// + /// span + public static readonly string PrefixDbSql = "db.sql"; + + /// + /// Prefix for 'exception'. + /// + /// event + public static readonly string PrefixException = "exception"; + + /// + /// Prefix for 'faas_span'. + /// + /// span + public static readonly string PrefixFaasSpan = "faas"; + + /// + /// Prefix for 'faas_span.datasource'. + /// + /// span + public static readonly string PrefixFaasSpanDatasource = "faas.document"; + + /// + /// Prefix for 'network'. + /// + /// span + public static readonly string PrefixNetwork = "net"; + + /// + /// Prefix for 'peer'. + /// + /// span + public static readonly string PrefixPeer = "peer"; + + /// + /// Prefix for 'identity'. + /// + /// span + public static readonly string PrefixIdentity = "enduser"; + + /// + /// Prefix for 'thread'. + /// + /// span + public static readonly string PrefixThread = "thread"; + + /// + /// Prefix for 'code'. + /// + /// span + public static readonly string PrefixCode = "code"; + + /// + /// Prefix for 'http'. + /// + /// span + public static readonly string PrefixHttp = "http"; + + /// + /// Prefix for 'aws'. + /// + /// span + public static readonly string PrefixAws = "aws"; + + /// + /// Prefix for 'dynamodb.shared'. + /// + /// span + public static readonly string PrefixDynamodbShared = "aws.dynamodb"; + + /// + /// Prefix for 'messaging'. + /// + /// span + public static readonly string PrefixMessaging = "messaging"; + + /// + /// Prefix for 'messaging.rabbitmq'. + /// + /// span + public static readonly string PrefixMessagingRabbitmq = "messaging.rabbitmq"; + + /// + /// Prefix for 'messaging.kafka'. + /// + /// span + public static readonly string PrefixMessagingKafka = "messaging.kafka"; + + /// + /// Prefix for 'rpc'. + /// + /// span + public static readonly string PrefixRpc = "rpc"; + + /// + /// Prefix for 'rpc.grpc'. + /// + /// span + public static readonly string PrefixRpcGrpc = "rpc.grpc"; + + /// + /// Prefix for 'rpc.jsonrpc'. + /// + /// span + public static readonly string PrefixRpcJsonrpc = "rpc.jsonrpc"; + + /// + /// Prefix for 'rpc.message'. + /// + /// event + public static readonly string PrefixRpcMessage = "message"; + + /// + /// Event name for 'exception'. + /// + /// event + public static readonly string EventException = "exception"; + + /// + /// Event name for 'rpc.message'. + /// + /// event + public static readonly string EventRpcMessage = "message"; /// /// An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers. diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index aa1073fff23..9667349e770 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -50,6 +50,13 @@ namespace {{pkg | trim}} /// public static class {{class}} { +{%- if class == "TraceSemanticConventions" %} + /// + /// Attribute for db.instance + /// + public const string AttributeDbInstance = "db.instance"; +{% endif -%} + {%- for attribute in attributes if attribute.is_local and not attribute.ref %} /// /// {{format_xml_doc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} @@ -62,17 +69,30 @@ namespace {{pkg | trim}} {%- if attribute.deprecated %} [Obsolete("{{attribute.deprecated | to_doc_brief}}")] {%- endif %} - public const string Attribute{{attribute.fqn | to_camelcase(True)}} = "{{attribute.fqn}}"; + public const string Attribute{{attribute.fqn | replace("-","_") | to_camelcase(True)}} = "{{attribute.fqn}}"; +{% endfor -%} + +{%- for semconv in semconvs.values() | unique(attribute="prefix") %} + {%- if semconv.prefix %} + /// + /// Prefix for '{{semconv.semconv_id}}'. + /// + /// {{semconv.GROUP_TYPE_NAME}} + public static readonly string Prefix{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.prefix}}"; + {%- endif %} +{% endfor -%} + +{%- for semconv in semconvs.values() %} + {%- if semconv.GROUP_TYPE_NAME == 'event' %} + /// + /// Event name for '{{semconv.semconv_id}}'. + /// + /// {{semconv.GROUP_TYPE_NAME}} + public static readonly string Event{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.name}}"; + {%- endif %} {% endfor -%} -{%- if class == "TraceSemanticConventions" %} - // Manually defined and not YET in the YAML -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - public const string AttributeDbInstance = "db.instance"; - public const string AttributeExceptionEventName = "exception"; -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member -{%- endif -%} {%- for attribute in attributes if attribute.is_local and not attribute.ref %} {%- if attribute.is_enum %} {%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} @@ -88,8 +108,7 @@ namespace {{pkg | trim}} /// {{format_xml_doc(member.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// public const {{ type }} {{ member.member_id | to_camelcase(True) }} = {{ print_value(type, member.value) }}; - {%- if not loop.last -%} {{"\n"}} {%- endif %} - {%- endfor %} + {% endfor -%} } {%- endif -%} {%- endfor %} From 89b189ff632c63735d3f4f3abd8c1780db690073 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Fri, 5 Nov 2021 17:08:32 +0100 Subject: [PATCH 11/21] Update public api files --- .../.publicApi/net461/PublicAPI.Unshipped.txt | 57 ++++++++++++++++++- .../netstandard2.0/PublicAPI.Unshipped.txt | 57 ++++++++++++++++++- 2 files changed, 110 insertions(+), 4 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt index cc70a80e5fe..e41d505a009 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt @@ -182,7 +182,6 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserId = "enduser const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserRole = "enduser.role" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserScope = "enduser.scope" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEscaped = "exception.escaped" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEventName = "exception" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionMessage = "exception.message" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionStacktrace = "exception.stacktrace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionType = "exception.type" -> string @@ -411,4 +410,58 @@ OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues -OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file +OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEcs -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEks -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsLog -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixCloud -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixContainer -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDeployment -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDevice -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixFaasResource -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixHost -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sCluster -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sContainer -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sCronjob -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sDaemonset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sDeployment -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sJob -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sNamespace -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sNode -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sPod -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sReplicaset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sStatefulset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixOs -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixProcess -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixProcessRuntime -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixService -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixTelemetry -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixWebengineResource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventException -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventRpcMessage -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAws -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAwsLambda -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCode -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDb -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbCassandra -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbHbase -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMongodb -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMssql -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbRedis -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbSql -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDynamodbShared -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixException -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpan -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpanDatasource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixHttp -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixIdentity -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessaging -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingKafka -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRabbitmq -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixNetwork -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixPeer -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index cc70a80e5fe..e41d505a009 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -182,7 +182,6 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserId = "enduser const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserRole = "enduser.role" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeEnduserScope = "enduser.scope" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEscaped = "exception.escaped" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionEventName = "exception" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionMessage = "exception.message" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionStacktrace = "exception.stacktrace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeExceptionType = "exception.type" -> string @@ -411,4 +410,58 @@ OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues -OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues \ No newline at end of file +OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEcs -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEks -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsLog -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixCloud -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixContainer -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDeployment -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDevice -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixFaasResource -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixHost -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sCluster -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sContainer -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sCronjob -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sDaemonset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sDeployment -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sJob -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sNamespace -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sNode -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sPod -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sReplicaset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixK8sStatefulset -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixOs -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixProcess -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixProcessRuntime -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixService -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixTelemetry -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixWebengineResource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventException -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventRpcMessage -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAws -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAwsLambda -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCode -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDb -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbCassandra -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbHbase -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMongodb -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMssql -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbRedis -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbSql -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDynamodbShared -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixException -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpan -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpanDatasource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixHttp -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixIdentity -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessaging -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingKafka -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRabbitmq -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixNetwork -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixPeer -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file From 5837c7963152c3379d0c652bf43123ee843614ec Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Fri, 5 Nov 2021 17:12:49 +0100 Subject: [PATCH 12/21] Missing fixed .sln after merge conflict resolution --- OpenTelemetry.sln | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/OpenTelemetry.sln b/OpenTelemetry.sln index 1ccf9dd44d5..4ef60052cc5 100644 --- a/OpenTelemetry.sln +++ b/OpenTelemetry.sln @@ -222,11 +222,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.Prom EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs", "src\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj", "{6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}" EndProject -<<<<<<< HEAD -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.SemanticConventions", "src\OpenTelemetry.SemanticConventions\OpenTelemetry.SemanticConventions.csproj", "{D4519DF6-CC72-4AC4-A851-E21383098D11}" -======= Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp.AspNetCore.6.0", "test\TestApp.AspNetCore.6.0\TestApp.AspNetCore.6.0.csproj", "{0076C657-564F-4787-9FFF-52D9D55166E8}" ->>>>>>> upstream/main +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.SemanticConventions", "src\OpenTelemetry.SemanticConventions\OpenTelemetry.SemanticConventions.csproj", "{D4519DF6-CC72-4AC4-A851-E21383098D11}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -466,17 +464,14 @@ Global {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.Build.0 = Release|Any CPU -<<<<<<< HEAD - {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.Build.0 = Release|Any CPU -======= {0076C657-564F-4787-9FFF-52D9D55166E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0076C657-564F-4787-9FFF-52D9D55166E8}.Debug|Any CPU.Build.0 = Debug|Any CPU {0076C657-564F-4787-9FFF-52D9D55166E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {0076C657-564F-4787-9FFF-52D9D55166E8}.Release|Any CPU.Build.0 = Release|Any CPU ->>>>>>> upstream/main + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4519DF6-CC72-4AC4-A851-E21383098D11}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From f94fb9fb5a7b18f0422f5c0f03c69ae156506010 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Sat, 5 Feb 2022 16:42:46 +0100 Subject: [PATCH 13/21] Improve prefix and event attr generation template --- .../templates/SemanticConventions.cs.j2 | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 9667349e770..e8ad0eebdb7 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -72,29 +72,23 @@ namespace {{pkg | trim}} public const string Attribute{{attribute.fqn | replace("-","_") | to_camelcase(True)}} = "{{attribute.fqn}}"; {% endfor -%} -{%- for semconv in semconvs.values() | unique(attribute="prefix") %} - {%- if semconv.prefix %} +{%- for semconv in semconvs.values() | unique(attribute="prefix") if semconv.prefix %} /// /// Prefix for '{{semconv.semconv_id}}'. /// /// {{semconv.GROUP_TYPE_NAME}} public static readonly string Prefix{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.prefix}}"; - {%- endif %} {% endfor -%} -{%- for semconv in semconvs.values() %} - {%- if semconv.GROUP_TYPE_NAME == 'event' %} +{%- for semconv in semconvs.values() if semconv.GROUP_TYPE_NAME == 'event'%} /// /// Event name for '{{semconv.semconv_id}}'. /// /// {{semconv.GROUP_TYPE_NAME}} public static readonly string Event{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.name}}"; - {%- endif %} {% endfor -%} - -{%- for attribute in attributes if attribute.is_local and not attribute.ref %} - {%- if attribute.is_enum %} +{%- for attribute in attributes if attribute.is_local and not attribute.ref and attribute.is_enum %} {%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} {%- set type = attribute.attr_type.enum_type %} {%- if not loop.first -%} {{"\n"}} {%- endif %} @@ -110,8 +104,6 @@ namespace {{pkg | trim}} public const {{ type }} {{ member.member_id | to_camelcase(True) }} = {{ print_value(type, member.value) }}; {% endfor -%} } - {%- endif -%} {%- endfor %} } } - From 2f16f308a7821012e718a0a0231659ba99ec3c31 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Sat, 5 Feb 2022 17:34:41 +0100 Subject: [PATCH 14/21] Use format from .NET SDK dotnet-format is built-in in .NET 6. Also things changes and the template and script needed to change. --- .../.config/dotnet-tools.json | 12 ------------ .../scripts/semantic-convetion/generate.ps1 | 7 +------ .../scripts/semantic-convetion/generate.sh | 9 ++------- .../templates/SemanticConventions.cs.j2 | 2 +- 4 files changed, 4 insertions(+), 26 deletions(-) delete mode 100644 src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json diff --git a/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json b/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json deleted file mode 100644 index d8d5a3bc721..00000000000 --- a/src/OpenTelemetry.SemanticConventions/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "dotnet-format": { - "version": "5.1.250801", - "commands": [ - "dotnet-format" - ] - } - } -} \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 index dced94e409c..dcd10b988d2 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -7,10 +7,6 @@ $SPEC_VERSION="v1.7.0" $SCHEMA_URL="https://opentelemetry.io/schemas/$SPEC_VERSION" $GENERATOR_VERSION="0.8.0" -# install the dotnet-format tool -Write-Host "Restoring dotnet-format tool" -dotnet tool restore - Set-Location $SCRIPT_DIR Remove-Item -r -fo opentelemetry-specification @@ -50,5 +46,4 @@ docker run --rm ` Set-Location ${ROOT_DIR} Write-Host "Running dotnet-format on the generated files" -dotnet format -a warn -dotnet format -w -s warn +dotnet format --severity warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index ae75b8f5bc8..7fd4099c879 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -8,10 +8,6 @@ SPEC_VERSION=v1.7.0 SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION GENERATOR_VERSION=0.8.0 -# install the dotnet-format tool -echo "Restoring dotnet-format tool" -dotnet tool restore - cd ${SCRIPT_DIR} rm -rf opentelemetry-specification || true @@ -47,9 +43,8 @@ docker run --rm \ -Dclass=ResourceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ -Dpkg=OpenTelemetry.Resources - + cd ${ROOT_DIR} echo "Running dotnet-format on the generated files" -dotnet format -a warn -dotnet format -w -s warn +dotnet format --severity warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index e8ad0eebdb7..cade4043c02 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -3,7 +3,7 @@ {%- endmacro %} {%- macro format_remarks(text) -%} -{%- set notes = '\n ///'.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} +{%- set notes = '\n /// '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} {{notes}} {%- endmacro -%} From 4c991c31f1edf42ac73e4d7ce9f15828200cddcd Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Sat, 5 Feb 2022 17:36:11 +0100 Subject: [PATCH 15/21] Re-generate after template changes Before the dotnet-format tool used to auto-format comments that didn't start with a space. In the new version this is not happening anymore and I couldn't find out why. For now, on `remarks` an empty space is added always. --- .../Resource/ResourceSemanticConventions.cs | 12 ++++++------ .../Trace/TraceSemanticConventions.cs | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 2c229803015..374d3dc8aa5 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -189,14 +189,14 @@ public static class ResourceSemanticConventions /// /// /// Depending on the cloud provider, use: - /// + /// /// * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). /// Take care not to use the "invoked ARN" directly but replace any /// [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple /// different aliases. /// * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) /// * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id). - /// + /// /// On some providers, it may not be possible to determine the full ID at startup, /// which is why this field cannot be made required. For example, on AWS the account ID /// part of the ARN is not available without calling another AWS API @@ -210,13 +210,13 @@ public static class ResourceSemanticConventions /// /// /// Depending on the cloud provider and platform, use: - /// + /// /// * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) - /// (an integer represented as a decimal string). + /// (an integer represented as a decimal string). /// * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions) - /// (i.e., the function name plus the revision suffix). + /// (i.e., the function name plus the revision suffix). /// * **Google Cloud Functions:** The value of the - /// [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). + /// [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). /// * **Azure Functions:** Not applicable. Do not set this attribute. /// public const string AttributeFaasVersion = "faas.version"; diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index 3f30ce98e7d..5fcd89da50b 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -28,7 +28,7 @@ namespace OpenTelemetry.Trace public static class TraceSemanticConventions { /// - /// Attribute for db.instance. + /// Attribute for db.instance /// public const string AttributeDbInstance = "db.instance"; @@ -182,13 +182,13 @@ public static class TraceSemanticConventions /// This may be actually "in flight" in some languages (e.g. if the exception /// is passed to a Context manager's `__exit__` method in Python) but will /// usually be caught at the point of recording the exception in most languages. - /// + /// /// It is usually not possible to determine at the point where an exception is thrown /// whether it will escape the scope of a span. /// However, it is trivial to know that an exception /// will escape, if one checks for an active exception just before ending the span, /// as done in the [example above](#exception-end-example). - /// + /// /// It follows that an exception may still escape the scope of the span /// even if the `exception.escaped` attribute was not set or set to false, /// since the event might have been recorded at a time where it was not @@ -468,7 +468,7 @@ public static class TraceSemanticConventions /// /// This is not necessarily the same as `net.peer.ip`, which would /// identify the network-level peer, which may be a proxy. - /// + /// /// This attribute should be set when a source of information different /// from the one used for `net.peer.ip`, is available even if that other /// source just confirms the same value as `net.peer.ip`. From 38b3846215f16d98cadb30e64fdac1e9aae6f449 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Wed, 29 Jun 2022 22:52:26 +0200 Subject: [PATCH 16/21] Improve whitespace in the template Used the new config in the code generator to make things easier in regards to whitespace/newlines in the template. Now the Jinja expressions do not leave whitespaces when the code file is generated. If newlines are required, they have to be present in the template file. --- .../scripts/semantic-convetion/generate.sh | 17 +++--- .../templates/SemanticConventions.cs.j2 | 59 ++++++++++--------- 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index 7fd4099c879..b694c1ff664 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -4,9 +4,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible -SPEC_VERSION=v1.7.0 +SPEC_VERSION=v1.12.0 SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION -GENERATOR_VERSION=0.8.0 +GENERATOR_VERSION=0.11.0 cd ${SCRIPT_DIR} @@ -30,7 +30,9 @@ docker run --rm \ --output /output/TraceSemanticConventions.cs \ -Dclass=TraceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ - -Dpkg=OpenTelemetry.Trace + -Dpkg=OpenTelemetry.Trace \ + -Jtrim_blocks=True \ + -Jlstrip_blocks=True docker run --rm \ -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/resource:/source \ @@ -42,9 +44,6 @@ docker run --rm \ --output /output/ResourceSemanticConventions.cs \ -Dclass=ResourceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ - -Dpkg=OpenTelemetry.Resources - -cd ${ROOT_DIR} - -echo "Running dotnet-format on the generated files" -dotnet format --severity warn + -Dpkg=OpenTelemetry.Resources \ + -Jtrim_blocks=True \ + -Jlstrip_blocks=True diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index cade4043c02..23643e55cd9 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -3,7 +3,7 @@ {%- endmacro %} {%- macro format_remarks(text) -%} -{%- set notes = '\n /// '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} +{%- set notes = '\n /// '.join(text.splitlines()).encode('ascii', 'xmlcharrefreplace').decode() -%} {{notes}} {%- endmacro -%} @@ -39,71 +39,76 @@ namespace {{pkg | trim}} { /// /// Constants for semantic attribute names outlined by the OpenTelemetry specifications. - {%- if class == "TraceSemanticConventions" %} + {% if class == "TraceSemanticConventions" %} /// . - {%- elif class == "ResourceSemanticConventions" %} + {% elif class == "ResourceSemanticConventions" %} /// . - {%- endif %} + {% endif %} /// /// /// Schema and specification version: {{schemaUrl}}. /// public static class {{class}} { -{%- if class == "TraceSemanticConventions" %} +{% if class == "TraceSemanticConventions" %} /// - /// Attribute for db.instance + /// Attribute for db.instance. /// public const string AttributeDbInstance = "db.instance"; -{% endif -%} -{%- for attribute in attributes if attribute.is_local and not attribute.ref %} +{% endif %} +{% for attribute in attributes if attribute.is_local and not attribute.ref %} + {% if not loop.first %}{{"\n"}}{% endif %} /// /// {{format_xml_doc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// - {%- if attribute.note %} + {% if attribute.note %} /// - /// {{format_remarks(attribute.note)}} + /// {{format_remarks(attribute.note | to_doc_brief)}}. /// - {%- endif %} - {%- if attribute.deprecated %} + {% endif %} + {% if attribute.deprecated %} [Obsolete("{{attribute.deprecated | to_doc_brief}}")] - {%- endif %} + {% endif %} public const string Attribute{{attribute.fqn | replace("-","_") | to_camelcase(True)}} = "{{attribute.fqn}}"; -{% endfor -%} +{% endfor %} +{% for semconv in semconvs.values() | unique(attribute="prefix") %} + {% if semconv.prefix %} -{%- for semconv in semconvs.values() | unique(attribute="prefix") if semconv.prefix %} /// /// Prefix for '{{semconv.semconv_id}}'. /// - /// {{semconv.GROUP_TYPE_NAME}} public static readonly string Prefix{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.prefix}}"; -{% endfor -%} + {% endif %} +{% endfor %} +{% for semconv in semconvs.values() %} + {% if semconv.GROUP_TYPE_NAME == 'event' %} -{%- for semconv in semconvs.values() if semconv.GROUP_TYPE_NAME == 'event'%} /// /// Event name for '{{semconv.semconv_id}}'. /// - /// {{semconv.GROUP_TYPE_NAME}} public static readonly string Event{{semconv.semconv_id | replace("-","_") | to_camelcase(True)}} = "{{semconv.name}}"; -{% endfor -%} + {% endif %} +{% endfor %} +{% for attribute in attributes if attribute.is_local and not attribute.ref %} + {% if attribute.is_enum %} + {% set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} + {% set type = attribute.attr_type.enum_type %} -{%- for attribute in attributes if attribute.is_local and not attribute.ref and attribute.is_enum %} - {%- set class_name = attribute.fqn | to_camelcase(True) ~ "Values" %} - {%- set type = attribute.attr_type.enum_type %} - {%- if not loop.first -%} {{"\n"}} {%- endif %} /// /// {{format_xml_doc(attribute.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// public static class {{class_name}} { - {%- for member in attribute.attr_type.members %} + {% for member in attribute.attr_type.members %} /// /// {{format_xml_doc(member.brief | render_markdown(code="{0}", paragraph="{0}"))}} /// public const {{ type }} {{ member.member_id | to_camelcase(True) }} = {{ print_value(type, member.value) }}; - {% endfor -%} + {% if not loop.last %}{{"\n"}}{% endif %} + {% endfor %} } -{%- endfor %} + {% endif %} +{% endfor %} } } From fe2778e248ba811243892e929de5a2382a91bff7 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Mon, 25 Jul 2022 21:51:47 +0200 Subject: [PATCH 17/21] Adapt script --- .../scripts/semantic-convetion/generate.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index b694c1ff664..f998f94e994 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -28,11 +28,10 @@ docker run --rm \ -f /source code \ --template /templates/SemanticConventions.cs.j2 \ --output /output/TraceSemanticConventions.cs \ + --trim-whitespace \ -Dclass=TraceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ - -Dpkg=OpenTelemetry.Trace \ - -Jtrim_blocks=True \ - -Jlstrip_blocks=True + -Dpkg=OpenTelemetry.Trace docker run --rm \ -v ${SCRIPT_DIR}/opentelemetry-specification/semantic_conventions/resource:/source \ @@ -42,8 +41,7 @@ docker run --rm \ -f /source code \ --template /templates/SemanticConventions.cs.j2 \ --output /output/ResourceSemanticConventions.cs \ + --trim-whitespace \ -Dclass=ResourceSemanticConventions \ -DschemaUrl=$SCHEMA_URL \ - -Dpkg=OpenTelemetry.Resources \ - -Jtrim_blocks=True \ - -Jlstrip_blocks=True + -Dpkg=OpenTelemetry.Resources From 99de7b633fd62a074917af95aad98758066074d4 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Tue, 6 Sep 2022 10:56:44 +0200 Subject: [PATCH 18/21] Bump tool version and format remarks better --- .../scripts/semantic-convetion/generate.ps1 | 10 ++++++---- .../scripts/semantic-convetion/generate.sh | 2 +- .../templates/SemanticConventions.cs.j2 | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 index dcd10b988d2..a41695dd331 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 @@ -3,9 +3,9 @@ $SCRIPT_DIR=$PSScriptRoot $ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible -$SPEC_VERSION="v1.7.0" +$SPEC_VERSION="v1.12.0" $SCHEMA_URL="https://opentelemetry.io/schemas/$SPEC_VERSION" -$GENERATOR_VERSION="0.8.0" +$GENERATOR_VERSION="0.14.0" Set-Location $SCRIPT_DIR @@ -27,6 +27,7 @@ docker run --rm ` -f /source code ` --template /templates/SemanticConventions.cs.j2 ` --output /output/TraceSemanticConventions.cs ` + --trim-whitespace ` -D class=TraceSemanticConventions ` -D schemaUrl=$SCHEMA_URL ` -D pkg=OpenTelemetry.Trace @@ -39,11 +40,12 @@ docker run --rm ` -f /source code ` --template /templates/SemanticConventions.cs.j2 ` --output /output/ResourceSemanticConventions.cs ` + --trim-whitespace ` -D class=ResourceSemanticConventions ` -D schemaUrl=$SCHEMA_URL ` -D pkg=OpenTelemetry.Resources Set-Location ${ROOT_DIR} -Write-Host "Running dotnet-format on the generated files" -dotnet format --severity warn +# Write-Host "Running dotnet-format on the generated files" +# dotnet format --severity warn diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh index f998f94e994..8faf550ae8b 100755 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh @@ -6,7 +6,7 @@ ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible SPEC_VERSION=v1.12.0 SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION -GENERATOR_VERSION=0.11.0 +GENERATOR_VERSION=0.14.0 cd ${SCRIPT_DIR} diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 23643e55cd9..97d8a905c33 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -64,7 +64,7 @@ namespace {{pkg | trim}} /// {% if attribute.note %} /// - /// {{format_remarks(attribute.note | to_doc_brief)}}. + /// {{format_remarks(attribute.note | to_doc_brief | render_markdown(code="{0}", paragraph="{0}"))}}. /// {% endif %} {% if attribute.deprecated %} From 28f921fac8e7795724f850b60efc153cc07172f9 Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Tue, 6 Sep 2022 11:57:47 +0200 Subject: [PATCH 19/21] Escape chars in remarks Escape filter seems to do the job to escape invalid chars inside a xml comment block --- .../.publicApi/net461/PublicAPI.Unshipped.txt | 85 ++- .../netstandard2.0/PublicAPI.Unshipped.txt | 85 ++- .../Resource/ResourceSemanticConventions.cs | 209 +++++--- .../Trace/TraceSemanticConventions.cs | 505 +++++++++++++----- .../templates/SemanticConventions.cs.j2 | 2 +- 5 files changed, 647 insertions(+), 239 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt index e41d505a009..b401ba2bc37 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt @@ -1,4 +1,4 @@ -const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsContainerArn = "aws.ecs.container.arn" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsLaunchtype = "aws.ecs.launchtype" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskArn = "aws.ecs.task.arn" -> string @@ -9,6 +9,9 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupAr const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupNames = "aws.log.group.names" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamArns = "aws.log.stream.arns" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamNames = "aws.log.stream.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserBrands = "browser.brands" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserPlatform = "browser.platform" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserUserAgent = "browser.user_agent" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAccountId = "cloud.account.id" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAvailabilityZone = "cloud.availability_zone" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudPlatform = "cloud.platform" -> string @@ -21,6 +24,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerName const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerRuntime = "container.runtime" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeploymentEnvironment = "deployment.environment" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceId = "device.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceManufacturer = "device.manufacturer" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelIdentifier = "device.model.identifier" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelName = "device.model.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasId = "faas.id" -> string @@ -37,6 +41,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostName = "h const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostType = "host.type" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sClusterName = "k8s.cluster.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerName = "k8s.container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerRestartCount = "k8s.container.restart_count" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobName = "k8s.cronjob.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobUid = "k8s.cronjob.uid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetName = "k8s.daemonset.name" -> string @@ -64,6 +69,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessComman const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutableName = "process.executable.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutablePath = "process.executable.path" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessOwner = "process.owner" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessParentPid = "process.parent_pid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessPid = "process.pid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeDescription = "process.runtime.description" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeName = "process.runtime.name" -> string @@ -83,6 +89,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudEcs = "alibaba_cloud_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudFc = "alibaba_cloud_fc" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsAppRunner = "aws_app_runner" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string @@ -98,16 +105,21 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.Gc const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudCvm = "tencent_cloud_cvm" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudEks = "tencent_cloud_eks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudScf = "tencent_cloud_scf" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.TencentCloud = "tencent_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Amd64 = "amd64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm32 = "arm32" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm64 = "arm64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ia64 = "ia64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc32 = "ppc32" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc64 = "ppc64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.S390x = "s390x" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.X86 = "x86" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Aix = "aix" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Darwin = "darwin" -> string @@ -129,6 +141,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageVa const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Php = "php" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Python = "python" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Ruby = "ruby" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Swift = "swift" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Webjs = "webjs" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributeDefinitions = "aws.dynamodb.attribute_definitions" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get" -> string @@ -153,6 +166,11 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableCoun const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableNames = "aws.dynamodb.table_names" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTotalSegments = "aws.dynamodb.total_segments" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventId = "cloudevents.event_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSource = "cloudevents.event_source" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSpecVersion = "cloudevents.event_spec_version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSubject = "cloudevents.event_subject" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventType = "cloudevents.event_type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFilepath = "code.filepath" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFunction = "code.function" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeLineno = "code.lineno" -> string @@ -161,12 +179,10 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraConsisten const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorId = "db.cassandra.coordinator.id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraIdempotence = "db.cassandra.idempotence" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraKeyspace = "db.cassandra.keyspace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraPageSize = "db.cassandra.page_size" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraSpeculativeExecutionCount = "db.cassandra.speculative_execution_count" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraTable = "db.cassandra.table" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbConnectionString = "db.connection_string" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbHbaseNamespace = "db.hbase.namespace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbInstance = "db.instance" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMongodbCollection = "db.mongodb.collection" -> string @@ -197,17 +213,17 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedProvider const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedRegion = "faas.invoked_region" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTime = "faas.time" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTrigger = "faas.trigger" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlDocument = "graphql.document" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlOperationName = "graphql.operation.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlOperationType = "graphql.operation.type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpClientIp = "http.client_ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpFlavor = "http.flavor" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpHost = "http.host" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpMethod = "http.method" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLength = "http.request_content_length" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLength = "http.response_content_length" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRetryCount = "http.retry_count" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRoute = "http.route" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpScheme = "http.scheme" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpServerName = "http.server_name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "http.status_code" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string @@ -232,22 +248,36 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingOperation = const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocol = "messaging.protocol" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocolVersion = "messaging.protocol_version" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRoutingKey = "messaging.rabbitmq.routing_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqClientGroup = "messaging.rocketmq.client_group" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqClientId = "messaging.rocketmq.client_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqConsumptionModel = "messaging.rocketmq.consumption_model" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageKeys = "messaging.rocketmq.message_keys" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageTag = "messaging.rocketmq.message_tag" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageType = "messaging.rocketmq.message_type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqNamespace = "messaging.rocketmq.namespace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetAppProtocolName = "net.app.protocol.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetAppProtocolVersion = "net.app.protocol.version" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierIcc = "net.host.carrier.icc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMcc = "net.host.carrier.mcc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMnc = "net.host.carrier.mnc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierName = "net.host.carrier.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionSubtype = "net.host.connection.subtype" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionType = "net.host.connection.type" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerIp = "net.peer.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerName = "net.peer.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerPort = "net.peer.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockFamily = "net.sock.family" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockHostAddr = "net.sock.host.addr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockHostPort = "net.sock.host.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerAddr = "net.sock.peer.addr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerName = "net.sock.peer.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerPort = "net.sock.peer.port" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetTransport = "net.transport" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeOpentracingRefType = "opentracing.ref_type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributePeerService = "peer.service" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcGrpcStatusCode = "rpc.grpc.status_code" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorCode = "rpc.jsonrpc.error_code" -> string @@ -305,6 +335,7 @@ const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mssql = "mssql const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mysql = "mysql" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Neo4j = "neo4j" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Netezza = "netezza" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Opensearch = "opensearch" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Oracle = "oracle" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.OtherSql = "other_sql" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pervasive = "pervasive" -> string @@ -324,14 +355,19 @@ const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Ali const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.TencentCloud = "tencent_cloud" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Datasource = "datasource" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Http = "http" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Other = "other" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Pubsub = "pubsub" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Timer = "timer" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Mutation = "mutation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Query = "query" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Subscription = "subscription" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http10 = "1.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1.1" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http30 = "3.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Received = "RECEIVED" -> string @@ -340,6 +376,12 @@ const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValue const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues.Broadcasting = "broadcasting" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues.Clustering = "clustering" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Delay = "delay" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Fifo = "fifo" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Normal = "normal" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Transaction = "transaction" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma = "cdma" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma20001xrtt = "cdma2000_1xrtt" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Edge = "edge" -> string @@ -366,13 +408,16 @@ const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.U const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unknown = "unknown" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wifi = "wifi" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wired = "wired" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Inet = "inet" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Inet6 = "inet6" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Unix = "unix" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpUdp = "ip_udp" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Other = "other" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Pipe = "pipe" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Unix = "unix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues.ChildOf = "child_of" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues.FollowsFrom = "follows_from" -> string const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Aborted = 10 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.AlreadyExists = 6 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Cancelled = 1 -> int @@ -390,6 +435,10 @@ const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unaut const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unavailable = 14 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unimplemented = 12 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unknown = 2 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.ApacheDubbo = "apache_dubbo" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.DotnetWcf = "dotnet_wcf" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.Grpc = "grpc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.JavaRmi = "java_rmi" -> string OpenTelemetry.Resources.ResourceSemanticConventions OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues @@ -403,17 +452,24 @@ OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues +OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues +OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues +OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues +OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEcs -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEks -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsLog -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixBrowser -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixCloud -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixContainer -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDeployment -> string @@ -441,10 +497,10 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventException -> s static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventRpcMessage -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAws -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAwsLambda -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCloudevents -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCode -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDb -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbCassandra -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbHbase -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMongodb -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMssql -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbRedis -> string @@ -453,15 +509,18 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDynamodbShare static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixException -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpan -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpanDatasource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixGraphql -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixHttp -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixIdentity -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessaging -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingKafka -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRabbitmq -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRocketmq -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixNetwork -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixOpentracing -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixPeer -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index e41d505a009..b401ba2bc37 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -1,4 +1,4 @@ -const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsClusterArn = "aws.ecs.cluster.arn" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsContainerArn = "aws.ecs.container.arn" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsLaunchtype = "aws.ecs.launchtype" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsEcsTaskArn = "aws.ecs.task.arn" -> string @@ -9,6 +9,9 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupAr const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogGroupNames = "aws.log.group.names" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamArns = "aws.log.stream.arns" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeAwsLogStreamNames = "aws.log.stream.names" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserBrands = "browser.brands" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserPlatform = "browser.platform" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeBrowserUserAgent = "browser.user_agent" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAccountId = "cloud.account.id" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudAvailabilityZone = "cloud.availability_zone" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeCloudPlatform = "cloud.platform" -> string @@ -21,6 +24,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerName const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeContainerRuntime = "container.runtime" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeploymentEnvironment = "deployment.environment" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceId = "device.id" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceManufacturer = "device.manufacturer" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelIdentifier = "device.model.identifier" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeDeviceModelName = "device.model.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeFaasId = "faas.id" -> string @@ -37,6 +41,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostName = "h const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeHostType = "host.type" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sClusterName = "k8s.cluster.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerName = "k8s.container.name" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sContainerRestartCount = "k8s.container.restart_count" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobName = "k8s.cronjob.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sCronjobUid = "k8s.cronjob.uid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeK8sDaemonsetName = "k8s.daemonset.name" -> string @@ -64,6 +69,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessComman const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutableName = "process.executable.name" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessExecutablePath = "process.executable.path" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessOwner = "process.owner" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessParentPid = "process.parent_pid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessPid = "process.pid" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeDescription = "process.runtime.description" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.AttributeProcessRuntimeName = "process.runtime.name" -> string @@ -83,6 +89,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues const OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues.Fargate = "fargate" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudEcs = "alibaba_cloud_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AlibabaCloudFc = "alibaba_cloud_fc" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsAppRunner = "aws_app_runner" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEc2 = "aws_ec2" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEcs = "aws_ecs" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.AwsEks = "aws_eks" -> string @@ -98,16 +105,21 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.Gc const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpCloudRun = "gcp_cloud_run" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpComputeEngine = "gcp_compute_engine" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.GcpKubernetesEngine = "gcp_kubernetes_engine" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudCvm = "tencent_cloud_cvm" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudEks = "tencent_cloud_eks" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues.TencentCloudScf = "tencent_cloud_scf" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.AlibabaCloud = "alibaba_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Aws = "aws" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Azure = "azure" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.CloudProviderValues.TencentCloud = "tencent_cloud" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Amd64 = "amd64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm32 = "arm32" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Arm64 = "arm64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ia64 = "ia64" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc32 = "ppc32" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.Ppc64 = "ppc64" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.S390x = "s390x" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.HostArchValues.X86 = "x86" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Aix = "aix" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.OsTypeValues.Darwin = "darwin" -> string @@ -129,6 +141,7 @@ const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageVa const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Php = "php" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Python = "python" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Ruby = "ruby" -> string +const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Swift = "swift" -> string const OpenTelemetry.Resources.ResourceSemanticConventions.TelemetrySdkLanguageValues.Webjs = "webjs" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributeDefinitions = "aws.dynamodb.attribute_definitions" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get" -> string @@ -153,6 +166,11 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableCoun const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTableNames = "aws.dynamodb.table_names" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsDynamodbTotalSegments = "aws.dynamodb.total_segments" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventId = "cloudevents.event_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSource = "cloudevents.event_source" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSpecVersion = "cloudevents.event_spec_version" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventSubject = "cloudevents.event_subject" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCloudeventsEventType = "cloudevents.event_type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFilepath = "code.filepath" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeFunction = "code.function" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeCodeLineno = "code.lineno" -> string @@ -161,12 +179,10 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraConsisten const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraCoordinatorId = "db.cassandra.coordinator.id" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraIdempotence = "db.cassandra.idempotence" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraKeyspace = "db.cassandra.keyspace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraPageSize = "db.cassandra.page_size" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraSpeculativeExecutionCount = "db.cassandra.speculative_execution_count" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbCassandraTable = "db.cassandra.table" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbConnectionString = "db.connection_string" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbHbaseNamespace = "db.hbase.namespace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbInstance = "db.instance" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeDbMongodbCollection = "db.mongodb.collection" -> string @@ -197,17 +213,17 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedProvider const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasInvokedRegion = "faas.invoked_region" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTime = "faas.time" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeFaasTrigger = "faas.trigger" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlDocument = "graphql.document" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlOperationName = "graphql.operation.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeGraphqlOperationType = "graphql.operation.type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpClientIp = "http.client_ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpFlavor = "http.flavor" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpHost = "http.host" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpMethod = "http.method" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLength = "http.request_content_length" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLength = "http.response_content_length" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRetryCount = "http.retry_count" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpRoute = "http.route" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpScheme = "http.scheme" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpServerName = "http.server_name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpStatusCode = "http.status_code" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpTarget = "http.target" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeHttpUrl = "http.url" -> string @@ -232,22 +248,36 @@ const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingOperation = const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocol = "messaging.protocol" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingProtocolVersion = "messaging.protocol_version" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRabbitmqRoutingKey = "messaging.rabbitmq.routing_key" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqClientGroup = "messaging.rocketmq.client_group" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqClientId = "messaging.rocketmq.client_id" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqConsumptionModel = "messaging.rocketmq.consumption_model" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageKeys = "messaging.rocketmq.message_keys" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageTag = "messaging.rocketmq.message_tag" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqMessageType = "messaging.rocketmq.message_type" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingRocketmqNamespace = "messaging.rocketmq.namespace" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingSystem = "messaging.system" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingTempDestination = "messaging.temp_destination" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeMessagingUrl = "messaging.url" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetAppProtocolName = "net.app.protocol.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetAppProtocolVersion = "net.app.protocol.version" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierIcc = "net.host.carrier.icc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMcc = "net.host.carrier.mcc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierMnc = "net.host.carrier.mnc" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostCarrierName = "net.host.carrier.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionSubtype = "net.host.connection.subtype" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostConnectionType = "net.host.connection.type" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostIp = "net.host.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostName = "net.host.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetHostPort = "net.host.port" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerIp = "net.peer.ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerName = "net.peer.name" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetPeerPort = "net.peer.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockFamily = "net.sock.family" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockHostAddr = "net.sock.host.addr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockHostPort = "net.sock.host.port" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerAddr = "net.sock.peer.addr" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerName = "net.sock.peer.name" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetSockPeerPort = "net.sock.peer.port" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeNetTransport = "net.transport" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.AttributeOpentracingRefType = "opentracing.ref_type" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributePeerService = "peer.service" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcGrpcStatusCode = "rpc.grpc.status_code" -> string const OpenTelemetry.Trace.TraceSemanticConventions.AttributeRpcJsonrpcErrorCode = "rpc.jsonrpc.error_code" -> string @@ -305,6 +335,7 @@ const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mssql = "mssql const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Mysql = "mysql" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Neo4j = "neo4j" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Netezza = "netezza" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Opensearch = "opensearch" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Oracle = "oracle" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.OtherSql = "other_sql" -> string const OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues.Pervasive = "pervasive" -> string @@ -324,14 +355,19 @@ const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Ali const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Aws = "aws" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Azure = "azure" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.Gcp = "gcp" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues.TencentCloud = "tencent_cloud" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Datasource = "datasource" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Http = "http" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Other = "other" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Pubsub = "pubsub" -> string const OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues.Timer = "timer" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Mutation = "mutation" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Query = "query" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues.Subscription = "subscription" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http10 = "1.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http11 = "1.1" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http20 = "2.0" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Http30 = "3.0" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Quic = "QUIC" -> string const OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues.Spdy = "SPDY" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues.Received = "RECEIVED" -> string @@ -340,6 +376,12 @@ const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValue const OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues.Topic = "topic" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Process = "process" -> string const OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues.Receive = "receive" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues.Broadcasting = "broadcasting" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues.Clustering = "clustering" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Delay = "delay" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Fifo = "fifo" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Normal = "normal" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues.Transaction = "transaction" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma = "cdma" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Cdma20001xrtt = "cdma2000_1xrtt" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues.Edge = "edge" -> string @@ -366,13 +408,16 @@ const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.U const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Unknown = "unknown" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wifi = "wifi" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues.Wired = "wired" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Inet = "inet" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Inet6 = "inet6" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues.Unix = "unix" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Inproc = "inproc" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Ip = "ip" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpTcp = "ip_tcp" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.IpUdp = "ip_udp" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Other = "other" -> string const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Pipe = "pipe" -> string -const OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues.Unix = "unix" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues.ChildOf = "child_of" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues.FollowsFrom = "follows_from" -> string const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Aborted = 10 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.AlreadyExists = 6 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Cancelled = 1 -> int @@ -390,6 +435,10 @@ const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unaut const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unavailable = 14 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unimplemented = 12 -> int const OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues.Unknown = 2 -> int +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.ApacheDubbo = "apache_dubbo" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.DotnetWcf = "dotnet_wcf" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.Grpc = "grpc" -> string +const OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues.JavaRmi = "java_rmi" -> string OpenTelemetry.Resources.ResourceSemanticConventions OpenTelemetry.Resources.ResourceSemanticConventions.AwsEcsLaunchtypeValues OpenTelemetry.Resources.ResourceSemanticConventions.CloudPlatformValues @@ -403,17 +452,24 @@ OpenTelemetry.Trace.TraceSemanticConventions.DbSystemValues OpenTelemetry.Trace.TraceSemanticConventions.FaasDocumentOperationValues OpenTelemetry.Trace.TraceSemanticConventions.FaasInvokedProviderValues OpenTelemetry.Trace.TraceSemanticConventions.FaasTriggerValues +OpenTelemetry.Trace.TraceSemanticConventions.GraphqlOperationTypeValues OpenTelemetry.Trace.TraceSemanticConventions.HttpFlavorValues OpenTelemetry.Trace.TraceSemanticConventions.MessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingDestinationKindValues OpenTelemetry.Trace.TraceSemanticConventions.MessagingOperationValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqConsumptionModelValues +OpenTelemetry.Trace.TraceSemanticConventions.MessagingRocketmqMessageTypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionSubtypeValues OpenTelemetry.Trace.TraceSemanticConventions.NetHostConnectionTypeValues +OpenTelemetry.Trace.TraceSemanticConventions.NetSockFamilyValues OpenTelemetry.Trace.TraceSemanticConventions.NetTransportValues +OpenTelemetry.Trace.TraceSemanticConventions.OpentracingRefTypeValues OpenTelemetry.Trace.TraceSemanticConventions.RpcGrpcStatusCodeValues +OpenTelemetry.Trace.TraceSemanticConventions.RpcSystemValues static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEcs -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsEks -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixAwsLog -> string +static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixBrowser -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixCloud -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixContainer -> string static readonly OpenTelemetry.Resources.ResourceSemanticConventions.PrefixDeployment -> string @@ -441,10 +497,10 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventException -> s static readonly OpenTelemetry.Trace.TraceSemanticConventions.EventRpcMessage -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAws -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixAwsLambda -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCloudevents -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixCode -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDb -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbCassandra -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbHbase -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMongodb -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbMssql -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDbRedis -> string @@ -453,15 +509,18 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixDynamodbShare static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixException -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpan -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixFaasSpanDatasource -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixGraphql -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixHttp -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixIdentity -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessaging -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingKafka -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRabbitmq -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixMessagingRocketmq -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixNetwork -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixOpentracing -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixPeer -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 374d3dc8aa5..fa1aa7c5881 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -23,10 +23,35 @@ namespace OpenTelemetry.Resources /// . /// /// - /// Schema and specification version: https://opentelemetry.io/schemas/v1.7.0. + /// Schema and specification version: https://opentelemetry.io/schemas/main. /// public static class ResourceSemanticConventions { + /// + /// Array of brand name and version separated by a space. + /// + /// + /// This value is intended to be taken from the UA client hints API (navigator.userAgentData.brands). + /// + public const string AttributeBrowserBrands = "browser.brands"; + + /// + /// The platform on which the browser is running. + /// + /// + /// This value is intended to be taken from the UA client hints API (navigator.userAgentData.platform). If unavailable, the legacy navigator.platform API SHOULD NOT be used instead and this attribute SHOULD be left unset in order for the values to be consistent. + /// The list of possible values is defined in the W3C User-Agent Client Hints specification. Note that some (but not all) of these values can overlap with values in the os.type and os.name attributes. However, for consistency, the values in the browser.platform attribute should capture the exact value that the user agent provides. + /// + public const string AttributeBrowserPlatform = "browser.platform"; + + /// + /// Full user-agent string provided by the browser. + /// + /// + /// The user-agent value SHOULD be provided only from browsers that do not have a mechanism to retrieve brands and platform individually from the User-Agent Client Hints API. To retrieve the value, the legacy navigator.userAgent API can be used. + /// + public const string AttributeBrowserUserAgent = "browser.user_agent"; + /// /// Name of the cloud provider. /// @@ -38,15 +63,18 @@ public static class ResourceSemanticConventions public const string AttributeCloudAccountId = "cloud.account.id"; /// - /// The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, or Google Cloud regions. + /// The geographical region the resource is running. /// + /// + /// Refer to your provider&#39;s docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, Google Cloud regions, or Tencent Cloud regions. + /// public const string AttributeCloudRegion = "cloud.region"; /// /// Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running. /// /// - /// Availability zones are called "zones" on Alibaba Cloud and Google Cloud. + /// Availability zones are called &#34;zones&#34; on Alibaba Cloud and Google Cloud. /// public const string AttributeCloudAvailabilityZone = "cloud.availability_zone"; @@ -54,7 +82,7 @@ public static class ResourceSemanticConventions /// The cloud platform in use. /// /// - /// The prefix of the service SHOULD match the one specified in `cloud.provider`. + /// The prefix of the service SHOULD match the one specified in cloud.provider. /// public const string AttributeCloudPlatform = "cloud.platform"; @@ -105,7 +133,7 @@ public static class ResourceSemanticConventions /// The Amazon Resource Name(s) (ARN) of the AWS log group(s). /// /// - /// See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). + /// See the log group ARN format documentation. /// public const string AttributeAwsLogGroupArns = "aws.log.group.arns"; @@ -118,12 +146,12 @@ public static class ResourceSemanticConventions /// The ARN(s) of the AWS log stream(s). /// /// - /// See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream. + /// See the log stream ARN format documentation. One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream. /// public const string AttributeAwsLogStreamArns = "aws.log.stream.arns"; /// - /// Container name. + /// Container name used by container runtime. /// public const string AttributeContainerName = "container.name"; @@ -156,7 +184,7 @@ public static class ResourceSemanticConventions /// A unique identifier representing the device. /// /// - /// The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence. + /// The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the vendor identifier. On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found here on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence. /// public const string AttributeDeviceId = "device.id"; @@ -164,7 +192,7 @@ public static class ResourceSemanticConventions /// The model identifier for the device. /// /// - /// It's recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device. + /// It&#39;s recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device. /// public const string AttributeDeviceModelIdentifier = "device.model.identifier"; @@ -172,15 +200,36 @@ public static class ResourceSemanticConventions /// The marketing name for the device model. /// /// - /// It's recommended this value represents a human readable version of the device model rather than a machine readable alternative. + /// It&#39;s recommended this value represents a human readable version of the device model rather than a machine readable alternative. /// public const string AttributeDeviceModelName = "device.model.name"; + /// + /// The name of the device manufacturer. + /// + /// + /// The Android OS provides this field via Build. iOS apps SHOULD hardcode the value Apple. + /// + public const string AttributeDeviceManufacturer = "device.manufacturer"; + /// /// The name of the single function that this runtime instance executes. /// /// - /// This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes). + /// This is the name of the function as configured/deployed on the FaaS + /// platform and is usually different from the name of the callback + /// function (which may be stored in the + /// code.namespace/code.function + /// span attributes).For some cloud providers, the above definition is ambiguous. The following + /// definition of function name MUST be used for this attribute + /// (and consequently the span name) for the listed cloud providers/products:
    + ///
  • Azure: The full name <FUNCAPP>/<FUNC>, i.e., function app name + /// followed by a forward slash followed by the function name (this form + /// can also be seen in the resource JSON for the function). + /// This means that a span attribute MUST be used, as an Azure function + /// app can host multiple functions that would usually share + /// a TracerProvider (see also the faas.id attribute)
  • + ///
. ///
public const string AttributeFaasName = "faas.name"; @@ -188,20 +237,20 @@ public static class ResourceSemanticConventions /// The unique ID of the single function that this runtime instance executes. /// /// - /// Depending on the cloud provider, use: - /// - /// * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). - /// Take care not to use the "invoked ARN" directly but replace any - /// [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple - /// different aliases. - /// * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) - /// * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id). - /// - /// On some providers, it may not be possible to determine the full ID at startup, - /// which is why this field cannot be made required. For example, on AWS the account ID - /// part of the ARN is not available without calling another AWS API - /// which may be deemed too slow for a short-running lambda function. - /// As an alternative, consider setting `faas.id` as a span attribute instead. + /// On some cloud providers, it may not be possible to determine the full ID at startup, + /// so consider setting faas.id as a span attribute instead.The exact value to use for faas.id depends on the cloud provider:
    + ///
  • AWS Lambda: The function ARN. + /// Take care not to use the &#34;invoked ARN&#34; directly but replace any + /// alias suffix + /// with the resolved function version, as the same runtime instance may be invokable with + /// multiple different aliases.
  • + ///
  • GCP: The URI of the resource
  • + ///
  • Azure: The Fully Qualified Resource ID of the invoked function, + /// not the function app, having the form + /// /subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>. + /// This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share + /// a TracerProvider
  • + ///
. ///
public const string AttributeFaasId = "faas.id"; @@ -209,15 +258,15 @@ public static class ResourceSemanticConventions /// The immutable version of the function being executed. /// /// - /// Depending on the cloud provider and platform, use: - /// - /// * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) - /// (an integer represented as a decimal string). - /// * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions) - /// (i.e., the function name plus the revision suffix). - /// * **Google Cloud Functions:** The value of the - /// [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). - /// * **Azure Functions:** Not applicable. Do not set this attribute. + /// Depending on the cloud provider and platform, use:
    + ///
  • AWS Lambda: The function version + /// (an integer represented as a decimal string).
  • + ///
  • Google Cloud Run: The revision + /// (i.e., the function name plus the revision suffix).
  • + ///
  • Google Cloud Functions: The value of the + /// K_REVISION environment variable.
  • + ///
  • Azure Functions: Not applicable. Do not set this attribute
  • + ///
. ///
public const string AttributeFaasVersion = "faas.version"; @@ -225,7 +274,9 @@ public static class ResourceSemanticConventions /// The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version. /// /// - /// * **AWS Lambda:** Use the (full) log stream name. + ///
    + ///
  • AWS Lambda: Use the (full) log stream name
  • + ///
. ///
public const string AttributeFaasInstance = "faas.instance"; @@ -233,7 +284,7 @@ public static class ResourceSemanticConventions /// The amount of memory available to the serverless function in MiB. /// /// - /// It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information. + /// It&#39;s recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable AWS_LAMBDA_FUNCTION_MEMORY_SIZE provides this information. /// public const string AttributeFaasMaxMemory = "faas.max_memory"; @@ -303,10 +354,15 @@ public static class ResourceSemanticConventions public const string AttributeK8sPodName = "k8s.pod.name"; /// - /// The name of the Container in a Pod template. + /// The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name). /// public const string AttributeK8sContainerName = "k8s.container.name"; + /// + /// Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec. + /// + public const string AttributeK8sContainerRestartCount = "k8s.container.restart_count"; + /// /// The UID of the ReplicaSet. /// @@ -392,6 +448,11 @@ public static class ResourceSemanticConventions /// public const string AttributeProcessPid = "process.pid"; + /// + /// Parent Process identifier (PID). + /// + public const string AttributeProcessParentPid = "process.parent_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. /// @@ -441,7 +502,7 @@ public static class ResourceSemanticConventions /// Logical name of the service. /// /// - /// MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`. + /// MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to unknown_service: concatenated with process.executable.name, e.g. unknown_service:bash. If process.executable.name is not available, the value MUST be set to unknown_service. /// public const string AttributeServiceName = "service.name"; @@ -449,7 +510,7 @@ public static class ResourceSemanticConventions /// A namespace for service.name. /// /// - /// A string value having a 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. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace. + /// A string value having a 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. If service.namespace is not specified in the Resource then service.name is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace. /// public const string AttributeServiceNamespace = "service.namespace"; @@ -457,7 +518,7 @@ public static class ResourceSemanticConventions /// The string ID of the service instance. /// /// - /// MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations). + /// MUST be unique for each instance of the same service.namespace,service.name pair (in other words service.namespace,service.name,service.instance.id triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations). /// public const string AttributeServiceInstanceId = "service.instance.id"; @@ -501,160 +562,139 @@ public static class ResourceSemanticConventions /// public const string AttributeWebengineDescription = "webengine.description"; + /// + /// Prefix for 'browser'. + /// + public static readonly string PrefixBrowser = "browser"; + /// /// Prefix for 'cloud'. /// - /// span public static readonly string PrefixCloud = "cloud"; /// /// Prefix for 'aws.ecs'. /// - /// span public static readonly string PrefixAwsEcs = "aws.ecs"; /// /// Prefix for 'aws.eks'. /// - /// span public static readonly string PrefixAwsEks = "aws.eks"; /// /// Prefix for 'aws.log'. /// - /// span public static readonly string PrefixAwsLog = "aws.log"; /// /// Prefix for 'container'. /// - /// span public static readonly string PrefixContainer = "container"; /// /// Prefix for 'deployment'. /// - /// span public static readonly string PrefixDeployment = "deployment"; /// /// Prefix for 'device'. /// - /// span public static readonly string PrefixDevice = "device"; /// /// Prefix for 'faas_resource'. /// - /// span public static readonly string PrefixFaasResource = "faas"; /// /// Prefix for 'host'. /// - /// span public static readonly string PrefixHost = "host"; /// /// Prefix for 'k8s.cluster'. /// - /// span public static readonly string PrefixK8sCluster = "k8s.cluster"; /// /// Prefix for 'k8s.node'. /// - /// span public static readonly string PrefixK8sNode = "k8s.node"; /// /// Prefix for 'k8s.namespace'. /// - /// span public static readonly string PrefixK8sNamespace = "k8s.namespace"; /// /// Prefix for 'k8s.pod'. /// - /// span public static readonly string PrefixK8sPod = "k8s.pod"; /// /// Prefix for 'k8s.container'. /// - /// span public static readonly string PrefixK8sContainer = "k8s.container"; /// /// Prefix for 'k8s.replicaset'. /// - /// span public static readonly string PrefixK8sReplicaset = "k8s.replicaset"; /// /// Prefix for 'k8s.deployment'. /// - /// span public static readonly string PrefixK8sDeployment = "k8s.deployment"; /// /// Prefix for 'k8s.statefulset'. /// - /// span public static readonly string PrefixK8sStatefulset = "k8s.statefulset"; /// /// Prefix for 'k8s.daemonset'. /// - /// span public static readonly string PrefixK8sDaemonset = "k8s.daemonset"; /// /// Prefix for 'k8s.job'. /// - /// span public static readonly string PrefixK8sJob = "k8s.job"; /// /// Prefix for 'k8s.cronjob'. /// - /// span public static readonly string PrefixK8sCronjob = "k8s.cronjob"; /// /// Prefix for 'os'. /// - /// span public static readonly string PrefixOs = "os"; /// /// Prefix for 'process'. /// - /// span public static readonly string PrefixProcess = "process"; /// /// Prefix for 'process.runtime'. /// - /// span public static readonly string PrefixProcessRuntime = "process.runtime"; /// /// Prefix for 'service'. /// - /// span public static readonly string PrefixService = "service"; /// /// Prefix for 'telemetry'. /// - /// span public static readonly string PrefixTelemetry = "telemetry"; /// /// Prefix for 'webengine_resource'. /// - /// span public static readonly string PrefixWebengineResource = "webengine"; /// @@ -681,6 +721,11 @@ public static class CloudProviderValues /// Google Cloud Platform. /// public const string Gcp = "gcp"; + + /// + /// Tencent Cloud. + /// + public const string TencentCloud = "tencent_cloud"; } /// @@ -723,6 +768,11 @@ public static class CloudPlatformValues /// public const string AwsElasticBeanstalk = "aws_elastic_beanstalk"; + /// + /// AWS App Runner. + /// + public const string AwsAppRunner = "aws_app_runner"; + /// /// Azure Virtual Machines. /// @@ -772,6 +822,21 @@ public static class CloudPlatformValues /// Google Cloud App Engine (GAE). /// public const string GcpAppEngine = "gcp_app_engine"; + + /// + /// Tencent Cloud Cloud Virtual Machine (CVM). + /// + public const string TencentCloudCvm = "tencent_cloud_cvm"; + + /// + /// Tencent Cloud Elastic Kubernetes Service (EKS). + /// + public const string TencentCloudEks = "tencent_cloud_eks"; + + /// + /// Tencent Cloud Serverless Cloud Function (SCF). + /// + public const string TencentCloudScf = "tencent_cloud_scf"; } /// @@ -825,6 +890,11 @@ public static class HostArchValues /// public const string Ppc64 = "ppc64"; + /// + /// IBM z/Architecture. + /// + public const string S390x = "s390x"; + /// /// 32-bit x86. /// @@ -882,7 +952,7 @@ public static class OsTypeValues public const string Aix = "aix"; /// - /// Oracle Solaris. + /// SunOS, Oracle Solaris. /// public const string Solaris = "solaris"; @@ -946,6 +1016,11 @@ public static class TelemetrySdkLanguageValues /// webjs. /// public const string Webjs = "webjs"; + + /// + /// swift. + /// + public const string Swift = "swift"; } } } diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index 5fcd89da50b..07399927f2c 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -23,12 +23,12 @@ namespace OpenTelemetry.Trace /// . /// /// - /// Schema and specification version: https://opentelemetry.io/schemas/v1.7.0. + /// Schema and specification version: https://opentelemetry.io/schemas/main. /// public static class TraceSemanticConventions { /// - /// Attribute for db.instance + /// Attribute for db.instance. /// public const string AttributeDbInstance = "db.instance"; @@ -36,10 +36,43 @@ public static class TraceSemanticConventions /// The full invoked ARN as provided on the Context passed to the function (Lambda-Runtime-Invoked-Function-Arn header on the /runtime/invocation/next applicable). /// /// - /// This may be different from `faas.id` if an alias is involved. + /// This may be different from faas.id if an alias is involved. /// public const string AttributeAwsLambdaInvokedArn = "aws.lambda.invoked_arn"; + /// + /// The event_id uniquely identifies the event. + /// + public const string AttributeCloudeventsEventId = "cloudevents.event_id"; + + /// + /// The source identifies the context in which an event happened. + /// + public const string AttributeCloudeventsEventSource = "cloudevents.event_source"; + + /// + /// The version of the CloudEvents specification which the event uses. + /// + public const string AttributeCloudeventsEventSpecVersion = "cloudevents.event_spec_version"; + + /// + /// The event_type contains a value describing the type of event related to the originating occurrence. + /// + public const string AttributeCloudeventsEventType = "cloudevents.event_type"; + + /// + /// The subject of the event in the context of the event producer (identified by source). + /// + public const string AttributeCloudeventsEventSubject = "cloudevents.event_subject"; + + /// + /// Parent-child Reference type. + /// + /// + /// The causal relationship between a child Span and a parent Span. + /// + public const string AttributeOpentracingRefType = "opentracing.ref_type"; + /// /// An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers. /// @@ -61,10 +94,10 @@ public static class TraceSemanticConventions public const string AttributeDbJdbcDriverClassname = "db.jdbc.driver_classname"; /// - /// If no tech-specific attribute is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails). + /// This attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails). /// /// - /// In some SQL databases, the database name to be used is called "schema name". + /// In some SQL databases, the database name to be used is called &#34;schema name&#34;. In case there are multiple layers that could be considered for database name (e.g. Oracle instance name and schema name), the database name to be used is the more specific layer (e.g. Oracle schema name). /// public const string AttributeDbName = "db.name"; @@ -80,7 +113,7 @@ public static class TraceSemanticConventions /// The name of the operation being executed, e.g. the MongoDB command name such as findAndModify, or the SQL keyword. /// /// - /// When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted. + /// When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of db.statement just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted. /// public const string AttributeDbOperation = "db.operation"; @@ -88,15 +121,10 @@ public static class TraceSemanticConventions /// The Microsoft SQL Server instance name connecting to. This name is used to determine the port of a named instance. /// /// - /// If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard). + /// If setting a db.mssql.instance_name, net.peer.port is no longer required (but still recommended if non-standard). /// public const string AttributeDbMssqlInstanceName = "db.mssql.instance_name"; - /// - /// The name of the keyspace being accessed. To be used instead of the generic db.name attribute. - /// - public const string AttributeDbCassandraKeyspace = "db.cassandra.keyspace"; - /// /// The fetch size used for paging, i.e. how many rows will be returned at once. /// @@ -108,10 +136,10 @@ public static class TraceSemanticConventions public const string AttributeDbCassandraConsistencyLevel = "db.cassandra.consistency_level"; /// - /// The name of the primary table that the operation is acting upon, including the schema name (if applicable). + /// The name of the primary table that the operation is acting upon, including the keyspace name (if applicable). /// /// - /// This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. + /// This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of db.statement just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. /// public const string AttributeDbCassandraTable = "db.cassandra.table"; @@ -135,11 +163,6 @@ public static class TraceSemanticConventions /// public const string AttributeDbCassandraCoordinatorDc = "db.cassandra.coordinator.dc"; - /// - /// The HBase namespace being accessed. To be used instead of the generic db.name attribute. - /// - public const string AttributeDbHbaseNamespace = "db.hbase.namespace"; - /// /// The index of the database being accessed as used in the SELECT command, provided as an integer. To be used instead of the generic db.name attribute. /// @@ -151,10 +174,10 @@ public static class TraceSemanticConventions public const string AttributeDbMongodbCollection = "db.mongodb.collection"; /// - /// The name of the primary table that the operation is acting upon, including the schema name (if applicable). + /// The name of the primary table that the operation is acting upon, including the database name (if applicable). /// /// - /// It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. + /// It is not recommended to attempt any client-side parsing of db.statement just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set. /// public const string AttributeDbSqlTable = "db.sql.table"; @@ -178,27 +201,32 @@ public static class TraceSemanticConventions /// /// /// An exception is considered to have escaped (or left) the scope of a span, - /// if that span is ended while the exception is still logically "in flight". - /// This may be actually "in flight" in some languages (e.g. if the exception - /// is passed to a Context manager's `__exit__` method in Python) but will - /// usually be caught at the point of recording the exception in most languages. - /// - /// It is usually not possible to determine at the point where an exception is thrown + /// if that span is ended while the exception is still logically &#34;in flight&#34;. + /// This may be actually &#34;in flight&#34; in some languages (e.g. if the exception + /// is passed to a Context manager&#39;s __exit__ method in Python) but will + /// usually be caught at the point of recording the exception in most languages.It is usually not possible to determine at the point where an exception is thrown /// whether it will escape the scope of a span. /// However, it is trivial to know that an exception /// will escape, if one checks for an active exception just before ending the span, - /// as done in the [example above](#exception-end-example). - /// - /// It follows that an exception may still escape the scope of the span - /// even if the `exception.escaped` attribute was not set or set to false, + /// as done in the example above.It follows that an exception may still escape the scope of the span + /// even if the exception.escaped attribute was not set or set to false, /// since the event might have been recorded at a time where it was not /// clear whether the exception will escape. /// public const string AttributeExceptionEscaped = "exception.escaped"; /// - /// Type of the trigger on which the function is executed. + /// Type of the trigger which caused this function execution. /// + /// + /// For the server/consumer span on the incoming side, + /// faas.trigger MUST be set.Clients invoking FaaS instances usually cannot set faas.trigger, + /// since they would typically need to look in the payload to determine + /// the event type. If clients set it, it should be the same as the + /// trigger that corresponding incoming would have (i.e., this has + /// nothing to do with the underlying transport used to make the API + /// call to invoke the lambda, which is often HTTP). + /// public const string AttributeFaasTrigger = "faas.trigger"; /// @@ -245,7 +273,7 @@ public static class TraceSemanticConventions /// The name of the invoked function. /// /// - /// SHOULD be equal to the `faas.name` resource attribute of the invoked function. + /// SHOULD be equal to the faas.name resource attribute of the invoked function. /// public const string AttributeFaasInvokedName = "faas.invoked_name"; @@ -253,7 +281,7 @@ public static class TraceSemanticConventions /// The cloud provider of the invoked function. /// /// - /// SHOULD be equal to the `cloud.provider` resource attribute of the invoked function. + /// SHOULD be equal to the cloud.provider resource attribute of the invoked function. /// public const string AttributeFaasInvokedProvider = "faas.invoked_provider"; @@ -261,7 +289,7 @@ public static class TraceSemanticConventions /// The cloud region of the invoked function. /// /// - /// SHOULD be equal to the `cloud.region` resource attribute of the invoked function. + /// SHOULD be equal to the cloud.region resource attribute of the invoked function. /// public const string AttributeFaasInvokedRegion = "faas.invoked_region"; @@ -271,34 +299,70 @@ public static class TraceSemanticConventions public const string AttributeNetTransport = "net.transport"; /// - /// Remote address of the peer (dotted decimal for IPv4 or RFC5952 for IPv6). + /// Application layer protocol used. The value SHOULD be normalized to lowercase. /// - public const string AttributeNetPeerIp = "net.peer.ip"; + public const string AttributeNetAppProtocolName = "net.app.protocol.name"; /// - /// Remote port number. + /// Version of the application layer protocol used. See note below. /// - public const string AttributeNetPeerPort = "net.peer.port"; + /// + /// net.app.protocol.version refers to the version of the protocol used and might be different from the protocol client&#39;s version. If the HTTP client used has a version of 0.27.2, but sends HTTP version 1.1, this attribute should be set to 1.1. + /// + public const string AttributeNetAppProtocolVersion = "net.app.protocol.version"; + + /// + /// Remote socket peer name. + /// + public const string AttributeNetSockPeerName = "net.sock.peer.name"; /// - /// Remote hostname or similar, see note below. + /// Remote socket peer address: IPv4 or IPv6 for internet protocols, path for local communication, etc. /// + public const string AttributeNetSockPeerAddr = "net.sock.peer.addr"; + + /// + /// Remote socket peer port. + /// + public const string AttributeNetSockPeerPort = "net.sock.peer.port"; + + /// + /// Protocol address family which is used for communication. + /// + public const string AttributeNetSockFamily = "net.sock.family"; + + /// + /// Logical remote hostname, see note below. + /// + /// + /// net.peer.name SHOULD NOT be set if capturing it would require an extra DNS lookup. + /// public const string AttributeNetPeerName = "net.peer.name"; /// - /// Like net.peer.ip but for the host IP. Useful in case of a multi-IP host. + /// Logical remote port number. /// - public const string AttributeNetHostIp = "net.host.ip"; + public const string AttributeNetPeerPort = "net.peer.port"; /// - /// Like net.peer.port but for the host port. + /// Logical local hostname or similar, see note below. + /// + public const string AttributeNetHostName = "net.host.name"; + + /// + /// Logical local port number, preferably the one that the peer used to connect. /// public const string AttributeNetHostPort = "net.host.port"; /// - /// Local hostname or similar, see note below. + /// Local socket address. Useful in case of a multi-IP host. /// - public const string AttributeNetHostName = "net.host.name"; + public const string AttributeNetSockHostAddr = "net.sock.host.addr"; + + /// + /// Local socket port number. + /// + public const string AttributeNetSockHostPort = "net.sock.host.port"; /// /// The internet connection type currently being used by the host. @@ -385,32 +449,6 @@ public static class TraceSemanticConventions /// public const string AttributeHttpMethod = "http.method"; - /// - /// Full HTTP request URL in the form scheme://host[:port]/path?query[#fragment]. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless. - /// - /// - /// `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`. - /// - public const string AttributeHttpUrl = "http.url"; - - /// - /// The full request target as passed in a HTTP request line or equivalent. - /// - public const string AttributeHttpTarget = "http.target"; - - /// - /// The value of the HTTP host header. An empty Host header should also be reported, see note. - /// - /// - /// When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set. - /// - public const string AttributeHttpHost = "http.host"; - - /// - /// The URI scheme identifying the used protocol. - /// - public const string AttributeHttpScheme = "http.scheme"; - /// /// HTTP response status code. /// @@ -420,61 +458,67 @@ public static class TraceSemanticConventions /// Kind of HTTP protocol used. /// /// - /// If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed. + /// If net.transport is not specified, it can be assumed to be IP.TCP except if http.flavor is QUIC, in which case IP.UDP is assumed. /// public const string AttributeHttpFlavor = "http.flavor"; /// - /// Value of the HTTP User-Agent header sent by the client. + /// Value of the HTTP User-Agent header sent by the client. /// public const string AttributeHttpUserAgent = "http.user_agent"; /// - /// The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. + /// The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. /// public const string AttributeHttpRequestContentLength = "http.request_content_length"; /// - /// The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used. + /// The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. /// - public const string AttributeHttpRequestContentLengthUncompressed = "http.request_content_length_uncompressed"; + public const string AttributeHttpResponseContentLength = "http.response_content_length"; /// - /// The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size. + /// Full HTTP request URL in the form scheme://host[:port]/path?query[#fragment]. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless. /// - public const string AttributeHttpResponseContentLength = "http.response_content_length"; + /// + /// http.url MUST NOT contain credentials passed via URL in form of https://username:password@www.example.com/. In such case the attribute&#39;s value should be https://www.example.com/. + /// + public const string AttributeHttpUrl = "http.url"; /// - /// The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used. + /// The ordinal number of request re-sending attempt. /// - public const string AttributeHttpResponseContentLengthUncompressed = "http.response_content_length_uncompressed"; + public const string AttributeHttpRetryCount = "http.retry_count"; /// - /// The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( net.host.name should be used instead). + /// The URI scheme identifying the used protocol. /// - /// - /// `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available. - /// - public const string AttributeHttpServerName = "http.server_name"; + public const string AttributeHttpScheme = "http.scheme"; /// - /// The matched route (path template). + /// The full request target as passed in a HTTP request line or equivalent. /// + public const string AttributeHttpTarget = "http.target"; + + /// + /// The matched route (path template in the format used by the respective server framework). See note below. + /// + /// + /// &#39;http.route&#39; MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it. + /// public const string AttributeHttpRoute = "http.route"; /// /// The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For). /// /// - /// This is not necessarily the same as `net.peer.ip`, which would - /// identify the network-level peer, which may be a proxy. - /// - /// This attribute should be set when a source of information different - /// from the one used for `net.peer.ip`, is available even if that other - /// source just confirms the same value as `net.peer.ip`. - /// Rationale: For `net.peer.ip`, one typically does not know if it + /// This is not necessarily the same as net.sock.peer.addr, which would + /// identify the network-level peer, which may be a proxy.This attribute should be set when a source of information different + /// from the one used for net.sock.peer.addr, is available even if that other + /// source just confirms the same value as net.sock.peer.addr. + /// Rationale: For net.sock.peer.addr, one typically does not know if it /// comes from a proxy, reverse proxy, or the actual client. Setting - /// `http.client_ip` when it's the same as `net.peer.ip` means that + /// http.client_ip when it&#39;s the same as net.sock.peer.addr means that /// one is at least somewhat confident that the address is not that of /// the closest proxy. /// @@ -590,6 +634,24 @@ public static class TraceSemanticConventions /// public const string AttributeAwsDynamodbGlobalSecondaryIndexUpdates = "aws.dynamodb.global_secondary_index_updates"; + /// + /// The name of the operation being executed. + /// + public const string AttributeGraphqlOperationName = "graphql.operation.name"; + + /// + /// The type of the operation being executed. + /// + public const string AttributeGraphqlOperationType = "graphql.operation.type"; + + /// + /// The GraphQL document being executed. + /// + /// + /// The value may be sanitized to exclude sensitive information. + /// + public const string AttributeGraphqlDocument = "graphql.document"; + /// /// A string identifying the messaging system. /// @@ -664,7 +726,7 @@ public static class TraceSemanticConventions /// Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from messaging.message_id in that they're not unique. If the key is null, the attribute MUST NOT be set. /// /// - /// If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value. + /// If the key type is not string, it&#39;s string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don&#39;t include its value. /// public const string AttributeMessagingKafkaMessageKey = "messaging.kafka.message_key"; @@ -689,7 +751,42 @@ public static class TraceSemanticConventions public const string AttributeMessagingKafkaTombstone = "messaging.kafka.tombstone"; /// - /// A string identifying the remoting system. + /// Namespace of RocketMQ resources, resources in different namespaces are individual. + /// + public const string AttributeMessagingRocketmqNamespace = "messaging.rocketmq.namespace"; + + /// + /// Name of the RocketMQ producer/consumer group that is handling the message. The client type is identified by the SpanKind. + /// + public const string AttributeMessagingRocketmqClientGroup = "messaging.rocketmq.client_group"; + + /// + /// The unique identifier for each client. + /// + public const string AttributeMessagingRocketmqClientId = "messaging.rocketmq.client_id"; + + /// + /// Type of message. + /// + public const string AttributeMessagingRocketmqMessageType = "messaging.rocketmq.message_type"; + + /// + /// The secondary classifier of message besides topic. + /// + public const string AttributeMessagingRocketmqMessageTag = "messaging.rocketmq.message_tag"; + + /// + /// Key(s) of message, another way to mark message besides message id. + /// + public const string AttributeMessagingRocketmqMessageKeys = "messaging.rocketmq.message_keys"; + + /// + /// Model of message consumption. This only applies to consumer spans. + /// + public const string AttributeMessagingRocketmqConsumptionModel = "messaging.rocketmq.consumption_model"; + + /// + /// A string identifying the remoting system. See below for a list of well-known identifiers. /// public const string AttributeRpcSystem = "rpc.system"; @@ -697,7 +794,7 @@ public static class TraceSemanticConventions /// The full (logical) name of the service being called, including its package name, if applicable. /// /// - /// This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side). + /// This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The code.namespace attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side). /// public const string AttributeRpcService = "rpc.service"; @@ -705,7 +802,7 @@ public static class TraceSemanticConventions /// The name of the (logical) method being called, must be equal to the $method part in the span name. /// /// - /// This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side). + /// This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The code.function attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side). /// public const string AttributeRpcMethod = "rpc.method"; @@ -760,171 +857,174 @@ public static class TraceSemanticConventions /// /// Prefix for 'aws.lambda'. /// - /// span public static readonly string PrefixAwsLambda = "aws.lambda"; + /// + /// Prefix for 'cloudevents'. + /// + public static readonly string PrefixCloudevents = "cloudevents"; + + /// + /// Prefix for 'opentracing'. + /// + public static readonly string PrefixOpentracing = "opentracing"; + /// /// Prefix for 'db'. /// - /// span public static readonly string PrefixDb = "db"; /// /// Prefix for 'db.mssql'. /// - /// span public static readonly string PrefixDbMssql = "db.mssql"; /// /// Prefix for 'db.cassandra'. /// - /// span public static readonly string PrefixDbCassandra = "db.cassandra"; - /// - /// Prefix for 'db.hbase'. - /// - /// span - public static readonly string PrefixDbHbase = "db.hbase"; - /// /// Prefix for 'db.redis'. /// - /// span public static readonly string PrefixDbRedis = "db.redis"; /// /// Prefix for 'db.mongodb'. /// - /// span public static readonly string PrefixDbMongodb = "db.mongodb"; /// /// Prefix for 'db.sql'. /// - /// span public static readonly string PrefixDbSql = "db.sql"; /// /// Prefix for 'exception'. /// - /// event public static readonly string PrefixException = "exception"; /// /// Prefix for 'faas_span'. /// - /// span public static readonly string PrefixFaasSpan = "faas"; /// /// Prefix for 'faas_span.datasource'. /// - /// span public static readonly string PrefixFaasSpanDatasource = "faas.document"; /// /// Prefix for 'network'. /// - /// span public static readonly string PrefixNetwork = "net"; /// /// Prefix for 'peer'. /// - /// span public static readonly string PrefixPeer = "peer"; /// /// Prefix for 'identity'. /// - /// span public static readonly string PrefixIdentity = "enduser"; /// /// Prefix for 'thread'. /// - /// span public static readonly string PrefixThread = "thread"; /// /// Prefix for 'code'. /// - /// span public static readonly string PrefixCode = "code"; /// /// Prefix for 'http'. /// - /// span public static readonly string PrefixHttp = "http"; /// /// Prefix for 'aws'. /// - /// span public static readonly string PrefixAws = "aws"; /// /// Prefix for 'dynamodb.shared'. /// - /// span public static readonly string PrefixDynamodbShared = "aws.dynamodb"; + /// + /// Prefix for 'graphql'. + /// + public static readonly string PrefixGraphql = "graphql"; + /// /// Prefix for 'messaging'. /// - /// span public static readonly string PrefixMessaging = "messaging"; /// /// Prefix for 'messaging.rabbitmq'. /// - /// span public static readonly string PrefixMessagingRabbitmq = "messaging.rabbitmq"; /// /// Prefix for 'messaging.kafka'. /// - /// span public static readonly string PrefixMessagingKafka = "messaging.kafka"; + /// + /// Prefix for 'messaging.rocketmq'. + /// + public static readonly string PrefixMessagingRocketmq = "messaging.rocketmq"; + /// /// Prefix for 'rpc'. /// - /// span public static readonly string PrefixRpc = "rpc"; /// /// Prefix for 'rpc.grpc'. /// - /// span public static readonly string PrefixRpcGrpc = "rpc.grpc"; /// /// Prefix for 'rpc.jsonrpc'. /// - /// span public static readonly string PrefixRpcJsonrpc = "rpc.jsonrpc"; /// /// Prefix for 'rpc.message'. /// - /// event public static readonly string PrefixRpcMessage = "message"; /// /// Event name for 'exception'. /// - /// event public static readonly string EventException = "exception"; /// /// Event name for 'rpc.message'. /// - /// event public static readonly string EventRpcMessage = "message"; + /// + /// Parent-child Reference type. + /// + public static class OpentracingRefTypeValues + { + /// + /// The parent Span depends on the child Span in some capacity. + /// + public const string ChildOf = "child_of"; + + /// + /// The parent Span does not depend in any way on the result of the child Span. + /// + public const string FollowsFrom = "follows_from"; + } + /// /// An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers. /// @@ -1164,6 +1264,11 @@ public static class DbSystemValues /// CockroachDB. /// public const string Cockroachdb = "cockroachdb"; + + /// + /// OpenSearch. + /// + public const string Opensearch = "opensearch"; } /// @@ -1228,7 +1333,7 @@ public static class DbCassandraConsistencyLevelValues } /// - /// Type of the trigger on which the function is executed. + /// Type of the trigger which caused this function execution. /// public static class FaasTriggerValues { @@ -1303,6 +1408,11 @@ public static class FaasInvokedProviderValues /// Google Cloud Platform. /// public const string Gcp = "gcp"; + + /// + /// Tencent Cloud. + /// + public const string TencentCloud = "tencent_cloud"; } /// @@ -1320,16 +1430,6 @@ public static class NetTransportValues /// public const string IpUdp = "ip_udp"; - /// - /// Another IP-based protocol. - /// - public const string Ip = "ip"; - - /// - /// Unix Domain socket. See below. - /// - public const string Unix = "unix"; - /// /// Named or anonymous pipe. See note below. /// @@ -1346,6 +1446,27 @@ public static class NetTransportValues public const string Other = "other"; } + /// + /// Protocol address family which is used for communication. + /// + public static class NetSockFamilyValues + { + /// + /// IPv4 address. + /// + public const string Inet = "inet"; + + /// + /// IPv6 address. + /// + public const string Inet6 = "inet6"; + + /// + /// Unix domain socket path. + /// + public const string Unix = "unix"; + } + /// /// The internet connection type currently being used by the host. /// @@ -1494,20 +1615,25 @@ public static class NetHostConnectionSubtypeValues public static class HttpFlavorValues { /// - /// HTTP 1.0. + /// HTTP/1.0. /// public const string Http10 = "1.0"; /// - /// HTTP 1.1. + /// HTTP/1.1. /// public const string Http11 = "1.1"; /// - /// HTTP 2. + /// HTTP/2. /// public const string Http20 = "2.0"; + /// + /// HTTP/3. + /// + public const string Http30 = "3.0"; + /// /// SPDY protocol. /// @@ -1519,6 +1645,27 @@ public static class HttpFlavorValues public const string Quic = "QUIC"; } + /// + /// The type of the operation being executed. + /// + public static class GraphqlOperationTypeValues + { + /// + /// GraphQL query. + /// + public const string Query = "query"; + + /// + /// GraphQL mutation. + /// + public const string Mutation = "mutation"; + + /// + /// GraphQL subscription. + /// + public const string Subscription = "subscription"; + } + /// /// The kind of message destination. /// @@ -1551,6 +1698,74 @@ public static class MessagingOperationValues public const string Process = "process"; } + /// + /// Type of message. + /// + public static class MessagingRocketmqMessageTypeValues + { + /// + /// Normal message. + /// + public const string Normal = "normal"; + + /// + /// FIFO message. + /// + public const string Fifo = "fifo"; + + /// + /// Delay message. + /// + public const string Delay = "delay"; + + /// + /// Transaction message. + /// + public const string Transaction = "transaction"; + } + + /// + /// Model of message consumption. This only applies to consumer spans. + /// + public static class MessagingRocketmqConsumptionModelValues + { + /// + /// Clustering consumption model. + /// + public const string Clustering = "clustering"; + + /// + /// Broadcasting consumption model. + /// + public const string Broadcasting = "broadcasting"; + } + + /// + /// A string identifying the remoting system. See below for a list of well-known identifiers. + /// + public static class RpcSystemValues + { + /// + /// gRPC. + /// + public const string Grpc = "grpc"; + + /// + /// Java RMI. + /// + public const string JavaRmi = "java_rmi"; + + /// + /// .NET WCF. + /// + public const string DotnetWcf = "dotnet_wcf"; + + /// + /// Apache Dubbo. + /// + public const string ApacheDubbo = "apache_dubbo"; + } + /// /// The numeric status code of the gRPC request. /// diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 index 97d8a905c33..dc910a9c9a6 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 @@ -64,7 +64,7 @@ namespace {{pkg | trim}} /// {% if attribute.note %} /// - /// {{format_remarks(attribute.note | to_doc_brief | render_markdown(code="{0}", paragraph="{0}"))}}. + /// {{format_remarks(attribute.note | to_doc_brief | escape | render_markdown(code="{0}", paragraph="{0}"))}}. /// {% endif %} {% if attribute.deprecated %} From c558b5710f4789e97917af9dfaa5b3482eeb41fb Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Mon, 26 Sep 2022 23:13:09 +0200 Subject: [PATCH 20/21] Use spec version 1.13, net462, update PublicApi files And other minor improvements. --- .../{net461 => net462}/PublicAPI.Shipped.txt | 0 .../{net461 => net462}/PublicAPI.Unshipped.txt | 2 +- .../netstandard2.0/PublicAPI.Unshipped.txt | 2 +- .../OpenTelemetry.SemanticConventions.csproj | 4 ++-- src/OpenTelemetry.SemanticConventions/README.md | 16 ++-------------- .../Resource/ResourceSemanticConventions.cs | 8 +++++--- .../Trace/TraceSemanticConventions.cs | 8 +++++--- .../.gitignore | 0 .../generate.ps1 | 2 +- .../generate.sh | 2 +- .../templates/SemanticConventions.cs.j2 | 3 ++- 11 files changed, 20 insertions(+), 27 deletions(-) rename src/OpenTelemetry.SemanticConventions/.publicApi/{net461 => net462}/PublicAPI.Shipped.txt (100%) rename src/OpenTelemetry.SemanticConventions/.publicApi/{net461 => net462}/PublicAPI.Unshipped.txt (99%) rename src/OpenTelemetry.SemanticConventions/scripts/{semantic-convetion => semantic-conventions}/.gitignore (100%) rename src/OpenTelemetry.SemanticConventions/scripts/{semantic-convetion => semantic-conventions}/generate.ps1 (98%) rename src/OpenTelemetry.SemanticConventions/scripts/{semantic-convetion => semantic-conventions}/generate.sh (98%) mode change 100755 => 100644 rename src/OpenTelemetry.SemanticConventions/scripts/{semantic-convetion => semantic-conventions}/templates/SemanticConventions.cs.j2 (98%) diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Shipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net462/PublicAPI.Shipped.txt similarity index 100% rename from src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Shipped.txt rename to src/OpenTelemetry.SemanticConventions/.publicApi/net462/PublicAPI.Shipped.txt diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/net462/PublicAPI.Unshipped.txt similarity index 99% rename from src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt rename to src/OpenTelemetry.SemanticConventions/.publicApi/net462/PublicAPI.Unshipped.txt index b401ba2bc37..17864093bcd 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/net462/PublicAPI.Unshipped.txt @@ -523,4 +523,4 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index b401ba2bc37..17864093bcd 100644 --- a/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.SemanticConventions/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -523,4 +523,4 @@ static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcGrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcJsonrpc -> string static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixRpcMessage -> string -static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string +static readonly OpenTelemetry.Trace.TraceSemanticConventions.PrefixThread -> string \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj index c7718acb0f8..392f6d156c0 100644 --- a/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj +++ b/src/OpenTelemetry.SemanticConventions/OpenTelemetry.SemanticConventions.csproj @@ -1,7 +1,7 @@ - + - netstandard2.0;net461 + netstandard2.0;net462 OpenTelemetry Semantic Conventions $(PackageTags);semantic-conventions diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md index 1d0ed2e9afc..fc016423c82 100644 --- a/src/OpenTelemetry.SemanticConventions/README.md +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -19,27 +19,15 @@ the templates and the script file used in the process. To generate the code files, run: ```shell -./scripts/semantic-convetion/generate.sh +./scripts/semantic-conventions/generate.sh ``` Or, with PowerShell: ```shell -./scripts/semantic-convetion/generate.ps1 +./scripts/semantic-conventions/generate.ps1 ``` -### dotnet-format - -The script installs and runs the [dotnet format](https://github.com/dotnet/format) -tool after the `.cs` files are generated. It will apply fixes for whitespaces, -code style and analyzer warnings. - -### Updating PublicAPI files - -Because the script runs `dotnet-format`, the PublicAPI files **will be -updated automatically**, as the tool fixes warnings for analyzers -([RS0016](https://github.com/dotnet/roslyn-analyzers/issues/3229)). - ## References * [OpenTelemetry Project](https://opentelemetry.io/) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index fa1aa7c5881..3479348e2d7 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -14,8 +14,10 @@ // limitations under the License. //
+// This file has been auto generated from buildscripts/semantic-conventions/templates/SemanticConventions.cs.j2 + +using System; -// This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 namespace OpenTelemetry.Resources { /// @@ -23,7 +25,7 @@ namespace OpenTelemetry.Resources /// . /// /// - /// Schema and specification version: https://opentelemetry.io/schemas/main. + /// Schema and specification version: https://opentelemetry.io/schemas/v1.13.0. /// public static class ResourceSemanticConventions { @@ -1023,4 +1025,4 @@ public static class TelemetrySdkLanguageValues public const string Swift = "swift"; } } -} +} \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index 07399927f2c..cb7ce6206c3 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -14,8 +14,10 @@ // limitations under the License. //
+// This file has been auto generated from buildscripts/semantic-conventions/templates/SemanticConventions.cs.j2 + +using System; -// This file has been auto generated from buildscripts/semantic-convention/templates/SemanticConventions.cs.j2 namespace OpenTelemetry.Trace { /// @@ -23,7 +25,7 @@ namespace OpenTelemetry.Trace /// . /// /// - /// Schema and specification version: https://opentelemetry.io/schemas/main. + /// Schema and specification version: https://opentelemetry.io/schemas/v1.13.0. /// public static class TraceSemanticConventions { @@ -1873,4 +1875,4 @@ public static class MessageTypeValues public const string Received = "RECEIVED"; } } -} +} \ No newline at end of file diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/.gitignore similarity index 100% rename from src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/.gitignore rename to src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/.gitignore diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.ps1 similarity index 98% rename from src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 rename to src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.ps1 index a41695dd331..942f499ee4e 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.ps1 @@ -3,7 +3,7 @@ $SCRIPT_DIR=$PSScriptRoot $ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible -$SPEC_VERSION="v1.12.0" +$SPEC_VERSION="v1.13.0" $SCHEMA_URL="https://opentelemetry.io/schemas/$SPEC_VERSION" $GENERATOR_VERSION="0.14.0" diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.sh old mode 100755 new mode 100644 similarity index 98% rename from src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh rename to src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.sh index 8faf550ae8b..76515a80bff --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/generate.sh +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/generate.sh @@ -4,7 +4,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ROOT_DIR="${SCRIPT_DIR}/../../" # freeze the spec & generator tools versions to make SemanticAttributes generation reproducible -SPEC_VERSION=v1.12.0 +SPEC_VERSION=v1.13.0 SCHEMA_URL=https://opentelemetry.io/schemas/$SPEC_VERSION GENERATOR_VERSION=0.14.0 diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 similarity index 98% rename from src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 rename to src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 index dc910a9c9a6..391b9bdf7e9 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-convetion/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 @@ -32,9 +32,10 @@ // limitations under the License. //
+// This file has been auto generated from buildscripts/semantic-conventions{{template}} + using System; -// This file has been auto generated from buildscripts/semantic-convention{{template}} namespace {{pkg | trim}} { /// From cf422d936c976dc887f938cebacffed133976a5f Mon Sep 17 00:00:00 2001 From: Joao Grassi Date: Mon, 26 Sep 2022 23:21:16 +0200 Subject: [PATCH 21/21] Appease build with missing blank line --- .../Resource/ResourceSemanticConventions.cs | 2 +- .../Trace/TraceSemanticConventions.cs | 2 +- .../semantic-conventions/templates/SemanticConventions.cs.j2 | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs index 3479348e2d7..1da782284c0 100644 --- a/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Resource/ResourceSemanticConventions.cs @@ -1025,4 +1025,4 @@ public static class TelemetrySdkLanguageValues public const string Swift = "swift"; } } -} \ No newline at end of file +} diff --git a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs index cb7ce6206c3..10fe6322f62 100644 --- a/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs +++ b/src/OpenTelemetry.SemanticConventions/Trace/TraceSemanticConventions.cs @@ -1875,4 +1875,4 @@ public static class MessageTypeValues public const string Received = "RECEIVED"; } } -} \ No newline at end of file +} diff --git a/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 index 391b9bdf7e9..057c417379e 100644 --- a/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 +++ b/src/OpenTelemetry.SemanticConventions/scripts/semantic-conventions/templates/SemanticConventions.cs.j2 @@ -113,3 +113,4 @@ namespace {{pkg | trim}} {% endfor %} } } +