gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

trace.go (61168B)


      1 // Copyright The OpenTelemetry Authors
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 // Code generated from semantic convention specification. DO NOT EDIT.
     16 
     17 package semconv // import "go.opentelemetry.io/otel/semconv/v1.12.0"
     18 
     19 import "go.opentelemetry.io/otel/attribute"
     20 
     21 // Span attributes used by AWS Lambda (in addition to general `faas` attributes).
     22 const (
     23 	// The full invoked ARN as provided on the `Context` passed to the function
     24 	// (`Lambda-Runtime-Invoked-Function-ARN` header on the `/runtime/invocation/next`
     25 	// applicable).
     26 	//
     27 	// Type: string
     28 	// Required: No
     29 	// Stability: stable
     30 	// Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias'
     31 	// Note: This may be different from `faas.id` if an alias is involved.
     32 	AWSLambdaInvokedARNKey = attribute.Key("aws.lambda.invoked_arn")
     33 )
     34 
     35 // This document defines attributes for CloudEvents. CloudEvents is a specification on how to define event data in a standard way. These attributes can be attached to spans when performing operations with CloudEvents, regardless of the protocol being used.
     36 const (
     37 	// The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec
     38 	// .md#id) uniquely identifies the event.
     39 	//
     40 	// Type: string
     41 	// Required: Always
     42 	// Stability: stable
     43 	// Examples: '123e4567-e89b-12d3-a456-426614174000', '0001'
     44 	CloudeventsEventIDKey = attribute.Key("cloudevents.event_id")
     45 	// The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.m
     46 	// d#source-1) identifies the context in which an event happened.
     47 	//
     48 	// Type: string
     49 	// Required: Always
     50 	// Stability: stable
     51 	// Examples: 'https://github.com/cloudevents', '/cloudevents/spec/pull/123', 'my-
     52 	// service'
     53 	CloudeventsEventSourceKey = attribute.Key("cloudevents.event_source")
     54 	// The [version of the CloudEvents specification](https://github.com/cloudevents/s
     55 	// pec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.
     56 	//
     57 	// Type: string
     58 	// Required: Always
     59 	// Stability: stable
     60 	// Examples: '1.0'
     61 	CloudeventsEventSpecVersionKey = attribute.Key("cloudevents.event_spec_version")
     62 	// The [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/sp
     63 	// ec.md#type) contains a value describing the type of event related to the
     64 	// originating occurrence.
     65 	//
     66 	// Type: string
     67 	// Required: Always
     68 	// Stability: stable
     69 	// Examples: 'com.github.pull_request.opened', 'com.example.object.deleted.v2'
     70 	CloudeventsEventTypeKey = attribute.Key("cloudevents.event_type")
     71 	// The [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.
     72 	// md#subject) of the event in the context of the event producer (identified by
     73 	// source).
     74 	//
     75 	// Type: string
     76 	// Required: No
     77 	// Stability: stable
     78 	// Examples: 'mynewfile.jpg'
     79 	CloudeventsEventSubjectKey = attribute.Key("cloudevents.event_subject")
     80 )
     81 
     82 // This document defines semantic conventions for the OpenTracing Shim
     83 const (
     84 	// Parent-child Reference type
     85 	//
     86 	// Type: Enum
     87 	// Required: No
     88 	// Stability: stable
     89 	// Note: The causal relationship between a child Span and a parent Span.
     90 	OpentracingRefTypeKey = attribute.Key("opentracing.ref_type")
     91 )
     92 
     93 var (
     94 	// The parent Span depends on the child Span in some capacity
     95 	OpentracingRefTypeChildOf = OpentracingRefTypeKey.String("child_of")
     96 	// The parent Span does not depend in any way on the result of the child Span
     97 	OpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String("follows_from")
     98 )
     99 
    100 // This document defines the attributes used to perform database client calls.
    101 const (
    102 	// An identifier for the database management system (DBMS) product being used. See
    103 	// below for a list of well-known identifiers.
    104 	//
    105 	// Type: Enum
    106 	// Required: Always
    107 	// Stability: stable
    108 	DBSystemKey = attribute.Key("db.system")
    109 	// The connection string used to connect to the database. It is recommended to
    110 	// remove embedded credentials.
    111 	//
    112 	// Type: string
    113 	// Required: No
    114 	// Stability: stable
    115 	// Examples: 'Server=(localdb)\\v11.0;Integrated Security=true;'
    116 	DBConnectionStringKey = attribute.Key("db.connection_string")
    117 	// Username for accessing the database.
    118 	//
    119 	// Type: string
    120 	// Required: No
    121 	// Stability: stable
    122 	// Examples: 'readonly_user', 'reporting_user'
    123 	DBUserKey = attribute.Key("db.user")
    124 	// The fully-qualified class name of the [Java Database Connectivity
    125 	// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver
    126 	// used to connect.
    127 	//
    128 	// Type: string
    129 	// Required: No
    130 	// Stability: stable
    131 	// Examples: 'org.postgresql.Driver',
    132 	// 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
    133 	DBJDBCDriverClassnameKey = attribute.Key("db.jdbc.driver_classname")
    134 	// This attribute is used to report the name of the database being accessed. For
    135 	// commands that switch the database, this should be set to the target database
    136 	// (even if the command fails).
    137 	//
    138 	// Type: string
    139 	// Required: Required, if applicable.
    140 	// Stability: stable
    141 	// Examples: 'customers', 'main'
    142 	// Note: In some SQL databases, the database name to be used is called "schema
    143 	// name". In case there are multiple layers that could be considered for database
    144 	// name (e.g. Oracle instance name and schema name), the database name to be used
    145 	// is the more specific layer (e.g. Oracle schema name).
    146 	DBNameKey = attribute.Key("db.name")
    147 	// The database statement being executed.
    148 	//
    149 	// Type: string
    150 	// Required: Required if applicable and not explicitly disabled via
    151 	// instrumentation configuration.
    152 	// Stability: stable
    153 	// Examples: 'SELECT * FROM wuser_table', 'SET mykey "WuValue"'
    154 	// Note: The value may be sanitized to exclude sensitive information.
    155 	DBStatementKey = attribute.Key("db.statement")
    156 	// The name of the operation being executed, e.g. the [MongoDB command
    157 	// name](https://docs.mongodb.com/manual/reference/command/#database-operations)
    158 	// such as `findAndModify`, or the SQL keyword.
    159 	//
    160 	// Type: string
    161 	// Required: Required, if `db.statement` is not applicable.
    162 	// Stability: stable
    163 	// Examples: 'findAndModify', 'HMSET', 'SELECT'
    164 	// Note: When setting this to an SQL keyword, it is not recommended to attempt any
    165 	// client-side parsing of `db.statement` just to get this property, but it should
    166 	// be set if the operation name is provided by the library being instrumented. If
    167 	// the SQL statement has an ambiguous operation, or performs more than one
    168 	// operation, this value may be omitted.
    169 	DBOperationKey = attribute.Key("db.operation")
    170 )
    171 
    172 var (
    173 	// Some other SQL database. Fallback only. See notes
    174 	DBSystemOtherSQL = DBSystemKey.String("other_sql")
    175 	// Microsoft SQL Server
    176 	DBSystemMSSQL = DBSystemKey.String("mssql")
    177 	// MySQL
    178 	DBSystemMySQL = DBSystemKey.String("mysql")
    179 	// Oracle Database
    180 	DBSystemOracle = DBSystemKey.String("oracle")
    181 	// IBM DB2
    182 	DBSystemDB2 = DBSystemKey.String("db2")
    183 	// PostgreSQL
    184 	DBSystemPostgreSQL = DBSystemKey.String("postgresql")
    185 	// Amazon Redshift
    186 	DBSystemRedshift = DBSystemKey.String("redshift")
    187 	// Apache Hive
    188 	DBSystemHive = DBSystemKey.String("hive")
    189 	// Cloudscape
    190 	DBSystemCloudscape = DBSystemKey.String("cloudscape")
    191 	// HyperSQL DataBase
    192 	DBSystemHSQLDB = DBSystemKey.String("hsqldb")
    193 	// Progress Database
    194 	DBSystemProgress = DBSystemKey.String("progress")
    195 	// SAP MaxDB
    196 	DBSystemMaxDB = DBSystemKey.String("maxdb")
    197 	// SAP HANA
    198 	DBSystemHanaDB = DBSystemKey.String("hanadb")
    199 	// Ingres
    200 	DBSystemIngres = DBSystemKey.String("ingres")
    201 	// FirstSQL
    202 	DBSystemFirstSQL = DBSystemKey.String("firstsql")
    203 	// EnterpriseDB
    204 	DBSystemEDB = DBSystemKey.String("edb")
    205 	// InterSystems Caché
    206 	DBSystemCache = DBSystemKey.String("cache")
    207 	// Adabas (Adaptable Database System)
    208 	DBSystemAdabas = DBSystemKey.String("adabas")
    209 	// Firebird
    210 	DBSystemFirebird = DBSystemKey.String("firebird")
    211 	// Apache Derby
    212 	DBSystemDerby = DBSystemKey.String("derby")
    213 	// FileMaker
    214 	DBSystemFilemaker = DBSystemKey.String("filemaker")
    215 	// Informix
    216 	DBSystemInformix = DBSystemKey.String("informix")
    217 	// InstantDB
    218 	DBSystemInstantDB = DBSystemKey.String("instantdb")
    219 	// InterBase
    220 	DBSystemInterbase = DBSystemKey.String("interbase")
    221 	// MariaDB
    222 	DBSystemMariaDB = DBSystemKey.String("mariadb")
    223 	// Netezza
    224 	DBSystemNetezza = DBSystemKey.String("netezza")
    225 	// Pervasive PSQL
    226 	DBSystemPervasive = DBSystemKey.String("pervasive")
    227 	// PointBase
    228 	DBSystemPointbase = DBSystemKey.String("pointbase")
    229 	// SQLite
    230 	DBSystemSqlite = DBSystemKey.String("sqlite")
    231 	// Sybase
    232 	DBSystemSybase = DBSystemKey.String("sybase")
    233 	// Teradata
    234 	DBSystemTeradata = DBSystemKey.String("teradata")
    235 	// Vertica
    236 	DBSystemVertica = DBSystemKey.String("vertica")
    237 	// H2
    238 	DBSystemH2 = DBSystemKey.String("h2")
    239 	// ColdFusion IMQ
    240 	DBSystemColdfusion = DBSystemKey.String("coldfusion")
    241 	// Apache Cassandra
    242 	DBSystemCassandra = DBSystemKey.String("cassandra")
    243 	// Apache HBase
    244 	DBSystemHBase = DBSystemKey.String("hbase")
    245 	// MongoDB
    246 	DBSystemMongoDB = DBSystemKey.String("mongodb")
    247 	// Redis
    248 	DBSystemRedis = DBSystemKey.String("redis")
    249 	// Couchbase
    250 	DBSystemCouchbase = DBSystemKey.String("couchbase")
    251 	// CouchDB
    252 	DBSystemCouchDB = DBSystemKey.String("couchdb")
    253 	// Microsoft Azure Cosmos DB
    254 	DBSystemCosmosDB = DBSystemKey.String("cosmosdb")
    255 	// Amazon DynamoDB
    256 	DBSystemDynamoDB = DBSystemKey.String("dynamodb")
    257 	// Neo4j
    258 	DBSystemNeo4j = DBSystemKey.String("neo4j")
    259 	// Apache Geode
    260 	DBSystemGeode = DBSystemKey.String("geode")
    261 	// Elasticsearch
    262 	DBSystemElasticsearch = DBSystemKey.String("elasticsearch")
    263 	// Memcached
    264 	DBSystemMemcached = DBSystemKey.String("memcached")
    265 	// CockroachDB
    266 	DBSystemCockroachdb = DBSystemKey.String("cockroachdb")
    267 )
    268 
    269 // Connection-level attributes for Microsoft SQL Server
    270 const (
    271 	// The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-
    272 	// us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)
    273 	// connecting to. This name is used to determine the port of a named instance.
    274 	//
    275 	// Type: string
    276 	// Required: No
    277 	// Stability: stable
    278 	// Examples: 'MSSQLSERVER'
    279 	// Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer
    280 	// required (but still recommended if non-standard).
    281 	DBMSSQLInstanceNameKey = attribute.Key("db.mssql.instance_name")
    282 )
    283 
    284 // Call-level attributes for Cassandra
    285 const (
    286 	// The fetch size used for paging, i.e. how many rows will be returned at once.
    287 	//
    288 	// Type: int
    289 	// Required: No
    290 	// Stability: stable
    291 	// Examples: 5000
    292 	DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size")
    293 	// The consistency level of the query. Based on consistency values from
    294 	// [CQL](https://docs.datastax.com/en/cassandra-
    295 	// oss/3.0/cassandra/dml/dmlConfigConsistency.html).
    296 	//
    297 	// Type: Enum
    298 	// Required: No
    299 	// Stability: stable
    300 	DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level")
    301 	// The name of the primary table that the operation is acting upon, including the
    302 	// keyspace name (if applicable).
    303 	//
    304 	// Type: string
    305 	// Required: Recommended if available.
    306 	// Stability: stable
    307 	// Examples: 'mytable'
    308 	// Note: This mirrors the db.sql.table attribute but references cassandra rather
    309 	// than sql. It is not recommended to attempt any client-side parsing of
    310 	// `db.statement` just to get this property, but it should be set if it is
    311 	// provided by the library being instrumented. If the operation is acting upon an
    312 	// anonymous table, or more than one table, this value MUST NOT be set.
    313 	DBCassandraTableKey = attribute.Key("db.cassandra.table")
    314 	// Whether or not the query is idempotent.
    315 	//
    316 	// Type: boolean
    317 	// Required: No
    318 	// Stability: stable
    319 	DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence")
    320 	// The number of times a query was speculatively executed. Not set or `0` if the
    321 	// query was not executed speculatively.
    322 	//
    323 	// Type: int
    324 	// Required: No
    325 	// Stability: stable
    326 	// Examples: 0, 2
    327 	DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count")
    328 	// The ID of the coordinating node for a query.
    329 	//
    330 	// Type: string
    331 	// Required: No
    332 	// Stability: stable
    333 	// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'
    334 	DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id")
    335 	// The data center of the coordinating node for a query.
    336 	//
    337 	// Type: string
    338 	// Required: No
    339 	// Stability: stable
    340 	// Examples: 'us-west-2'
    341 	DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc")
    342 )
    343 
    344 var (
    345 	// all
    346 	DBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String("all")
    347 	// each_quorum
    348 	DBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String("each_quorum")
    349 	// quorum
    350 	DBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String("quorum")
    351 	// local_quorum
    352 	DBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String("local_quorum")
    353 	// one
    354 	DBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String("one")
    355 	// two
    356 	DBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String("two")
    357 	// three
    358 	DBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String("three")
    359 	// local_one
    360 	DBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String("local_one")
    361 	// any
    362 	DBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String("any")
    363 	// serial
    364 	DBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String("serial")
    365 	// local_serial
    366 	DBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String("local_serial")
    367 )
    368 
    369 // Call-level attributes for Redis
    370 const (
    371 	// The index of the database being accessed as used in the [`SELECT`
    372 	// command](https://redis.io/commands/select), provided as an integer. To be used
    373 	// instead of the generic `db.name` attribute.
    374 	//
    375 	// Type: int
    376 	// Required: Required, if other than the default database (`0`).
    377 	// Stability: stable
    378 	// Examples: 0, 1, 15
    379 	DBRedisDBIndexKey = attribute.Key("db.redis.database_index")
    380 )
    381 
    382 // Call-level attributes for MongoDB
    383 const (
    384 	// The collection being accessed within the database stated in `db.name`.
    385 	//
    386 	// Type: string
    387 	// Required: Always
    388 	// Stability: stable
    389 	// Examples: 'customers', 'products'
    390 	DBMongoDBCollectionKey = attribute.Key("db.mongodb.collection")
    391 )
    392 
    393 // Call-level attributes for SQL databases
    394 const (
    395 	// The name of the primary table that the operation is acting upon, including the
    396 	// database name (if applicable).
    397 	//
    398 	// Type: string
    399 	// Required: Recommended if available.
    400 	// Stability: stable
    401 	// Examples: 'public.users', 'customers'
    402 	// Note: It is not recommended to attempt any client-side parsing of
    403 	// `db.statement` just to get this property, but it should be set if it is
    404 	// provided by the library being instrumented. If the operation is acting upon an
    405 	// anonymous table, or more than one table, this value MUST NOT be set.
    406 	DBSQLTableKey = attribute.Key("db.sql.table")
    407 )
    408 
    409 // This document defines the attributes used to report a single exception associated with a span.
    410 const (
    411 	// The type of the exception (its fully-qualified class name, if applicable). The
    412 	// dynamic type of the exception should be preferred over the static type in
    413 	// languages that support it.
    414 	//
    415 	// Type: string
    416 	// Required: No
    417 	// Stability: stable
    418 	// Examples: 'java.net.ConnectException', 'OSError'
    419 	ExceptionTypeKey = attribute.Key("exception.type")
    420 	// The exception message.
    421 	//
    422 	// Type: string
    423 	// Required: No
    424 	// Stability: stable
    425 	// Examples: 'Division by zero', "Can't convert 'int' object to str implicitly"
    426 	ExceptionMessageKey = attribute.Key("exception.message")
    427 	// A stacktrace as a string in the natural representation for the language
    428 	// runtime. The representation is to be determined and documented by each language
    429 	// SIG.
    430 	//
    431 	// Type: string
    432 	// Required: No
    433 	// Stability: stable
    434 	// Examples: 'Exception in thread "main" java.lang.RuntimeException: Test
    435 	// exception\\n at '
    436 	//  'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at '
    437 	//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at '
    438 	//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'
    439 	ExceptionStacktraceKey = attribute.Key("exception.stacktrace")
    440 	// SHOULD be set to true if the exception event is recorded at a point where it is
    441 	// known that the exception is escaping the scope of the span.
    442 	//
    443 	// Type: boolean
    444 	// Required: No
    445 	// Stability: stable
    446 	// Note: An exception is considered to have escaped (or left) the scope of a span,
    447 	// if that span is ended while the exception is still logically "in flight".
    448 	// This may be actually "in flight" in some languages (e.g. if the exception
    449 	// is passed to a Context manager's `__exit__` method in Python) but will
    450 	// usually be caught at the point of recording the exception in most languages.
    451 
    452 	// It is usually not possible to determine at the point where an exception is
    453 	// thrown
    454 	// whether it will escape the scope of a span.
    455 	// However, it is trivial to know that an exception
    456 	// will escape, if one checks for an active exception just before ending the span,
    457 	// as done in the [example above](#recording-an-exception).
    458 
    459 	// It follows that an exception may still escape the scope of the span
    460 	// even if the `exception.escaped` attribute was not set or set to false,
    461 	// since the event might have been recorded at a time where it was not
    462 	// clear whether the exception will escape.
    463 	ExceptionEscapedKey = attribute.Key("exception.escaped")
    464 )
    465 
    466 // This semantic convention describes an instance of a function that runs without provisioning or managing of servers (also known as serverless functions or Function as a Service (FaaS)) with spans.
    467 const (
    468 	// Type of the trigger which caused this function execution.
    469 	//
    470 	// Type: Enum
    471 	// Required: No
    472 	// Stability: stable
    473 	// Note: For the server/consumer span on the incoming side,
    474 	// `faas.trigger` MUST be set.
    475 
    476 	// Clients invoking FaaS instances usually cannot set `faas.trigger`,
    477 	// since they would typically need to look in the payload to determine
    478 	// the event type. If clients set it, it should be the same as the
    479 	// trigger that corresponding incoming would have (i.e., this has
    480 	// nothing to do with the underlying transport used to make the API
    481 	// call to invoke the lambda, which is often HTTP).
    482 	FaaSTriggerKey = attribute.Key("faas.trigger")
    483 	// The execution ID of the current function execution.
    484 	//
    485 	// Type: string
    486 	// Required: No
    487 	// Stability: stable
    488 	// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'
    489 	FaaSExecutionKey = attribute.Key("faas.execution")
    490 )
    491 
    492 var (
    493 	// A response to some data source operation such as a database or filesystem read/write
    494 	FaaSTriggerDatasource = FaaSTriggerKey.String("datasource")
    495 	// To provide an answer to an inbound HTTP request
    496 	FaaSTriggerHTTP = FaaSTriggerKey.String("http")
    497 	// A function is set to be executed when messages are sent to a messaging system
    498 	FaaSTriggerPubsub = FaaSTriggerKey.String("pubsub")
    499 	// A function is scheduled to be executed regularly
    500 	FaaSTriggerTimer = FaaSTriggerKey.String("timer")
    501 	// If none of the others apply
    502 	FaaSTriggerOther = FaaSTriggerKey.String("other")
    503 )
    504 
    505 // Semantic Convention for FaaS triggered as a response to some data source operation such as a database or filesystem read/write.
    506 const (
    507 	// The name of the source on which the triggering operation was performed. For
    508 	// example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos
    509 	// DB to the database name.
    510 	//
    511 	// Type: string
    512 	// Required: Always
    513 	// Stability: stable
    514 	// Examples: 'myBucketName', 'myDBName'
    515 	FaaSDocumentCollectionKey = attribute.Key("faas.document.collection")
    516 	// Describes the type of the operation that was performed on the data.
    517 	//
    518 	// Type: Enum
    519 	// Required: Always
    520 	// Stability: stable
    521 	FaaSDocumentOperationKey = attribute.Key("faas.document.operation")
    522 	// A string containing the time when the data was accessed in the [ISO
    523 	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed
    524 	// in [UTC](https://www.w3.org/TR/NOTE-datetime).
    525 	//
    526 	// Type: string
    527 	// Required: Always
    528 	// Stability: stable
    529 	// Examples: '2020-01-23T13:47:06Z'
    530 	FaaSDocumentTimeKey = attribute.Key("faas.document.time")
    531 	// The document name/table subjected to the operation. For example, in Cloud
    532 	// Storage or S3 is the name of the file, and in Cosmos DB the table name.
    533 	//
    534 	// Type: string
    535 	// Required: No
    536 	// Stability: stable
    537 	// Examples: 'myFile.txt', 'myTableName'
    538 	FaaSDocumentNameKey = attribute.Key("faas.document.name")
    539 )
    540 
    541 var (
    542 	// When a new object is created
    543 	FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert")
    544 	// When an object is modified
    545 	FaaSDocumentOperationEdit = FaaSDocumentOperationKey.String("edit")
    546 	// When an object is deleted
    547 	FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete")
    548 )
    549 
    550 // Semantic Convention for FaaS scheduled to be executed regularly.
    551 const (
    552 	// A string containing the function invocation time in the [ISO
    553 	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed
    554 	// in [UTC](https://www.w3.org/TR/NOTE-datetime).
    555 	//
    556 	// Type: string
    557 	// Required: Always
    558 	// Stability: stable
    559 	// Examples: '2020-01-23T13:47:06Z'
    560 	FaaSTimeKey = attribute.Key("faas.time")
    561 	// A string containing the schedule period as [Cron Expression](https://docs.oracl
    562 	// e.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
    563 	//
    564 	// Type: string
    565 	// Required: No
    566 	// Stability: stable
    567 	// Examples: '0/5 * * * ? *'
    568 	FaaSCronKey = attribute.Key("faas.cron")
    569 )
    570 
    571 // Contains additional attributes for incoming FaaS spans.
    572 const (
    573 	// A boolean that is true if the serverless function is executed for the first
    574 	// time (aka cold-start).
    575 	//
    576 	// Type: boolean
    577 	// Required: No
    578 	// Stability: stable
    579 	FaaSColdstartKey = attribute.Key("faas.coldstart")
    580 )
    581 
    582 // Contains additional attributes for outgoing FaaS spans.
    583 const (
    584 	// The name of the invoked function.
    585 	//
    586 	// Type: string
    587 	// Required: Always
    588 	// Stability: stable
    589 	// Examples: 'my-function'
    590 	// Note: SHOULD be equal to the `faas.name` resource attribute of the invoked
    591 	// function.
    592 	FaaSInvokedNameKey = attribute.Key("faas.invoked_name")
    593 	// The cloud provider of the invoked function.
    594 	//
    595 	// Type: Enum
    596 	// Required: Always
    597 	// Stability: stable
    598 	// Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked
    599 	// function.
    600 	FaaSInvokedProviderKey = attribute.Key("faas.invoked_provider")
    601 	// The cloud region of the invoked function.
    602 	//
    603 	// Type: string
    604 	// Required: For some cloud providers, like AWS or GCP, the region in which a
    605 	// function is hosted is essential to uniquely identify the function and also part
    606 	// of its endpoint. Since it's part of the endpoint being called, the region is
    607 	// always known to clients. In these cases, `faas.invoked_region` MUST be set
    608 	// accordingly. If the region is unknown to the client or not required for
    609 	// identifying the invoked function, setting `faas.invoked_region` is optional.
    610 	// Stability: stable
    611 	// Examples: 'eu-central-1'
    612 	// Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked
    613 	// function.
    614 	FaaSInvokedRegionKey = attribute.Key("faas.invoked_region")
    615 )
    616 
    617 var (
    618 	// Alibaba Cloud
    619 	FaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String("alibaba_cloud")
    620 	// Amazon Web Services
    621 	FaaSInvokedProviderAWS = FaaSInvokedProviderKey.String("aws")
    622 	// Microsoft Azure
    623 	FaaSInvokedProviderAzure = FaaSInvokedProviderKey.String("azure")
    624 	// Google Cloud Platform
    625 	FaaSInvokedProviderGCP = FaaSInvokedProviderKey.String("gcp")
    626 	// Tencent Cloud
    627 	FaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String("tencent_cloud")
    628 )
    629 
    630 // These attributes may be used for any network related operation.
    631 const (
    632 	// Transport protocol used. See note below.
    633 	//
    634 	// Type: Enum
    635 	// Required: No
    636 	// Stability: stable
    637 	NetTransportKey = attribute.Key("net.transport")
    638 	// Remote address of the peer (dotted decimal for IPv4 or
    639 	// [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6)
    640 	//
    641 	// Type: string
    642 	// Required: No
    643 	// Stability: stable
    644 	// Examples: '127.0.0.1'
    645 	NetPeerIPKey = attribute.Key("net.peer.ip")
    646 	// Remote port number.
    647 	//
    648 	// Type: int
    649 	// Required: No
    650 	// Stability: stable
    651 	// Examples: 80, 8080, 443
    652 	NetPeerPortKey = attribute.Key("net.peer.port")
    653 	// Remote hostname or similar, see note below.
    654 	//
    655 	// Type: string
    656 	// Required: No
    657 	// Stability: stable
    658 	// Examples: 'example.com'
    659 	// Note: `net.peer.name` SHOULD NOT be set if capturing it would require an extra
    660 	// DNS lookup.
    661 	NetPeerNameKey = attribute.Key("net.peer.name")
    662 	// Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.
    663 	//
    664 	// Type: string
    665 	// Required: No
    666 	// Stability: stable
    667 	// Examples: '192.168.0.1'
    668 	NetHostIPKey = attribute.Key("net.host.ip")
    669 	// Like `net.peer.port` but for the host port.
    670 	//
    671 	// Type: int
    672 	// Required: No
    673 	// Stability: stable
    674 	// Examples: 35555
    675 	NetHostPortKey = attribute.Key("net.host.port")
    676 	// Local hostname or similar, see note below.
    677 	//
    678 	// Type: string
    679 	// Required: No
    680 	// Stability: stable
    681 	// Examples: 'localhost'
    682 	NetHostNameKey = attribute.Key("net.host.name")
    683 	// The internet connection type currently being used by the host.
    684 	//
    685 	// Type: Enum
    686 	// Required: No
    687 	// Stability: stable
    688 	// Examples: 'wifi'
    689 	NetHostConnectionTypeKey = attribute.Key("net.host.connection.type")
    690 	// This describes more details regarding the connection.type. It may be the type
    691 	// of cell technology connection, but it could be used for describing details
    692 	// about a wifi connection.
    693 	//
    694 	// Type: Enum
    695 	// Required: No
    696 	// Stability: stable
    697 	// Examples: 'LTE'
    698 	NetHostConnectionSubtypeKey = attribute.Key("net.host.connection.subtype")
    699 	// The name of the mobile carrier.
    700 	//
    701 	// Type: string
    702 	// Required: No
    703 	// Stability: stable
    704 	// Examples: 'sprint'
    705 	NetHostCarrierNameKey = attribute.Key("net.host.carrier.name")
    706 	// The mobile carrier country code.
    707 	//
    708 	// Type: string
    709 	// Required: No
    710 	// Stability: stable
    711 	// Examples: '310'
    712 	NetHostCarrierMccKey = attribute.Key("net.host.carrier.mcc")
    713 	// The mobile carrier network code.
    714 	//
    715 	// Type: string
    716 	// Required: No
    717 	// Stability: stable
    718 	// Examples: '001'
    719 	NetHostCarrierMncKey = attribute.Key("net.host.carrier.mnc")
    720 	// The ISO 3166-1 alpha-2 2-character country code associated with the mobile
    721 	// carrier network.
    722 	//
    723 	// Type: string
    724 	// Required: No
    725 	// Stability: stable
    726 	// Examples: 'DE'
    727 	NetHostCarrierIccKey = attribute.Key("net.host.carrier.icc")
    728 )
    729 
    730 var (
    731 	// ip_tcp
    732 	NetTransportTCP = NetTransportKey.String("ip_tcp")
    733 	// ip_udp
    734 	NetTransportUDP = NetTransportKey.String("ip_udp")
    735 	// Another IP-based protocol
    736 	NetTransportIP = NetTransportKey.String("ip")
    737 	// Unix Domain socket. See below
    738 	NetTransportUnix = NetTransportKey.String("unix")
    739 	// Named or anonymous pipe. See note below
    740 	NetTransportPipe = NetTransportKey.String("pipe")
    741 	// In-process communication
    742 	NetTransportInProc = NetTransportKey.String("inproc")
    743 	// Something else (non IP-based)
    744 	NetTransportOther = NetTransportKey.String("other")
    745 )
    746 
    747 var (
    748 	// wifi
    749 	NetHostConnectionTypeWifi = NetHostConnectionTypeKey.String("wifi")
    750 	// wired
    751 	NetHostConnectionTypeWired = NetHostConnectionTypeKey.String("wired")
    752 	// cell
    753 	NetHostConnectionTypeCell = NetHostConnectionTypeKey.String("cell")
    754 	// unavailable
    755 	NetHostConnectionTypeUnavailable = NetHostConnectionTypeKey.String("unavailable")
    756 	// unknown
    757 	NetHostConnectionTypeUnknown = NetHostConnectionTypeKey.String("unknown")
    758 )
    759 
    760 var (
    761 	// GPRS
    762 	NetHostConnectionSubtypeGprs = NetHostConnectionSubtypeKey.String("gprs")
    763 	// EDGE
    764 	NetHostConnectionSubtypeEdge = NetHostConnectionSubtypeKey.String("edge")
    765 	// UMTS
    766 	NetHostConnectionSubtypeUmts = NetHostConnectionSubtypeKey.String("umts")
    767 	// CDMA
    768 	NetHostConnectionSubtypeCdma = NetHostConnectionSubtypeKey.String("cdma")
    769 	// EVDO Rel. 0
    770 	NetHostConnectionSubtypeEvdo0 = NetHostConnectionSubtypeKey.String("evdo_0")
    771 	// EVDO Rev. A
    772 	NetHostConnectionSubtypeEvdoA = NetHostConnectionSubtypeKey.String("evdo_a")
    773 	// CDMA2000 1XRTT
    774 	NetHostConnectionSubtypeCdma20001xrtt = NetHostConnectionSubtypeKey.String("cdma2000_1xrtt")
    775 	// HSDPA
    776 	NetHostConnectionSubtypeHsdpa = NetHostConnectionSubtypeKey.String("hsdpa")
    777 	// HSUPA
    778 	NetHostConnectionSubtypeHsupa = NetHostConnectionSubtypeKey.String("hsupa")
    779 	// HSPA
    780 	NetHostConnectionSubtypeHspa = NetHostConnectionSubtypeKey.String("hspa")
    781 	// IDEN
    782 	NetHostConnectionSubtypeIden = NetHostConnectionSubtypeKey.String("iden")
    783 	// EVDO Rev. B
    784 	NetHostConnectionSubtypeEvdoB = NetHostConnectionSubtypeKey.String("evdo_b")
    785 	// LTE
    786 	NetHostConnectionSubtypeLte = NetHostConnectionSubtypeKey.String("lte")
    787 	// EHRPD
    788 	NetHostConnectionSubtypeEhrpd = NetHostConnectionSubtypeKey.String("ehrpd")
    789 	// HSPAP
    790 	NetHostConnectionSubtypeHspap = NetHostConnectionSubtypeKey.String("hspap")
    791 	// GSM
    792 	NetHostConnectionSubtypeGsm = NetHostConnectionSubtypeKey.String("gsm")
    793 	// TD-SCDMA
    794 	NetHostConnectionSubtypeTdScdma = NetHostConnectionSubtypeKey.String("td_scdma")
    795 	// IWLAN
    796 	NetHostConnectionSubtypeIwlan = NetHostConnectionSubtypeKey.String("iwlan")
    797 	// 5G NR (New Radio)
    798 	NetHostConnectionSubtypeNr = NetHostConnectionSubtypeKey.String("nr")
    799 	// 5G NRNSA (New Radio Non-Standalone)
    800 	NetHostConnectionSubtypeNrnsa = NetHostConnectionSubtypeKey.String("nrnsa")
    801 	// LTE CA
    802 	NetHostConnectionSubtypeLteCa = NetHostConnectionSubtypeKey.String("lte_ca")
    803 )
    804 
    805 // Operations that access some remote service.
    806 const (
    807 	// The [`service.name`](../../resource/semantic_conventions/README.md#service) of
    808 	// the remote service. SHOULD be equal to the actual `service.name` resource
    809 	// attribute of the remote service if any.
    810 	//
    811 	// Type: string
    812 	// Required: No
    813 	// Stability: stable
    814 	// Examples: 'AuthTokenCache'
    815 	PeerServiceKey = attribute.Key("peer.service")
    816 )
    817 
    818 // These attributes may be used for any operation with an authenticated and/or authorized enduser.
    819 const (
    820 	// Username or client_id extracted from the access token or
    821 	// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the
    822 	// inbound request from outside the system.
    823 	//
    824 	// Type: string
    825 	// Required: No
    826 	// Stability: stable
    827 	// Examples: 'username'
    828 	EnduserIDKey = attribute.Key("enduser.id")
    829 	// Actual/assumed role the client is making the request under extracted from token
    830 	// or application security context.
    831 	//
    832 	// Type: string
    833 	// Required: No
    834 	// Stability: stable
    835 	// Examples: 'admin'
    836 	EnduserRoleKey = attribute.Key("enduser.role")
    837 	// Scopes or granted authorities the client currently possesses extracted from
    838 	// token or application security context. The value would come from the scope
    839 	// associated with an [OAuth 2.0 Access
    840 	// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value
    841 	// in a [SAML 2.0 Assertion](http://docs.oasis-
    842 	// open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
    843 	//
    844 	// Type: string
    845 	// Required: No
    846 	// Stability: stable
    847 	// Examples: 'read:message, write:files'
    848 	EnduserScopeKey = attribute.Key("enduser.scope")
    849 )
    850 
    851 // These attributes may be used for any operation to store information about a thread that started a span.
    852 const (
    853 	// Current "managed" thread ID (as opposed to OS thread ID).
    854 	//
    855 	// Type: int
    856 	// Required: No
    857 	// Stability: stable
    858 	// Examples: 42
    859 	ThreadIDKey = attribute.Key("thread.id")
    860 	// Current thread name.
    861 	//
    862 	// Type: string
    863 	// Required: No
    864 	// Stability: stable
    865 	// Examples: 'main'
    866 	ThreadNameKey = attribute.Key("thread.name")
    867 )
    868 
    869 // These attributes allow to report this unit of code and therefore to provide more context about the span.
    870 const (
    871 	// The method or function name, or equivalent (usually rightmost part of the code
    872 	// unit's name).
    873 	//
    874 	// Type: string
    875 	// Required: No
    876 	// Stability: stable
    877 	// Examples: 'serveRequest'
    878 	CodeFunctionKey = attribute.Key("code.function")
    879 	// The "namespace" within which `code.function` is defined. Usually the qualified
    880 	// class or module name, such that `code.namespace` + some separator +
    881 	// `code.function` form a unique identifier for the code unit.
    882 	//
    883 	// Type: string
    884 	// Required: No
    885 	// Stability: stable
    886 	// Examples: 'com.example.MyHTTPService'
    887 	CodeNamespaceKey = attribute.Key("code.namespace")
    888 	// The source code file name that identifies the code unit as uniquely as possible
    889 	// (preferably an absolute file path).
    890 	//
    891 	// Type: string
    892 	// Required: No
    893 	// Stability: stable
    894 	// Examples: '/usr/local/MyApplication/content_root/app/index.php'
    895 	CodeFilepathKey = attribute.Key("code.filepath")
    896 	// The line number in `code.filepath` best representing the operation. It SHOULD
    897 	// point within the code unit named in `code.function`.
    898 	//
    899 	// Type: int
    900 	// Required: No
    901 	// Stability: stable
    902 	// Examples: 42
    903 	CodeLineNumberKey = attribute.Key("code.lineno")
    904 )
    905 
    906 // This document defines semantic conventions for HTTP client and server Spans.
    907 const (
    908 	// HTTP request method.
    909 	//
    910 	// Type: string
    911 	// Required: Always
    912 	// Stability: stable
    913 	// Examples: 'GET', 'POST', 'HEAD'
    914 	HTTPMethodKey = attribute.Key("http.method")
    915 	// Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`.
    916 	// Usually the fragment is not transmitted over HTTP, but if it is known, it
    917 	// should be included nevertheless.
    918 	//
    919 	// Type: string
    920 	// Required: No
    921 	// Stability: stable
    922 	// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'
    923 	// Note: `http.url` MUST NOT contain credentials passed via URL in form of
    924 	// `https://username:password@www.example.com/`. In such case the attribute's
    925 	// value should be `https://www.example.com/`.
    926 	HTTPURLKey = attribute.Key("http.url")
    927 	// The full request target as passed in a HTTP request line or equivalent.
    928 	//
    929 	// Type: string
    930 	// Required: No
    931 	// Stability: stable
    932 	// Examples: '/path/12314/?q=ddds#123'
    933 	HTTPTargetKey = attribute.Key("http.target")
    934 	// The value of the [HTTP host
    935 	// header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header
    936 	// should also be reported, see note.
    937 	//
    938 	// Type: string
    939 	// Required: No
    940 	// Stability: stable
    941 	// Examples: 'www.example.org'
    942 	// Note: When the header is present but empty the attribute SHOULD be set to the
    943 	// empty string. Note that this is a valid situation that is expected in certain
    944 	// cases, according the aforementioned [section of RFC
    945 	// 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not
    946 	// set the attribute MUST NOT be set.
    947 	HTTPHostKey = attribute.Key("http.host")
    948 	// The URI scheme identifying the used protocol.
    949 	//
    950 	// Type: string
    951 	// Required: No
    952 	// Stability: stable
    953 	// Examples: 'http', 'https'
    954 	HTTPSchemeKey = attribute.Key("http.scheme")
    955 	// [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
    956 	//
    957 	// Type: int
    958 	// Required: If and only if one was received/sent.
    959 	// Stability: stable
    960 	// Examples: 200
    961 	HTTPStatusCodeKey = attribute.Key("http.status_code")
    962 	// Kind of HTTP protocol used.
    963 	//
    964 	// Type: Enum
    965 	// Required: No
    966 	// Stability: stable
    967 	// Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP`
    968 	// except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.
    969 	HTTPFlavorKey = attribute.Key("http.flavor")
    970 	// Value of the [HTTP User-
    971 	// Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the
    972 	// client.
    973 	//
    974 	// Type: string
    975 	// Required: No
    976 	// Stability: stable
    977 	// Examples: 'CERN-LineMode/2.15 libwww/2.17b3'
    978 	HTTPUserAgentKey = attribute.Key("http.user_agent")
    979 	// The size of the request payload body in bytes. This is the number of bytes
    980 	// transferred excluding headers and is often, but not always, present as the
    981 	// [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For
    982 	// requests using transport encoding, this should be the compressed size.
    983 	//
    984 	// Type: int
    985 	// Required: No
    986 	// Stability: stable
    987 	// Examples: 3495
    988 	HTTPRequestContentLengthKey = attribute.Key("http.request_content_length")
    989 	// The size of the uncompressed request payload body after transport decoding. Not
    990 	// set if transport encoding not used.
    991 	//
    992 	// Type: int
    993 	// Required: No
    994 	// Stability: stable
    995 	// Examples: 5493
    996 	HTTPRequestContentLengthUncompressedKey = attribute.Key("http.request_content_length_uncompressed")
    997 	// The size of the response payload body in bytes. This is the number of bytes
    998 	// transferred excluding headers and is often, but not always, present as the
    999 	// [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For
   1000 	// requests using transport encoding, this should be the compressed size.
   1001 	//
   1002 	// Type: int
   1003 	// Required: No
   1004 	// Stability: stable
   1005 	// Examples: 3495
   1006 	HTTPResponseContentLengthKey = attribute.Key("http.response_content_length")
   1007 	// The size of the uncompressed response payload body after transport decoding.
   1008 	// Not set if transport encoding not used.
   1009 	//
   1010 	// Type: int
   1011 	// Required: No
   1012 	// Stability: stable
   1013 	// Examples: 5493
   1014 	HTTPResponseContentLengthUncompressedKey = attribute.Key("http.response_content_length_uncompressed")
   1015 	// The ordinal number of request re-sending attempt.
   1016 	//
   1017 	// Type: int
   1018 	// Required: If and only if a request was retried.
   1019 	// Stability: stable
   1020 	// Examples: 3
   1021 	HTTPRetryCountKey = attribute.Key("http.retry_count")
   1022 )
   1023 
   1024 var (
   1025 	// HTTP/1.0
   1026 	HTTPFlavorHTTP10 = HTTPFlavorKey.String("1.0")
   1027 	// HTTP/1.1
   1028 	HTTPFlavorHTTP11 = HTTPFlavorKey.String("1.1")
   1029 	// HTTP/2
   1030 	HTTPFlavorHTTP20 = HTTPFlavorKey.String("2.0")
   1031 	// HTTP/3
   1032 	HTTPFlavorHTTP30 = HTTPFlavorKey.String("3.0")
   1033 	// SPDY protocol
   1034 	HTTPFlavorSPDY = HTTPFlavorKey.String("SPDY")
   1035 	// QUIC protocol
   1036 	HTTPFlavorQUIC = HTTPFlavorKey.String("QUIC")
   1037 )
   1038 
   1039 // Semantic Convention for HTTP Server
   1040 const (
   1041 	// The primary server name of the matched virtual host. This should be obtained
   1042 	// via configuration. If no such configuration can be obtained, this attribute
   1043 	// MUST NOT be set ( `net.host.name` should be used instead).
   1044 	//
   1045 	// Type: string
   1046 	// Required: No
   1047 	// Stability: stable
   1048 	// Examples: 'example.com'
   1049 	// Note: `http.url` is usually not readily available on the server side but would
   1050 	// have to be assembled in a cumbersome and sometimes lossy process from other
   1051 	// information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus
   1052 	// preferred to supply the raw data that is available.
   1053 	HTTPServerNameKey = attribute.Key("http.server_name")
   1054 	// The matched route (path template).
   1055 	//
   1056 	// Type: string
   1057 	// Required: No
   1058 	// Stability: stable
   1059 	// Examples: '/users/:userID?'
   1060 	HTTPRouteKey = attribute.Key("http.route")
   1061 	// The IP address of the original client behind all proxies, if known (e.g. from
   1062 	// [X-Forwarded-For](https://developer.mozilla.org/en-
   1063 	// US/docs/Web/HTTP/Headers/X-Forwarded-For)).
   1064 	//
   1065 	// Type: string
   1066 	// Required: No
   1067 	// Stability: stable
   1068 	// Examples: '83.164.160.102'
   1069 	// Note: This is not necessarily the same as `net.peer.ip`, which would
   1070 	// identify the network-level peer, which may be a proxy.
   1071 
   1072 	// This attribute should be set when a source of information different
   1073 	// from the one used for `net.peer.ip`, is available even if that other
   1074 	// source just confirms the same value as `net.peer.ip`.
   1075 	// Rationale: For `net.peer.ip`, one typically does not know if it
   1076 	// comes from a proxy, reverse proxy, or the actual client. Setting
   1077 	// `http.client_ip` when it's the same as `net.peer.ip` means that
   1078 	// one is at least somewhat confident that the address is not that of
   1079 	// the closest proxy.
   1080 	HTTPClientIPKey = attribute.Key("http.client_ip")
   1081 )
   1082 
   1083 // Attributes that exist for multiple DynamoDB request types.
   1084 const (
   1085 	// The keys in the `RequestItems` object field.
   1086 	//
   1087 	// Type: string[]
   1088 	// Required: No
   1089 	// Stability: stable
   1090 	// Examples: 'Users', 'Cats'
   1091 	AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names")
   1092 	// The JSON-serialized value of each item in the `ConsumedCapacity` response
   1093 	// field.
   1094 	//
   1095 	// Type: string[]
   1096 	// Required: No
   1097 	// Stability: stable
   1098 	// Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : {
   1099 	// "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits":
   1100 	// number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number,
   1101 	// "ReadCapacityUnits": number, "WriteCapacityUnits": number } },
   1102 	// "ReadCapacityUnits": number, "Table": { "CapacityUnits": number,
   1103 	// "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName":
   1104 	// "string", "WriteCapacityUnits": number }'
   1105 	AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity")
   1106 	// The JSON-serialized value of the `ItemCollectionMetrics` response field.
   1107 	//
   1108 	// Type: string
   1109 	// Required: No
   1110 	// Stability: stable
   1111 	// Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob,
   1112 	// "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" :
   1113 	// "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S":
   1114 	// "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }'
   1115 	AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics")
   1116 	// The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
   1117 	//
   1118 	// Type: double
   1119 	// Required: No
   1120 	// Stability: stable
   1121 	// Examples: 1.0, 2.0
   1122 	AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity")
   1123 	// The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
   1124 	//
   1125 	// Type: double
   1126 	// Required: No
   1127 	// Stability: stable
   1128 	// Examples: 1.0, 2.0
   1129 	AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity")
   1130 	// The value of the `ConsistentRead` request parameter.
   1131 	//
   1132 	// Type: boolean
   1133 	// Required: No
   1134 	// Stability: stable
   1135 	AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read")
   1136 	// The value of the `ProjectionExpression` request parameter.
   1137 	//
   1138 	// Type: string
   1139 	// Required: No
   1140 	// Stability: stable
   1141 	// Examples: 'Title', 'Title, Price, Color', 'Title, Description, RelatedItems,
   1142 	// ProductReviews'
   1143 	AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection")
   1144 	// The value of the `Limit` request parameter.
   1145 	//
   1146 	// Type: int
   1147 	// Required: No
   1148 	// Stability: stable
   1149 	// Examples: 10
   1150 	AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit")
   1151 	// The value of the `AttributesToGet` request parameter.
   1152 	//
   1153 	// Type: string[]
   1154 	// Required: No
   1155 	// Stability: stable
   1156 	// Examples: 'lives', 'id'
   1157 	AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get")
   1158 	// The value of the `IndexName` request parameter.
   1159 	//
   1160 	// Type: string
   1161 	// Required: No
   1162 	// Stability: stable
   1163 	// Examples: 'name_to_group'
   1164 	AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name")
   1165 	// The value of the `Select` request parameter.
   1166 	//
   1167 	// Type: string
   1168 	// Required: No
   1169 	// Stability: stable
   1170 	// Examples: 'ALL_ATTRIBUTES', 'COUNT'
   1171 	AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select")
   1172 )
   1173 
   1174 // DynamoDB.CreateTable
   1175 const (
   1176 	// The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request
   1177 	// field
   1178 	//
   1179 	// Type: string[]
   1180 	// Required: No
   1181 	// Stability: stable
   1182 	// Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string",
   1183 	// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
   1184 	// "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits":
   1185 	// number, "WriteCapacityUnits": number } }'
   1186 	AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes")
   1187 	// The JSON-serialized value of each item of the `LocalSecondaryIndexes` request
   1188 	// field.
   1189 	//
   1190 	// Type: string[]
   1191 	// Required: No
   1192 	// Stability: stable
   1193 	// Examples: '{ "IndexARN": "string", "IndexName": "string", "IndexSizeBytes":
   1194 	// number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string",
   1195 	// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
   1196 	// "ProjectionType": "string" } }'
   1197 	AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes")
   1198 )
   1199 
   1200 // DynamoDB.ListTables
   1201 const (
   1202 	// The value of the `ExclusiveStartTableName` request parameter.
   1203 	//
   1204 	// Type: string
   1205 	// Required: No
   1206 	// Stability: stable
   1207 	// Examples: 'Users', 'CatsTable'
   1208 	AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table")
   1209 	// The the number of items in the `TableNames` response parameter.
   1210 	//
   1211 	// Type: int
   1212 	// Required: No
   1213 	// Stability: stable
   1214 	// Examples: 20
   1215 	AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count")
   1216 )
   1217 
   1218 // DynamoDB.Query
   1219 const (
   1220 	// The value of the `ScanIndexForward` request parameter.
   1221 	//
   1222 	// Type: boolean
   1223 	// Required: No
   1224 	// Stability: stable
   1225 	AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward")
   1226 )
   1227 
   1228 // DynamoDB.Scan
   1229 const (
   1230 	// The value of the `Segment` request parameter.
   1231 	//
   1232 	// Type: int
   1233 	// Required: No
   1234 	// Stability: stable
   1235 	// Examples: 10
   1236 	AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment")
   1237 	// The value of the `TotalSegments` request parameter.
   1238 	//
   1239 	// Type: int
   1240 	// Required: No
   1241 	// Stability: stable
   1242 	// Examples: 100
   1243 	AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments")
   1244 	// The value of the `Count` response parameter.
   1245 	//
   1246 	// Type: int
   1247 	// Required: No
   1248 	// Stability: stable
   1249 	// Examples: 10
   1250 	AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count")
   1251 	// The value of the `ScannedCount` response parameter.
   1252 	//
   1253 	// Type: int
   1254 	// Required: No
   1255 	// Stability: stable
   1256 	// Examples: 50
   1257 	AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count")
   1258 )
   1259 
   1260 // DynamoDB.UpdateTable
   1261 const (
   1262 	// The JSON-serialized value of each item in the `AttributeDefinitions` request
   1263 	// field.
   1264 	//
   1265 	// Type: string[]
   1266 	// Required: No
   1267 	// Stability: stable
   1268 	// Examples: '{ "AttributeName": "string", "AttributeType": "string" }'
   1269 	AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions")
   1270 	// The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates`
   1271 	// request field.
   1272 	//
   1273 	// Type: string[]
   1274 	// Required: No
   1275 	// Stability: stable
   1276 	// Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ {
   1277 	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
   1278 	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" },
   1279 	// "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits":
   1280 	// number } }'
   1281 	AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates")
   1282 )
   1283 
   1284 // This document defines the attributes used in messaging systems.
   1285 const (
   1286 	// A string identifying the messaging system.
   1287 	//
   1288 	// Type: string
   1289 	// Required: Always
   1290 	// Stability: stable
   1291 	// Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS'
   1292 	MessagingSystemKey = attribute.Key("messaging.system")
   1293 	// The message destination name. This might be equal to the span name but is
   1294 	// required nevertheless.
   1295 	//
   1296 	// Type: string
   1297 	// Required: Always
   1298 	// Stability: stable
   1299 	// Examples: 'MyQueue', 'MyTopic'
   1300 	MessagingDestinationKey = attribute.Key("messaging.destination")
   1301 	// The kind of message destination
   1302 	//
   1303 	// Type: Enum
   1304 	// Required: Required only if the message destination is either a `queue` or
   1305 	// `topic`.
   1306 	// Stability: stable
   1307 	MessagingDestinationKindKey = attribute.Key("messaging.destination_kind")
   1308 	// A boolean that is true if the message destination is temporary.
   1309 	//
   1310 	// Type: boolean
   1311 	// Required: If missing, it is assumed to be false.
   1312 	// Stability: stable
   1313 	MessagingTempDestinationKey = attribute.Key("messaging.temp_destination")
   1314 	// The name of the transport protocol.
   1315 	//
   1316 	// Type: string
   1317 	// Required: No
   1318 	// Stability: stable
   1319 	// Examples: 'AMQP', 'MQTT'
   1320 	MessagingProtocolKey = attribute.Key("messaging.protocol")
   1321 	// The version of the transport protocol.
   1322 	//
   1323 	// Type: string
   1324 	// Required: No
   1325 	// Stability: stable
   1326 	// Examples: '0.9.1'
   1327 	MessagingProtocolVersionKey = attribute.Key("messaging.protocol_version")
   1328 	// Connection string.
   1329 	//
   1330 	// Type: string
   1331 	// Required: No
   1332 	// Stability: stable
   1333 	// Examples: 'tibjmsnaming://localhost:7222',
   1334 	// 'https://queue.amazonaws.com/80398EXAMPLE/MyQueue'
   1335 	MessagingURLKey = attribute.Key("messaging.url")
   1336 	// A value used by the messaging system as an identifier for the message,
   1337 	// represented as a string.
   1338 	//
   1339 	// Type: string
   1340 	// Required: No
   1341 	// Stability: stable
   1342 	// Examples: '452a7c7c7c7048c2f887f61572b18fc2'
   1343 	MessagingMessageIDKey = attribute.Key("messaging.message_id")
   1344 	// The [conversation ID](#conversations) identifying the conversation to which the
   1345 	// message belongs, represented as a string. Sometimes called "Correlation ID".
   1346 	//
   1347 	// Type: string
   1348 	// Required: No
   1349 	// Stability: stable
   1350 	// Examples: 'MyConversationID'
   1351 	MessagingConversationIDKey = attribute.Key("messaging.conversation_id")
   1352 	// The (uncompressed) size of the message payload in bytes. Also use this
   1353 	// attribute if it is unknown whether the compressed or uncompressed payload size
   1354 	// is reported.
   1355 	//
   1356 	// Type: int
   1357 	// Required: No
   1358 	// Stability: stable
   1359 	// Examples: 2738
   1360 	MessagingMessagePayloadSizeBytesKey = attribute.Key("messaging.message_payload_size_bytes")
   1361 	// The compressed size of the message payload in bytes.
   1362 	//
   1363 	// Type: int
   1364 	// Required: No
   1365 	// Stability: stable
   1366 	// Examples: 2048
   1367 	MessagingMessagePayloadCompressedSizeBytesKey = attribute.Key("messaging.message_payload_compressed_size_bytes")
   1368 )
   1369 
   1370 var (
   1371 	// A message sent to a queue
   1372 	MessagingDestinationKindQueue = MessagingDestinationKindKey.String("queue")
   1373 	// A message sent to a topic
   1374 	MessagingDestinationKindTopic = MessagingDestinationKindKey.String("topic")
   1375 )
   1376 
   1377 // Semantic convention for a consumer of messages received from a messaging system
   1378 const (
   1379 	// A string identifying the kind of message consumption as defined in the
   1380 	// [Operation names](#operation-names) section above. If the operation is "send",
   1381 	// this attribute MUST NOT be set, since the operation can be inferred from the
   1382 	// span kind in that case.
   1383 	//
   1384 	// Type: Enum
   1385 	// Required: No
   1386 	// Stability: stable
   1387 	MessagingOperationKey = attribute.Key("messaging.operation")
   1388 	// The identifier for the consumer receiving a message. For Kafka, set it to
   1389 	// `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are
   1390 	// present, or only `messaging.kafka.consumer_group`. For brokers, such as
   1391 	// RabbitMQ and Artemis, set it to the `client_id` of the client consuming the
   1392 	// message.
   1393 	//
   1394 	// Type: string
   1395 	// Required: No
   1396 	// Stability: stable
   1397 	// Examples: 'mygroup - client-6'
   1398 	MessagingConsumerIDKey = attribute.Key("messaging.consumer_id")
   1399 )
   1400 
   1401 var (
   1402 	// receive
   1403 	MessagingOperationReceive = MessagingOperationKey.String("receive")
   1404 	// process
   1405 	MessagingOperationProcess = MessagingOperationKey.String("process")
   1406 )
   1407 
   1408 // Attributes for RabbitMQ
   1409 const (
   1410 	// RabbitMQ message routing key.
   1411 	//
   1412 	// Type: string
   1413 	// Required: Unless it is empty.
   1414 	// Stability: stable
   1415 	// Examples: 'myKey'
   1416 	MessagingRabbitmqRoutingKeyKey = attribute.Key("messaging.rabbitmq.routing_key")
   1417 )
   1418 
   1419 // Attributes for Apache Kafka
   1420 const (
   1421 	// Message keys in Kafka are used for grouping alike messages to ensure they're
   1422 	// processed on the same partition. They differ from `messaging.message_id` in
   1423 	// that they're not unique. If the key is `null`, the attribute MUST NOT be set.
   1424 	//
   1425 	// Type: string
   1426 	// Required: No
   1427 	// Stability: stable
   1428 	// Examples: 'myKey'
   1429 	// Note: If the key type is not string, it's string representation has to be
   1430 	// supplied for the attribute. If the key has no unambiguous, canonical string
   1431 	// form, don't include its value.
   1432 	MessagingKafkaMessageKeyKey = attribute.Key("messaging.kafka.message_key")
   1433 	// Name of the Kafka Consumer Group that is handling the message. Only applies to
   1434 	// consumers, not producers.
   1435 	//
   1436 	// Type: string
   1437 	// Required: No
   1438 	// Stability: stable
   1439 	// Examples: 'my-group'
   1440 	MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer_group")
   1441 	// Client ID for the Consumer or Producer that is handling the message.
   1442 	//
   1443 	// Type: string
   1444 	// Required: No
   1445 	// Stability: stable
   1446 	// Examples: 'client-5'
   1447 	MessagingKafkaClientIDKey = attribute.Key("messaging.kafka.client_id")
   1448 	// Partition the message is sent to.
   1449 	//
   1450 	// Type: int
   1451 	// Required: No
   1452 	// Stability: stable
   1453 	// Examples: 2
   1454 	MessagingKafkaPartitionKey = attribute.Key("messaging.kafka.partition")
   1455 	// A boolean that is true if the message is a tombstone.
   1456 	//
   1457 	// Type: boolean
   1458 	// Required: If missing, it is assumed to be false.
   1459 	// Stability: stable
   1460 	MessagingKafkaTombstoneKey = attribute.Key("messaging.kafka.tombstone")
   1461 )
   1462 
   1463 // Attributes for Apache RocketMQ
   1464 const (
   1465 	// Namespace of RocketMQ resources, resources in different namespaces are
   1466 	// individual.
   1467 	//
   1468 	// Type: string
   1469 	// Required: Always
   1470 	// Stability: stable
   1471 	// Examples: 'myNamespace'
   1472 	MessagingRocketmqNamespaceKey = attribute.Key("messaging.rocketmq.namespace")
   1473 	// Name of the RocketMQ producer/consumer group that is handling the message. The
   1474 	// client type is identified by the SpanKind.
   1475 	//
   1476 	// Type: string
   1477 	// Required: Always
   1478 	// Stability: stable
   1479 	// Examples: 'myConsumerGroup'
   1480 	MessagingRocketmqClientGroupKey = attribute.Key("messaging.rocketmq.client_group")
   1481 	// The unique identifier for each client.
   1482 	//
   1483 	// Type: string
   1484 	// Required: Always
   1485 	// Stability: stable
   1486 	// Examples: 'myhost@8742@s8083jm'
   1487 	MessagingRocketmqClientIDKey = attribute.Key("messaging.rocketmq.client_id")
   1488 	// Type of message.
   1489 	//
   1490 	// Type: Enum
   1491 	// Required: No
   1492 	// Stability: stable
   1493 	MessagingRocketmqMessageTypeKey = attribute.Key("messaging.rocketmq.message_type")
   1494 	// The secondary classifier of message besides topic.
   1495 	//
   1496 	// Type: string
   1497 	// Required: No
   1498 	// Stability: stable
   1499 	// Examples: 'tagA'
   1500 	MessagingRocketmqMessageTagKey = attribute.Key("messaging.rocketmq.message_tag")
   1501 	// Key(s) of message, another way to mark message besides message id.
   1502 	//
   1503 	// Type: string[]
   1504 	// Required: No
   1505 	// Stability: stable
   1506 	// Examples: 'keyA', 'keyB'
   1507 	MessagingRocketmqMessageKeysKey = attribute.Key("messaging.rocketmq.message_keys")
   1508 	// Model of message consumption. This only applies to consumer spans.
   1509 	//
   1510 	// Type: Enum
   1511 	// Required: No
   1512 	// Stability: stable
   1513 	MessagingRocketmqConsumptionModelKey = attribute.Key("messaging.rocketmq.consumption_model")
   1514 )
   1515 
   1516 var (
   1517 	// Normal message
   1518 	MessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String("normal")
   1519 	// FIFO message
   1520 	MessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String("fifo")
   1521 	// Delay message
   1522 	MessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String("delay")
   1523 	// Transaction message
   1524 	MessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String("transaction")
   1525 )
   1526 
   1527 var (
   1528 	// Clustering consumption model
   1529 	MessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String("clustering")
   1530 	// Broadcasting consumption model
   1531 	MessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String("broadcasting")
   1532 )
   1533 
   1534 // This document defines semantic conventions for remote procedure calls.
   1535 const (
   1536 	// A string identifying the remoting system. See below for a list of well-known
   1537 	// identifiers.
   1538 	//
   1539 	// Type: Enum
   1540 	// Required: Always
   1541 	// Stability: stable
   1542 	RPCSystemKey = attribute.Key("rpc.system")
   1543 	// The full (logical) name of the service being called, including its package
   1544 	// name, if applicable.
   1545 	//
   1546 	// Type: string
   1547 	// Required: No, but recommended
   1548 	// Stability: stable
   1549 	// Examples: 'myservice.EchoService'
   1550 	// Note: This is the logical name of the service from the RPC interface
   1551 	// perspective, which can be different from the name of any implementing class.
   1552 	// The `code.namespace` attribute may be used to store the latter (despite the
   1553 	// attribute name, it may include a class name; e.g., class with method actually
   1554 	// executing the call on the server side, RPC client stub class on the client
   1555 	// side).
   1556 	RPCServiceKey = attribute.Key("rpc.service")
   1557 	// The name of the (logical) method being called, must be equal to the $method
   1558 	// part in the span name.
   1559 	//
   1560 	// Type: string
   1561 	// Required: No, but recommended
   1562 	// Stability: stable
   1563 	// Examples: 'exampleMethod'
   1564 	// Note: This is the logical name of the method from the RPC interface
   1565 	// perspective, which can be different from the name of any implementing
   1566 	// method/function. The `code.function` attribute may be used to store the latter
   1567 	// (e.g., method actually executing the call on the server side, RPC client stub
   1568 	// method on the client side).
   1569 	RPCMethodKey = attribute.Key("rpc.method")
   1570 )
   1571 
   1572 var (
   1573 	// gRPC
   1574 	RPCSystemGRPC = RPCSystemKey.String("grpc")
   1575 	// Java RMI
   1576 	RPCSystemJavaRmi = RPCSystemKey.String("java_rmi")
   1577 	// .NET WCF
   1578 	RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf")
   1579 	// Apache Dubbo
   1580 	RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo")
   1581 )
   1582 
   1583 // Tech-specific attributes for gRPC.
   1584 const (
   1585 	// The [numeric status
   1586 	// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC
   1587 	// request.
   1588 	//
   1589 	// Type: Enum
   1590 	// Required: Always
   1591 	// Stability: stable
   1592 	RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
   1593 )
   1594 
   1595 var (
   1596 	// OK
   1597 	RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)
   1598 	// CANCELLED
   1599 	RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)
   1600 	// UNKNOWN
   1601 	RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)
   1602 	// INVALID_ARGUMENT
   1603 	RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)
   1604 	// DEADLINE_EXCEEDED
   1605 	RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)
   1606 	// NOT_FOUND
   1607 	RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)
   1608 	// ALREADY_EXISTS
   1609 	RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)
   1610 	// PERMISSION_DENIED
   1611 	RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)
   1612 	// RESOURCE_EXHAUSTED
   1613 	RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)
   1614 	// FAILED_PRECONDITION
   1615 	RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)
   1616 	// ABORTED
   1617 	RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)
   1618 	// OUT_OF_RANGE
   1619 	RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)
   1620 	// UNIMPLEMENTED
   1621 	RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)
   1622 	// INTERNAL
   1623 	RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)
   1624 	// UNAVAILABLE
   1625 	RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)
   1626 	// DATA_LOSS
   1627 	RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)
   1628 	// UNAUTHENTICATED
   1629 	RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)
   1630 )
   1631 
   1632 // Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).
   1633 const (
   1634 	// Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC
   1635 	// 1.0 does not specify this, the value can be omitted.
   1636 	//
   1637 	// Type: string
   1638 	// Required: If missing, it is assumed to be "1.0".
   1639 	// Stability: stable
   1640 	// Examples: '2.0', '1.0'
   1641 	RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
   1642 	// `id` property of request or response. Since protocol allows id to be int,
   1643 	// string, `null` or missing (for notifications), value is expected to be cast to
   1644 	// string for simplicity. Use empty string in case of `null` value. Omit entirely
   1645 	// if this is a notification.
   1646 	//
   1647 	// Type: string
   1648 	// Required: No
   1649 	// Stability: stable
   1650 	// Examples: '10', 'request-7', ''
   1651 	RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
   1652 	// `error.code` property of response if it is an error response.
   1653 	//
   1654 	// Type: int
   1655 	// Required: If missing, response is assumed to be successful.
   1656 	// Stability: stable
   1657 	// Examples: -32700, 100
   1658 	RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
   1659 	// `error.message` property of response if it is an error response.
   1660 	//
   1661 	// Type: string
   1662 	// Required: No
   1663 	// Stability: stable
   1664 	// Examples: 'Parse error', 'User already exists'
   1665 	RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
   1666 )
   1667 
   1668 // RPC received/sent message.
   1669 const (
   1670 	// Whether this is a received or sent message.
   1671 	//
   1672 	// Type: Enum
   1673 	// Required: No
   1674 	// Stability: stable
   1675 	MessageTypeKey = attribute.Key("message.type")
   1676 	// MUST be calculated as two different counters starting from `1` one for sent
   1677 	// messages and one for received message.
   1678 	//
   1679 	// Type: int
   1680 	// Required: No
   1681 	// Stability: stable
   1682 	// Note: This way we guarantee that the values will be consistent between
   1683 	// different implementations.
   1684 	MessageIDKey = attribute.Key("message.id")
   1685 	// Compressed size of the message in bytes.
   1686 	//
   1687 	// Type: int
   1688 	// Required: No
   1689 	// Stability: stable
   1690 	MessageCompressedSizeKey = attribute.Key("message.compressed_size")
   1691 	// Uncompressed size of the message in bytes.
   1692 	//
   1693 	// Type: int
   1694 	// Required: No
   1695 	// Stability: stable
   1696 	MessageUncompressedSizeKey = attribute.Key("message.uncompressed_size")
   1697 )
   1698 
   1699 var (
   1700 	// sent
   1701 	MessageTypeSent = MessageTypeKey.String("SENT")
   1702 	// received
   1703 	MessageTypeReceived = MessageTypeKey.String("RECEIVED")
   1704 )