gtsocial-umbx

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

trace.go (61010B)


      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.10.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 	NetPeerNameKey = attribute.Key("net.peer.name")
    660 	// Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.
    661 	//
    662 	// Type: string
    663 	// Required: No
    664 	// Stability: stable
    665 	// Examples: '192.168.0.1'
    666 	NetHostIPKey = attribute.Key("net.host.ip")
    667 	// Like `net.peer.port` but for the host port.
    668 	//
    669 	// Type: int
    670 	// Required: No
    671 	// Stability: stable
    672 	// Examples: 35555
    673 	NetHostPortKey = attribute.Key("net.host.port")
    674 	// Local hostname or similar, see note below.
    675 	//
    676 	// Type: string
    677 	// Required: No
    678 	// Stability: stable
    679 	// Examples: 'localhost'
    680 	NetHostNameKey = attribute.Key("net.host.name")
    681 	// The internet connection type currently being used by the host.
    682 	//
    683 	// Type: Enum
    684 	// Required: No
    685 	// Stability: stable
    686 	// Examples: 'wifi'
    687 	NetHostConnectionTypeKey = attribute.Key("net.host.connection.type")
    688 	// This describes more details regarding the connection.type. It may be the type
    689 	// of cell technology connection, but it could be used for describing details
    690 	// about a wifi connection.
    691 	//
    692 	// Type: Enum
    693 	// Required: No
    694 	// Stability: stable
    695 	// Examples: 'LTE'
    696 	NetHostConnectionSubtypeKey = attribute.Key("net.host.connection.subtype")
    697 	// The name of the mobile carrier.
    698 	//
    699 	// Type: string
    700 	// Required: No
    701 	// Stability: stable
    702 	// Examples: 'sprint'
    703 	NetHostCarrierNameKey = attribute.Key("net.host.carrier.name")
    704 	// The mobile carrier country code.
    705 	//
    706 	// Type: string
    707 	// Required: No
    708 	// Stability: stable
    709 	// Examples: '310'
    710 	NetHostCarrierMccKey = attribute.Key("net.host.carrier.mcc")
    711 	// The mobile carrier network code.
    712 	//
    713 	// Type: string
    714 	// Required: No
    715 	// Stability: stable
    716 	// Examples: '001'
    717 	NetHostCarrierMncKey = attribute.Key("net.host.carrier.mnc")
    718 	// The ISO 3166-1 alpha-2 2-character country code associated with the mobile
    719 	// carrier network.
    720 	//
    721 	// Type: string
    722 	// Required: No
    723 	// Stability: stable
    724 	// Examples: 'DE'
    725 	NetHostCarrierIccKey = attribute.Key("net.host.carrier.icc")
    726 )
    727 
    728 var (
    729 	// ip_tcp
    730 	NetTransportTCP = NetTransportKey.String("ip_tcp")
    731 	// ip_udp
    732 	NetTransportUDP = NetTransportKey.String("ip_udp")
    733 	// Another IP-based protocol
    734 	NetTransportIP = NetTransportKey.String("ip")
    735 	// Unix Domain socket. See below
    736 	NetTransportUnix = NetTransportKey.String("unix")
    737 	// Named or anonymous pipe. See note below
    738 	NetTransportPipe = NetTransportKey.String("pipe")
    739 	// In-process communication
    740 	NetTransportInProc = NetTransportKey.String("inproc")
    741 	// Something else (non IP-based)
    742 	NetTransportOther = NetTransportKey.String("other")
    743 )
    744 
    745 var (
    746 	// wifi
    747 	NetHostConnectionTypeWifi = NetHostConnectionTypeKey.String("wifi")
    748 	// wired
    749 	NetHostConnectionTypeWired = NetHostConnectionTypeKey.String("wired")
    750 	// cell
    751 	NetHostConnectionTypeCell = NetHostConnectionTypeKey.String("cell")
    752 	// unavailable
    753 	NetHostConnectionTypeUnavailable = NetHostConnectionTypeKey.String("unavailable")
    754 	// unknown
    755 	NetHostConnectionTypeUnknown = NetHostConnectionTypeKey.String("unknown")
    756 )
    757 
    758 var (
    759 	// GPRS
    760 	NetHostConnectionSubtypeGprs = NetHostConnectionSubtypeKey.String("gprs")
    761 	// EDGE
    762 	NetHostConnectionSubtypeEdge = NetHostConnectionSubtypeKey.String("edge")
    763 	// UMTS
    764 	NetHostConnectionSubtypeUmts = NetHostConnectionSubtypeKey.String("umts")
    765 	// CDMA
    766 	NetHostConnectionSubtypeCdma = NetHostConnectionSubtypeKey.String("cdma")
    767 	// EVDO Rel. 0
    768 	NetHostConnectionSubtypeEvdo0 = NetHostConnectionSubtypeKey.String("evdo_0")
    769 	// EVDO Rev. A
    770 	NetHostConnectionSubtypeEvdoA = NetHostConnectionSubtypeKey.String("evdo_a")
    771 	// CDMA2000 1XRTT
    772 	NetHostConnectionSubtypeCdma20001xrtt = NetHostConnectionSubtypeKey.String("cdma2000_1xrtt")
    773 	// HSDPA
    774 	NetHostConnectionSubtypeHsdpa = NetHostConnectionSubtypeKey.String("hsdpa")
    775 	// HSUPA
    776 	NetHostConnectionSubtypeHsupa = NetHostConnectionSubtypeKey.String("hsupa")
    777 	// HSPA
    778 	NetHostConnectionSubtypeHspa = NetHostConnectionSubtypeKey.String("hspa")
    779 	// IDEN
    780 	NetHostConnectionSubtypeIden = NetHostConnectionSubtypeKey.String("iden")
    781 	// EVDO Rev. B
    782 	NetHostConnectionSubtypeEvdoB = NetHostConnectionSubtypeKey.String("evdo_b")
    783 	// LTE
    784 	NetHostConnectionSubtypeLte = NetHostConnectionSubtypeKey.String("lte")
    785 	// EHRPD
    786 	NetHostConnectionSubtypeEhrpd = NetHostConnectionSubtypeKey.String("ehrpd")
    787 	// HSPAP
    788 	NetHostConnectionSubtypeHspap = NetHostConnectionSubtypeKey.String("hspap")
    789 	// GSM
    790 	NetHostConnectionSubtypeGsm = NetHostConnectionSubtypeKey.String("gsm")
    791 	// TD-SCDMA
    792 	NetHostConnectionSubtypeTdScdma = NetHostConnectionSubtypeKey.String("td_scdma")
    793 	// IWLAN
    794 	NetHostConnectionSubtypeIwlan = NetHostConnectionSubtypeKey.String("iwlan")
    795 	// 5G NR (New Radio)
    796 	NetHostConnectionSubtypeNr = NetHostConnectionSubtypeKey.String("nr")
    797 	// 5G NRNSA (New Radio Non-Standalone)
    798 	NetHostConnectionSubtypeNrnsa = NetHostConnectionSubtypeKey.String("nrnsa")
    799 	// LTE CA
    800 	NetHostConnectionSubtypeLteCa = NetHostConnectionSubtypeKey.String("lte_ca")
    801 )
    802 
    803 // Operations that access some remote service.
    804 const (
    805 	// The [`service.name`](../../resource/semantic_conventions/README.md#service) of
    806 	// the remote service. SHOULD be equal to the actual `service.name` resource
    807 	// attribute of the remote service if any.
    808 	//
    809 	// Type: string
    810 	// Required: No
    811 	// Stability: stable
    812 	// Examples: 'AuthTokenCache'
    813 	PeerServiceKey = attribute.Key("peer.service")
    814 )
    815 
    816 // These attributes may be used for any operation with an authenticated and/or authorized enduser.
    817 const (
    818 	// Username or client_id extracted from the access token or
    819 	// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the
    820 	// inbound request from outside the system.
    821 	//
    822 	// Type: string
    823 	// Required: No
    824 	// Stability: stable
    825 	// Examples: 'username'
    826 	EnduserIDKey = attribute.Key("enduser.id")
    827 	// Actual/assumed role the client is making the request under extracted from token
    828 	// or application security context.
    829 	//
    830 	// Type: string
    831 	// Required: No
    832 	// Stability: stable
    833 	// Examples: 'admin'
    834 	EnduserRoleKey = attribute.Key("enduser.role")
    835 	// Scopes or granted authorities the client currently possesses extracted from
    836 	// token or application security context. The value would come from the scope
    837 	// associated with an [OAuth 2.0 Access
    838 	// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value
    839 	// in a [SAML 2.0 Assertion](http://docs.oasis-
    840 	// open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
    841 	//
    842 	// Type: string
    843 	// Required: No
    844 	// Stability: stable
    845 	// Examples: 'read:message, write:files'
    846 	EnduserScopeKey = attribute.Key("enduser.scope")
    847 )
    848 
    849 // These attributes may be used for any operation to store information about a thread that started a span.
    850 const (
    851 	// Current "managed" thread ID (as opposed to OS thread ID).
    852 	//
    853 	// Type: int
    854 	// Required: No
    855 	// Stability: stable
    856 	// Examples: 42
    857 	ThreadIDKey = attribute.Key("thread.id")
    858 	// Current thread name.
    859 	//
    860 	// Type: string
    861 	// Required: No
    862 	// Stability: stable
    863 	// Examples: 'main'
    864 	ThreadNameKey = attribute.Key("thread.name")
    865 )
    866 
    867 // These attributes allow to report this unit of code and therefore to provide more context about the span.
    868 const (
    869 	// The method or function name, or equivalent (usually rightmost part of the code
    870 	// unit's name).
    871 	//
    872 	// Type: string
    873 	// Required: No
    874 	// Stability: stable
    875 	// Examples: 'serveRequest'
    876 	CodeFunctionKey = attribute.Key("code.function")
    877 	// The "namespace" within which `code.function` is defined. Usually the qualified
    878 	// class or module name, such that `code.namespace` + some separator +
    879 	// `code.function` form a unique identifier for the code unit.
    880 	//
    881 	// Type: string
    882 	// Required: No
    883 	// Stability: stable
    884 	// Examples: 'com.example.MyHTTPService'
    885 	CodeNamespaceKey = attribute.Key("code.namespace")
    886 	// The source code file name that identifies the code unit as uniquely as possible
    887 	// (preferably an absolute file path).
    888 	//
    889 	// Type: string
    890 	// Required: No
    891 	// Stability: stable
    892 	// Examples: '/usr/local/MyApplication/content_root/app/index.php'
    893 	CodeFilepathKey = attribute.Key("code.filepath")
    894 	// The line number in `code.filepath` best representing the operation. It SHOULD
    895 	// point within the code unit named in `code.function`.
    896 	//
    897 	// Type: int
    898 	// Required: No
    899 	// Stability: stable
    900 	// Examples: 42
    901 	CodeLineNumberKey = attribute.Key("code.lineno")
    902 )
    903 
    904 // This document defines semantic conventions for HTTP client and server Spans.
    905 const (
    906 	// HTTP request method.
    907 	//
    908 	// Type: string
    909 	// Required: Always
    910 	// Stability: stable
    911 	// Examples: 'GET', 'POST', 'HEAD'
    912 	HTTPMethodKey = attribute.Key("http.method")
    913 	// Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`.
    914 	// Usually the fragment is not transmitted over HTTP, but if it is known, it
    915 	// should be included nevertheless.
    916 	//
    917 	// Type: string
    918 	// Required: No
    919 	// Stability: stable
    920 	// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'
    921 	// Note: `http.url` MUST NOT contain credentials passed via URL in form of
    922 	// `https://username:password@www.example.com/`. In such case the attribute's
    923 	// value should be `https://www.example.com/`.
    924 	HTTPURLKey = attribute.Key("http.url")
    925 	// The full request target as passed in a HTTP request line or equivalent.
    926 	//
    927 	// Type: string
    928 	// Required: No
    929 	// Stability: stable
    930 	// Examples: '/path/12314/?q=ddds#123'
    931 	HTTPTargetKey = attribute.Key("http.target")
    932 	// The value of the [HTTP host
    933 	// header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header
    934 	// should also be reported, see note.
    935 	//
    936 	// Type: string
    937 	// Required: No
    938 	// Stability: stable
    939 	// Examples: 'www.example.org'
    940 	// Note: When the header is present but empty the attribute SHOULD be set to the
    941 	// empty string. Note that this is a valid situation that is expected in certain
    942 	// cases, according the aforementioned [section of RFC
    943 	// 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not
    944 	// set the attribute MUST NOT be set.
    945 	HTTPHostKey = attribute.Key("http.host")
    946 	// The URI scheme identifying the used protocol.
    947 	//
    948 	// Type: string
    949 	// Required: No
    950 	// Stability: stable
    951 	// Examples: 'http', 'https'
    952 	HTTPSchemeKey = attribute.Key("http.scheme")
    953 	// [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
    954 	//
    955 	// Type: int
    956 	// Required: If and only if one was received/sent.
    957 	// Stability: stable
    958 	// Examples: 200
    959 	HTTPStatusCodeKey = attribute.Key("http.status_code")
    960 	// Kind of HTTP protocol used.
    961 	//
    962 	// Type: Enum
    963 	// Required: No
    964 	// Stability: stable
    965 	// Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP`
    966 	// except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.
    967 	HTTPFlavorKey = attribute.Key("http.flavor")
    968 	// Value of the [HTTP User-
    969 	// Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the
    970 	// client.
    971 	//
    972 	// Type: string
    973 	// Required: No
    974 	// Stability: stable
    975 	// Examples: 'CERN-LineMode/2.15 libwww/2.17b3'
    976 	HTTPUserAgentKey = attribute.Key("http.user_agent")
    977 	// The size of the request payload body in bytes. This is the number of bytes
    978 	// transferred excluding headers and is often, but not always, present as the
    979 	// [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For
    980 	// requests using transport encoding, this should be the compressed size.
    981 	//
    982 	// Type: int
    983 	// Required: No
    984 	// Stability: stable
    985 	// Examples: 3495
    986 	HTTPRequestContentLengthKey = attribute.Key("http.request_content_length")
    987 	// The size of the uncompressed request payload body after transport decoding. Not
    988 	// set if transport encoding not used.
    989 	//
    990 	// Type: int
    991 	// Required: No
    992 	// Stability: stable
    993 	// Examples: 5493
    994 	HTTPRequestContentLengthUncompressedKey = attribute.Key("http.request_content_length_uncompressed")
    995 	// The size of the response payload body in bytes. This is the number of bytes
    996 	// transferred excluding headers and is often, but not always, present as the
    997 	// [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For
    998 	// requests using transport encoding, this should be the compressed size.
    999 	//
   1000 	// Type: int
   1001 	// Required: No
   1002 	// Stability: stable
   1003 	// Examples: 3495
   1004 	HTTPResponseContentLengthKey = attribute.Key("http.response_content_length")
   1005 	// The size of the uncompressed response payload body after transport decoding.
   1006 	// Not set if transport encoding not used.
   1007 	//
   1008 	// Type: int
   1009 	// Required: No
   1010 	// Stability: stable
   1011 	// Examples: 5493
   1012 	HTTPResponseContentLengthUncompressedKey = attribute.Key("http.response_content_length_uncompressed")
   1013 	// The ordinal number of request re-sending attempt.
   1014 	//
   1015 	// Type: int
   1016 	// Required: If and only if a request was retried.
   1017 	// Stability: stable
   1018 	// Examples: 3
   1019 	HTTPRetryCountKey = attribute.Key("http.retry_count")
   1020 )
   1021 
   1022 var (
   1023 	// HTTP 1.0
   1024 	HTTPFlavorHTTP10 = HTTPFlavorKey.String("1.0")
   1025 	// HTTP 1.1
   1026 	HTTPFlavorHTTP11 = HTTPFlavorKey.String("1.1")
   1027 	// HTTP 2
   1028 	HTTPFlavorHTTP20 = HTTPFlavorKey.String("2.0")
   1029 	// SPDY protocol
   1030 	HTTPFlavorSPDY = HTTPFlavorKey.String("SPDY")
   1031 	// QUIC protocol
   1032 	HTTPFlavorQUIC = HTTPFlavorKey.String("QUIC")
   1033 )
   1034 
   1035 // Semantic Convention for HTTP Server
   1036 const (
   1037 	// The primary server name of the matched virtual host. This should be obtained
   1038 	// via configuration. If no such configuration can be obtained, this attribute
   1039 	// MUST NOT be set ( `net.host.name` should be used instead).
   1040 	//
   1041 	// Type: string
   1042 	// Required: No
   1043 	// Stability: stable
   1044 	// Examples: 'example.com'
   1045 	// Note: `http.url` is usually not readily available on the server side but would
   1046 	// have to be assembled in a cumbersome and sometimes lossy process from other
   1047 	// information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus
   1048 	// preferred to supply the raw data that is available.
   1049 	HTTPServerNameKey = attribute.Key("http.server_name")
   1050 	// The matched route (path template).
   1051 	//
   1052 	// Type: string
   1053 	// Required: No
   1054 	// Stability: stable
   1055 	// Examples: '/users/:userID?'
   1056 	HTTPRouteKey = attribute.Key("http.route")
   1057 	// The IP address of the original client behind all proxies, if known (e.g. from
   1058 	// [X-Forwarded-For](https://developer.mozilla.org/en-
   1059 	// US/docs/Web/HTTP/Headers/X-Forwarded-For)).
   1060 	//
   1061 	// Type: string
   1062 	// Required: No
   1063 	// Stability: stable
   1064 	// Examples: '83.164.160.102'
   1065 	// Note: This is not necessarily the same as `net.peer.ip`, which would
   1066 	// identify the network-level peer, which may be a proxy.
   1067 
   1068 	// This attribute should be set when a source of information different
   1069 	// from the one used for `net.peer.ip`, is available even if that other
   1070 	// source just confirms the same value as `net.peer.ip`.
   1071 	// Rationale: For `net.peer.ip`, one typically does not know if it
   1072 	// comes from a proxy, reverse proxy, or the actual client. Setting
   1073 	// `http.client_ip` when it's the same as `net.peer.ip` means that
   1074 	// one is at least somewhat confident that the address is not that of
   1075 	// the closest proxy.
   1076 	HTTPClientIPKey = attribute.Key("http.client_ip")
   1077 )
   1078 
   1079 // Attributes that exist for multiple DynamoDB request types.
   1080 const (
   1081 	// The keys in the `RequestItems` object field.
   1082 	//
   1083 	// Type: string[]
   1084 	// Required: No
   1085 	// Stability: stable
   1086 	// Examples: 'Users', 'Cats'
   1087 	AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names")
   1088 	// The JSON-serialized value of each item in the `ConsumedCapacity` response
   1089 	// field.
   1090 	//
   1091 	// Type: string[]
   1092 	// Required: No
   1093 	// Stability: stable
   1094 	// Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : {
   1095 	// "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits":
   1096 	// number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number,
   1097 	// "ReadCapacityUnits": number, "WriteCapacityUnits": number } },
   1098 	// "ReadCapacityUnits": number, "Table": { "CapacityUnits": number,
   1099 	// "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName":
   1100 	// "string", "WriteCapacityUnits": number }'
   1101 	AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity")
   1102 	// The JSON-serialized value of the `ItemCollectionMetrics` response field.
   1103 	//
   1104 	// Type: string
   1105 	// Required: No
   1106 	// Stability: stable
   1107 	// Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob,
   1108 	// "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" :
   1109 	// "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S":
   1110 	// "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }'
   1111 	AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics")
   1112 	// The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
   1113 	//
   1114 	// Type: double
   1115 	// Required: No
   1116 	// Stability: stable
   1117 	// Examples: 1.0, 2.0
   1118 	AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity")
   1119 	// The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
   1120 	//
   1121 	// Type: double
   1122 	// Required: No
   1123 	// Stability: stable
   1124 	// Examples: 1.0, 2.0
   1125 	AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity")
   1126 	// The value of the `ConsistentRead` request parameter.
   1127 	//
   1128 	// Type: boolean
   1129 	// Required: No
   1130 	// Stability: stable
   1131 	AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read")
   1132 	// The value of the `ProjectionExpression` request parameter.
   1133 	//
   1134 	// Type: string
   1135 	// Required: No
   1136 	// Stability: stable
   1137 	// Examples: 'Title', 'Title, Price, Color', 'Title, Description, RelatedItems,
   1138 	// ProductReviews'
   1139 	AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection")
   1140 	// The value of the `Limit` request parameter.
   1141 	//
   1142 	// Type: int
   1143 	// Required: No
   1144 	// Stability: stable
   1145 	// Examples: 10
   1146 	AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit")
   1147 	// The value of the `AttributesToGet` request parameter.
   1148 	//
   1149 	// Type: string[]
   1150 	// Required: No
   1151 	// Stability: stable
   1152 	// Examples: 'lives', 'id'
   1153 	AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get")
   1154 	// The value of the `IndexName` request parameter.
   1155 	//
   1156 	// Type: string
   1157 	// Required: No
   1158 	// Stability: stable
   1159 	// Examples: 'name_to_group'
   1160 	AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name")
   1161 	// The value of the `Select` request parameter.
   1162 	//
   1163 	// Type: string
   1164 	// Required: No
   1165 	// Stability: stable
   1166 	// Examples: 'ALL_ATTRIBUTES', 'COUNT'
   1167 	AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select")
   1168 )
   1169 
   1170 // DynamoDB.CreateTable
   1171 const (
   1172 	// The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request
   1173 	// field
   1174 	//
   1175 	// Type: string[]
   1176 	// Required: No
   1177 	// Stability: stable
   1178 	// Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string",
   1179 	// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
   1180 	// "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits":
   1181 	// number, "WriteCapacityUnits": number } }'
   1182 	AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes")
   1183 	// The JSON-serialized value of each item of the `LocalSecondaryIndexes` request
   1184 	// field.
   1185 	//
   1186 	// Type: string[]
   1187 	// Required: No
   1188 	// Stability: stable
   1189 	// Examples: '{ "IndexARN": "string", "IndexName": "string", "IndexSizeBytes":
   1190 	// number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string",
   1191 	// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
   1192 	// "ProjectionType": "string" } }'
   1193 	AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes")
   1194 )
   1195 
   1196 // DynamoDB.ListTables
   1197 const (
   1198 	// The value of the `ExclusiveStartTableName` request parameter.
   1199 	//
   1200 	// Type: string
   1201 	// Required: No
   1202 	// Stability: stable
   1203 	// Examples: 'Users', 'CatsTable'
   1204 	AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table")
   1205 	// The the number of items in the `TableNames` response parameter.
   1206 	//
   1207 	// Type: int
   1208 	// Required: No
   1209 	// Stability: stable
   1210 	// Examples: 20
   1211 	AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count")
   1212 )
   1213 
   1214 // DynamoDB.Query
   1215 const (
   1216 	// The value of the `ScanIndexForward` request parameter.
   1217 	//
   1218 	// Type: boolean
   1219 	// Required: No
   1220 	// Stability: stable
   1221 	AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward")
   1222 )
   1223 
   1224 // DynamoDB.Scan
   1225 const (
   1226 	// The value of the `Segment` request parameter.
   1227 	//
   1228 	// Type: int
   1229 	// Required: No
   1230 	// Stability: stable
   1231 	// Examples: 10
   1232 	AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment")
   1233 	// The value of the `TotalSegments` request parameter.
   1234 	//
   1235 	// Type: int
   1236 	// Required: No
   1237 	// Stability: stable
   1238 	// Examples: 100
   1239 	AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments")
   1240 	// The value of the `Count` response parameter.
   1241 	//
   1242 	// Type: int
   1243 	// Required: No
   1244 	// Stability: stable
   1245 	// Examples: 10
   1246 	AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count")
   1247 	// The value of the `ScannedCount` response parameter.
   1248 	//
   1249 	// Type: int
   1250 	// Required: No
   1251 	// Stability: stable
   1252 	// Examples: 50
   1253 	AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count")
   1254 )
   1255 
   1256 // DynamoDB.UpdateTable
   1257 const (
   1258 	// The JSON-serialized value of each item in the `AttributeDefinitions` request
   1259 	// field.
   1260 	//
   1261 	// Type: string[]
   1262 	// Required: No
   1263 	// Stability: stable
   1264 	// Examples: '{ "AttributeName": "string", "AttributeType": "string" }'
   1265 	AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions")
   1266 	// The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates`
   1267 	// request field.
   1268 	//
   1269 	// Type: string[]
   1270 	// Required: No
   1271 	// Stability: stable
   1272 	// Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ {
   1273 	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
   1274 	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" },
   1275 	// "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits":
   1276 	// number } }'
   1277 	AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates")
   1278 )
   1279 
   1280 // This document defines the attributes used in messaging systems.
   1281 const (
   1282 	// A string identifying the messaging system.
   1283 	//
   1284 	// Type: string
   1285 	// Required: Always
   1286 	// Stability: stable
   1287 	// Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS'
   1288 	MessagingSystemKey = attribute.Key("messaging.system")
   1289 	// The message destination name. This might be equal to the span name but is
   1290 	// required nevertheless.
   1291 	//
   1292 	// Type: string
   1293 	// Required: Always
   1294 	// Stability: stable
   1295 	// Examples: 'MyQueue', 'MyTopic'
   1296 	MessagingDestinationKey = attribute.Key("messaging.destination")
   1297 	// The kind of message destination
   1298 	//
   1299 	// Type: Enum
   1300 	// Required: Required only if the message destination is either a `queue` or
   1301 	// `topic`.
   1302 	// Stability: stable
   1303 	MessagingDestinationKindKey = attribute.Key("messaging.destination_kind")
   1304 	// A boolean that is true if the message destination is temporary.
   1305 	//
   1306 	// Type: boolean
   1307 	// Required: If missing, it is assumed to be false.
   1308 	// Stability: stable
   1309 	MessagingTempDestinationKey = attribute.Key("messaging.temp_destination")
   1310 	// The name of the transport protocol.
   1311 	//
   1312 	// Type: string
   1313 	// Required: No
   1314 	// Stability: stable
   1315 	// Examples: 'AMQP', 'MQTT'
   1316 	MessagingProtocolKey = attribute.Key("messaging.protocol")
   1317 	// The version of the transport protocol.
   1318 	//
   1319 	// Type: string
   1320 	// Required: No
   1321 	// Stability: stable
   1322 	// Examples: '0.9.1'
   1323 	MessagingProtocolVersionKey = attribute.Key("messaging.protocol_version")
   1324 	// Connection string.
   1325 	//
   1326 	// Type: string
   1327 	// Required: No
   1328 	// Stability: stable
   1329 	// Examples: 'tibjmsnaming://localhost:7222',
   1330 	// 'https://queue.amazonaws.com/80398EXAMPLE/MyQueue'
   1331 	MessagingURLKey = attribute.Key("messaging.url")
   1332 	// A value used by the messaging system as an identifier for the message,
   1333 	// represented as a string.
   1334 	//
   1335 	// Type: string
   1336 	// Required: No
   1337 	// Stability: stable
   1338 	// Examples: '452a7c7c7c7048c2f887f61572b18fc2'
   1339 	MessagingMessageIDKey = attribute.Key("messaging.message_id")
   1340 	// The [conversation ID](#conversations) identifying the conversation to which the
   1341 	// message belongs, represented as a string. Sometimes called "Correlation ID".
   1342 	//
   1343 	// Type: string
   1344 	// Required: No
   1345 	// Stability: stable
   1346 	// Examples: 'MyConversationID'
   1347 	MessagingConversationIDKey = attribute.Key("messaging.conversation_id")
   1348 	// The (uncompressed) size of the message payload in bytes. Also use this
   1349 	// attribute if it is unknown whether the compressed or uncompressed payload size
   1350 	// is reported.
   1351 	//
   1352 	// Type: int
   1353 	// Required: No
   1354 	// Stability: stable
   1355 	// Examples: 2738
   1356 	MessagingMessagePayloadSizeBytesKey = attribute.Key("messaging.message_payload_size_bytes")
   1357 	// The compressed size of the message payload in bytes.
   1358 	//
   1359 	// Type: int
   1360 	// Required: No
   1361 	// Stability: stable
   1362 	// Examples: 2048
   1363 	MessagingMessagePayloadCompressedSizeBytesKey = attribute.Key("messaging.message_payload_compressed_size_bytes")
   1364 )
   1365 
   1366 var (
   1367 	// A message sent to a queue
   1368 	MessagingDestinationKindQueue = MessagingDestinationKindKey.String("queue")
   1369 	// A message sent to a topic
   1370 	MessagingDestinationKindTopic = MessagingDestinationKindKey.String("topic")
   1371 )
   1372 
   1373 // Semantic convention for a consumer of messages received from a messaging system
   1374 const (
   1375 	// A string identifying the kind of message consumption as defined in the
   1376 	// [Operation names](#operation-names) section above. If the operation is "send",
   1377 	// this attribute MUST NOT be set, since the operation can be inferred from the
   1378 	// span kind in that case.
   1379 	//
   1380 	// Type: Enum
   1381 	// Required: No
   1382 	// Stability: stable
   1383 	MessagingOperationKey = attribute.Key("messaging.operation")
   1384 	// The identifier for the consumer receiving a message. For Kafka, set it to
   1385 	// `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are
   1386 	// present, or only `messaging.kafka.consumer_group`. For brokers, such as
   1387 	// RabbitMQ and Artemis, set it to the `client_id` of the client consuming the
   1388 	// message.
   1389 	//
   1390 	// Type: string
   1391 	// Required: No
   1392 	// Stability: stable
   1393 	// Examples: 'mygroup - client-6'
   1394 	MessagingConsumerIDKey = attribute.Key("messaging.consumer_id")
   1395 )
   1396 
   1397 var (
   1398 	// receive
   1399 	MessagingOperationReceive = MessagingOperationKey.String("receive")
   1400 	// process
   1401 	MessagingOperationProcess = MessagingOperationKey.String("process")
   1402 )
   1403 
   1404 // Attributes for RabbitMQ
   1405 const (
   1406 	// RabbitMQ message routing key.
   1407 	//
   1408 	// Type: string
   1409 	// Required: Unless it is empty.
   1410 	// Stability: stable
   1411 	// Examples: 'myKey'
   1412 	MessagingRabbitmqRoutingKeyKey = attribute.Key("messaging.rabbitmq.routing_key")
   1413 )
   1414 
   1415 // Attributes for Apache Kafka
   1416 const (
   1417 	// Message keys in Kafka are used for grouping alike messages to ensure they're
   1418 	// processed on the same partition. They differ from `messaging.message_id` in
   1419 	// that they're not unique. If the key is `null`, the attribute MUST NOT be set.
   1420 	//
   1421 	// Type: string
   1422 	// Required: No
   1423 	// Stability: stable
   1424 	// Examples: 'myKey'
   1425 	// Note: If the key type is not string, it's string representation has to be
   1426 	// supplied for the attribute. If the key has no unambiguous, canonical string
   1427 	// form, don't include its value.
   1428 	MessagingKafkaMessageKeyKey = attribute.Key("messaging.kafka.message_key")
   1429 	// Name of the Kafka Consumer Group that is handling the message. Only applies to
   1430 	// consumers, not producers.
   1431 	//
   1432 	// Type: string
   1433 	// Required: No
   1434 	// Stability: stable
   1435 	// Examples: 'my-group'
   1436 	MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer_group")
   1437 	// Client ID for the Consumer or Producer that is handling the message.
   1438 	//
   1439 	// Type: string
   1440 	// Required: No
   1441 	// Stability: stable
   1442 	// Examples: 'client-5'
   1443 	MessagingKafkaClientIDKey = attribute.Key("messaging.kafka.client_id")
   1444 	// Partition the message is sent to.
   1445 	//
   1446 	// Type: int
   1447 	// Required: No
   1448 	// Stability: stable
   1449 	// Examples: 2
   1450 	MessagingKafkaPartitionKey = attribute.Key("messaging.kafka.partition")
   1451 	// A boolean that is true if the message is a tombstone.
   1452 	//
   1453 	// Type: boolean
   1454 	// Required: If missing, it is assumed to be false.
   1455 	// Stability: stable
   1456 	MessagingKafkaTombstoneKey = attribute.Key("messaging.kafka.tombstone")
   1457 )
   1458 
   1459 // Attributes for Apache RocketMQ
   1460 const (
   1461 	// Namespace of RocketMQ resources, resources in different namespaces are
   1462 	// individual.
   1463 	//
   1464 	// Type: string
   1465 	// Required: Always
   1466 	// Stability: stable
   1467 	// Examples: 'myNamespace'
   1468 	MessagingRocketmqNamespaceKey = attribute.Key("messaging.rocketmq.namespace")
   1469 	// Name of the RocketMQ producer/consumer group that is handling the message. The
   1470 	// client type is identified by the SpanKind.
   1471 	//
   1472 	// Type: string
   1473 	// Required: Always
   1474 	// Stability: stable
   1475 	// Examples: 'myConsumerGroup'
   1476 	MessagingRocketmqClientGroupKey = attribute.Key("messaging.rocketmq.client_group")
   1477 	// The unique identifier for each client.
   1478 	//
   1479 	// Type: string
   1480 	// Required: Always
   1481 	// Stability: stable
   1482 	// Examples: 'myhost@8742@s8083jm'
   1483 	MessagingRocketmqClientIDKey = attribute.Key("messaging.rocketmq.client_id")
   1484 	// Type of message.
   1485 	//
   1486 	// Type: Enum
   1487 	// Required: No
   1488 	// Stability: stable
   1489 	MessagingRocketmqMessageTypeKey = attribute.Key("messaging.rocketmq.message_type")
   1490 	// The secondary classifier of message besides topic.
   1491 	//
   1492 	// Type: string
   1493 	// Required: No
   1494 	// Stability: stable
   1495 	// Examples: 'tagA'
   1496 	MessagingRocketmqMessageTagKey = attribute.Key("messaging.rocketmq.message_tag")
   1497 	// Key(s) of message, another way to mark message besides message id.
   1498 	//
   1499 	// Type: string[]
   1500 	// Required: No
   1501 	// Stability: stable
   1502 	// Examples: 'keyA', 'keyB'
   1503 	MessagingRocketmqMessageKeysKey = attribute.Key("messaging.rocketmq.message_keys")
   1504 	// Model of message consumption. This only applies to consumer spans.
   1505 	//
   1506 	// Type: Enum
   1507 	// Required: No
   1508 	// Stability: stable
   1509 	MessagingRocketmqConsumptionModelKey = attribute.Key("messaging.rocketmq.consumption_model")
   1510 )
   1511 
   1512 var (
   1513 	// Normal message
   1514 	MessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String("normal")
   1515 	// FIFO message
   1516 	MessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String("fifo")
   1517 	// Delay message
   1518 	MessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String("delay")
   1519 	// Transaction message
   1520 	MessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String("transaction")
   1521 )
   1522 
   1523 var (
   1524 	// Clustering consumption model
   1525 	MessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String("clustering")
   1526 	// Broadcasting consumption model
   1527 	MessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String("broadcasting")
   1528 )
   1529 
   1530 // This document defines semantic conventions for remote procedure calls.
   1531 const (
   1532 	// A string identifying the remoting system. See below for a list of well-known
   1533 	// identifiers.
   1534 	//
   1535 	// Type: Enum
   1536 	// Required: Always
   1537 	// Stability: stable
   1538 	RPCSystemKey = attribute.Key("rpc.system")
   1539 	// The full (logical) name of the service being called, including its package
   1540 	// name, if applicable.
   1541 	//
   1542 	// Type: string
   1543 	// Required: No, but recommended
   1544 	// Stability: stable
   1545 	// Examples: 'myservice.EchoService'
   1546 	// Note: This is the logical name of the service from the RPC interface
   1547 	// perspective, which can be different from the name of any implementing class.
   1548 	// The `code.namespace` attribute may be used to store the latter (despite the
   1549 	// attribute name, it may include a class name; e.g., class with method actually
   1550 	// executing the call on the server side, RPC client stub class on the client
   1551 	// side).
   1552 	RPCServiceKey = attribute.Key("rpc.service")
   1553 	// The name of the (logical) method being called, must be equal to the $method
   1554 	// part in the span name.
   1555 	//
   1556 	// Type: string
   1557 	// Required: No, but recommended
   1558 	// Stability: stable
   1559 	// Examples: 'exampleMethod'
   1560 	// Note: This is the logical name of the method from the RPC interface
   1561 	// perspective, which can be different from the name of any implementing
   1562 	// method/function. The `code.function` attribute may be used to store the latter
   1563 	// (e.g., method actually executing the call on the server side, RPC client stub
   1564 	// method on the client side).
   1565 	RPCMethodKey = attribute.Key("rpc.method")
   1566 )
   1567 
   1568 var (
   1569 	// gRPC
   1570 	RPCSystemGRPC = RPCSystemKey.String("grpc")
   1571 	// Java RMI
   1572 	RPCSystemJavaRmi = RPCSystemKey.String("java_rmi")
   1573 	// .NET WCF
   1574 	RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf")
   1575 	// Apache Dubbo
   1576 	RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo")
   1577 )
   1578 
   1579 // Tech-specific attributes for gRPC.
   1580 const (
   1581 	// The [numeric status
   1582 	// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC
   1583 	// request.
   1584 	//
   1585 	// Type: Enum
   1586 	// Required: Always
   1587 	// Stability: stable
   1588 	RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
   1589 )
   1590 
   1591 var (
   1592 	// OK
   1593 	RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)
   1594 	// CANCELLED
   1595 	RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)
   1596 	// UNKNOWN
   1597 	RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)
   1598 	// INVALID_ARGUMENT
   1599 	RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)
   1600 	// DEADLINE_EXCEEDED
   1601 	RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)
   1602 	// NOT_FOUND
   1603 	RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)
   1604 	// ALREADY_EXISTS
   1605 	RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)
   1606 	// PERMISSION_DENIED
   1607 	RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)
   1608 	// RESOURCE_EXHAUSTED
   1609 	RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)
   1610 	// FAILED_PRECONDITION
   1611 	RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)
   1612 	// ABORTED
   1613 	RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)
   1614 	// OUT_OF_RANGE
   1615 	RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)
   1616 	// UNIMPLEMENTED
   1617 	RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)
   1618 	// INTERNAL
   1619 	RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)
   1620 	// UNAVAILABLE
   1621 	RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)
   1622 	// DATA_LOSS
   1623 	RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)
   1624 	// UNAUTHENTICATED
   1625 	RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)
   1626 )
   1627 
   1628 // Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).
   1629 const (
   1630 	// Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC
   1631 	// 1.0 does not specify this, the value can be omitted.
   1632 	//
   1633 	// Type: string
   1634 	// Required: If missing, it is assumed to be "1.0".
   1635 	// Stability: stable
   1636 	// Examples: '2.0', '1.0'
   1637 	RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
   1638 	// `id` property of request or response. Since protocol allows id to be int,
   1639 	// string, `null` or missing (for notifications), value is expected to be cast to
   1640 	// string for simplicity. Use empty string in case of `null` value. Omit entirely
   1641 	// if this is a notification.
   1642 	//
   1643 	// Type: string
   1644 	// Required: No
   1645 	// Stability: stable
   1646 	// Examples: '10', 'request-7', ''
   1647 	RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
   1648 	// `error.code` property of response if it is an error response.
   1649 	//
   1650 	// Type: int
   1651 	// Required: If missing, response is assumed to be successful.
   1652 	// Stability: stable
   1653 	// Examples: -32700, 100
   1654 	RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
   1655 	// `error.message` property of response if it is an error response.
   1656 	//
   1657 	// Type: string
   1658 	// Required: No
   1659 	// Stability: stable
   1660 	// Examples: 'Parse error', 'User already exists'
   1661 	RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
   1662 )
   1663 
   1664 // RPC received/sent message.
   1665 const (
   1666 	// Whether this is a received or sent message.
   1667 	//
   1668 	// Type: Enum
   1669 	// Required: No
   1670 	// Stability: stable
   1671 	MessageTypeKey = attribute.Key("message.type")
   1672 	// MUST be calculated as two different counters starting from `1` one for sent
   1673 	// messages and one for received message.
   1674 	//
   1675 	// Type: int
   1676 	// Required: No
   1677 	// Stability: stable
   1678 	// Note: This way we guarantee that the values will be consistent between
   1679 	// different implementations.
   1680 	MessageIDKey = attribute.Key("message.id")
   1681 	// Compressed size of the message in bytes.
   1682 	//
   1683 	// Type: int
   1684 	// Required: No
   1685 	// Stability: stable
   1686 	MessageCompressedSizeKey = attribute.Key("message.compressed_size")
   1687 	// Uncompressed size of the message in bytes.
   1688 	//
   1689 	// Type: int
   1690 	// Required: No
   1691 	// Stability: stable
   1692 	MessageUncompressedSizeKey = attribute.Key("message.uncompressed_size")
   1693 )
   1694 
   1695 var (
   1696 	// sent
   1697 	MessageTypeSent = MessageTypeKey.String("SENT")
   1698 	// received
   1699 	MessageTypeReceived = MessageTypeKey.String("RECEIVED")
   1700 )