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.13.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 // RequirementLevel: Optional 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 // RequirementLevel: Required 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 // RequirementLevel: Required 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 // RequirementLevel: Optional 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 // RequirementLevel: Optional 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 // RequirementLevel: Optional 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 // RequirementLevel: Optional 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 // RequirementLevel: Required 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 // RequirementLevel: Optional 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 // RequirementLevel: Optional 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 // RequirementLevel: Optional 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 // RequirementLevel: ConditionallyRequired (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 // RequirementLevel: ConditionallyRequired (If applicable and not explicitly 151 // disabled via 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 // RequirementLevel: ConditionallyRequired (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 // OpenSearch 268 DBSystemOpensearch = DBSystemKey.String("opensearch") 269 ) 270 271 // Connection-level attributes for Microsoft SQL Server 272 const ( 273 // The Microsoft SQL Server [instance name](https://docs.microsoft.com/en- 274 // us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) 275 // connecting to. This name is used to determine the port of a named instance. 276 // 277 // Type: string 278 // RequirementLevel: Optional 279 // Stability: stable 280 // Examples: 'MSSQLSERVER' 281 // Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer 282 // required (but still recommended if non-standard). 283 DBMSSQLInstanceNameKey = attribute.Key("db.mssql.instance_name") 284 ) 285 286 // Call-level attributes for Cassandra 287 const ( 288 // The fetch size used for paging, i.e. how many rows will be returned at once. 289 // 290 // Type: int 291 // RequirementLevel: Optional 292 // Stability: stable 293 // Examples: 5000 294 DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size") 295 // The consistency level of the query. Based on consistency values from 296 // [CQL](https://docs.datastax.com/en/cassandra- 297 // oss/3.0/cassandra/dml/dmlConfigConsistency.html). 298 // 299 // Type: Enum 300 // RequirementLevel: Optional 301 // Stability: stable 302 DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level") 303 // The name of the primary table that the operation is acting upon, including the 304 // keyspace name (if applicable). 305 // 306 // Type: string 307 // RequirementLevel: Recommended 308 // Stability: stable 309 // Examples: 'mytable' 310 // Note: This mirrors the db.sql.table attribute but references cassandra rather 311 // than sql. It is not recommended to attempt any client-side parsing of 312 // `db.statement` just to get this property, but it should be set if it is 313 // provided by the library being instrumented. If the operation is acting upon an 314 // anonymous table, or more than one table, this value MUST NOT be set. 315 DBCassandraTableKey = attribute.Key("db.cassandra.table") 316 // Whether or not the query is idempotent. 317 // 318 // Type: boolean 319 // RequirementLevel: Optional 320 // Stability: stable 321 DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence") 322 // The number of times a query was speculatively executed. Not set or `0` if the 323 // query was not executed speculatively. 324 // 325 // Type: int 326 // RequirementLevel: Optional 327 // Stability: stable 328 // Examples: 0, 2 329 DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count") 330 // The ID of the coordinating node for a query. 331 // 332 // Type: string 333 // RequirementLevel: Optional 334 // Stability: stable 335 // Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af' 336 DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id") 337 // The data center of the coordinating node for a query. 338 // 339 // Type: string 340 // RequirementLevel: Optional 341 // Stability: stable 342 // Examples: 'us-west-2' 343 DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc") 344 ) 345 346 var ( 347 // all 348 DBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String("all") 349 // each_quorum 350 DBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String("each_quorum") 351 // quorum 352 DBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String("quorum") 353 // local_quorum 354 DBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String("local_quorum") 355 // one 356 DBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String("one") 357 // two 358 DBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String("two") 359 // three 360 DBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String("three") 361 // local_one 362 DBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String("local_one") 363 // any 364 DBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String("any") 365 // serial 366 DBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String("serial") 367 // local_serial 368 DBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String("local_serial") 369 ) 370 371 // Call-level attributes for Redis 372 const ( 373 // The index of the database being accessed as used in the [`SELECT` 374 // command](https://redis.io/commands/select), provided as an integer. To be used 375 // instead of the generic `db.name` attribute. 376 // 377 // Type: int 378 // RequirementLevel: ConditionallyRequired (If other than the default database 379 // (`0`).) 380 // Stability: stable 381 // Examples: 0, 1, 15 382 DBRedisDBIndexKey = attribute.Key("db.redis.database_index") 383 ) 384 385 // Call-level attributes for MongoDB 386 const ( 387 // The collection being accessed within the database stated in `db.name`. 388 // 389 // Type: string 390 // RequirementLevel: Required 391 // Stability: stable 392 // Examples: 'customers', 'products' 393 DBMongoDBCollectionKey = attribute.Key("db.mongodb.collection") 394 ) 395 396 // Call-level attributes for SQL databases 397 const ( 398 // The name of the primary table that the operation is acting upon, including the 399 // database name (if applicable). 400 // 401 // Type: string 402 // RequirementLevel: Recommended 403 // Stability: stable 404 // Examples: 'public.users', 'customers' 405 // Note: It is not recommended to attempt any client-side parsing of 406 // `db.statement` just to get this property, but it should be set if it is 407 // provided by the library being instrumented. If the operation is acting upon an 408 // anonymous table, or more than one table, this value MUST NOT be set. 409 DBSQLTableKey = attribute.Key("db.sql.table") 410 ) 411 412 // This document defines the attributes used to report a single exception associated with a span. 413 const ( 414 // The type of the exception (its fully-qualified class name, if applicable). The 415 // dynamic type of the exception should be preferred over the static type in 416 // languages that support it. 417 // 418 // Type: string 419 // RequirementLevel: Optional 420 // Stability: stable 421 // Examples: 'java.net.ConnectException', 'OSError' 422 ExceptionTypeKey = attribute.Key("exception.type") 423 // The exception message. 424 // 425 // Type: string 426 // RequirementLevel: Optional 427 // Stability: stable 428 // Examples: 'Division by zero', "Can't convert 'int' object to str implicitly" 429 ExceptionMessageKey = attribute.Key("exception.message") 430 // A stacktrace as a string in the natural representation for the language 431 // runtime. The representation is to be determined and documented by each language 432 // SIG. 433 // 434 // Type: string 435 // RequirementLevel: Optional 436 // Stability: stable 437 // Examples: 'Exception in thread "main" java.lang.RuntimeException: Test 438 // exception\\n at ' 439 // 'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at ' 440 // 'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at ' 441 // 'com.example.GenerateTrace.main(GenerateTrace.java:5)' 442 ExceptionStacktraceKey = attribute.Key("exception.stacktrace") 443 // SHOULD be set to true if the exception event is recorded at a point where it is 444 // known that the exception is escaping the scope of the span. 445 // 446 // Type: boolean 447 // RequirementLevel: Optional 448 // Stability: stable 449 // Note: An exception is considered to have escaped (or left) the scope of a span, 450 // if that span is ended while the exception is still logically "in flight". 451 // This may be actually "in flight" in some languages (e.g. if the exception 452 // is passed to a Context manager's `__exit__` method in Python) but will 453 // usually be caught at the point of recording the exception in most languages. 454 455 // It is usually not possible to determine at the point where an exception is 456 // thrown 457 // whether it will escape the scope of a span. 458 // However, it is trivial to know that an exception 459 // will escape, if one checks for an active exception just before ending the span, 460 // as done in the [example above](#recording-an-exception). 461 462 // It follows that an exception may still escape the scope of the span 463 // even if the `exception.escaped` attribute was not set or set to false, 464 // since the event might have been recorded at a time where it was not 465 // clear whether the exception will escape. 466 ExceptionEscapedKey = attribute.Key("exception.escaped") 467 ) 468 469 // 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. 470 const ( 471 // Type of the trigger which caused this function execution. 472 // 473 // Type: Enum 474 // RequirementLevel: Optional 475 // Stability: stable 476 // Note: For the server/consumer span on the incoming side, 477 // `faas.trigger` MUST be set. 478 479 // Clients invoking FaaS instances usually cannot set `faas.trigger`, 480 // since they would typically need to look in the payload to determine 481 // the event type. If clients set it, it should be the same as the 482 // trigger that corresponding incoming would have (i.e., this has 483 // nothing to do with the underlying transport used to make the API 484 // call to invoke the lambda, which is often HTTP). 485 FaaSTriggerKey = attribute.Key("faas.trigger") 486 // The execution ID of the current function execution. 487 // 488 // Type: string 489 // RequirementLevel: Optional 490 // Stability: stable 491 // Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28' 492 FaaSExecutionKey = attribute.Key("faas.execution") 493 ) 494 495 var ( 496 // A response to some data source operation such as a database or filesystem read/write 497 FaaSTriggerDatasource = FaaSTriggerKey.String("datasource") 498 // To provide an answer to an inbound HTTP request 499 FaaSTriggerHTTP = FaaSTriggerKey.String("http") 500 // A function is set to be executed when messages are sent to a messaging system 501 FaaSTriggerPubsub = FaaSTriggerKey.String("pubsub") 502 // A function is scheduled to be executed regularly 503 FaaSTriggerTimer = FaaSTriggerKey.String("timer") 504 // If none of the others apply 505 FaaSTriggerOther = FaaSTriggerKey.String("other") 506 ) 507 508 // Semantic Convention for FaaS triggered as a response to some data source operation such as a database or filesystem read/write. 509 const ( 510 // The name of the source on which the triggering operation was performed. For 511 // example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos 512 // DB to the database name. 513 // 514 // Type: string 515 // RequirementLevel: Required 516 // Stability: stable 517 // Examples: 'myBucketName', 'myDBName' 518 FaaSDocumentCollectionKey = attribute.Key("faas.document.collection") 519 // Describes the type of the operation that was performed on the data. 520 // 521 // Type: Enum 522 // RequirementLevel: Required 523 // Stability: stable 524 FaaSDocumentOperationKey = attribute.Key("faas.document.operation") 525 // A string containing the time when the data was accessed in the [ISO 526 // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed 527 // in [UTC](https://www.w3.org/TR/NOTE-datetime). 528 // 529 // Type: string 530 // RequirementLevel: Optional 531 // Stability: stable 532 // Examples: '2020-01-23T13:47:06Z' 533 FaaSDocumentTimeKey = attribute.Key("faas.document.time") 534 // The document name/table subjected to the operation. For example, in Cloud 535 // Storage or S3 is the name of the file, and in Cosmos DB the table name. 536 // 537 // Type: string 538 // RequirementLevel: Optional 539 // Stability: stable 540 // Examples: 'myFile.txt', 'myTableName' 541 FaaSDocumentNameKey = attribute.Key("faas.document.name") 542 ) 543 544 var ( 545 // When a new object is created 546 FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert") 547 // When an object is modified 548 FaaSDocumentOperationEdit = FaaSDocumentOperationKey.String("edit") 549 // When an object is deleted 550 FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete") 551 ) 552 553 // Semantic Convention for FaaS scheduled to be executed regularly. 554 const ( 555 // A string containing the function invocation time in the [ISO 556 // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed 557 // in [UTC](https://www.w3.org/TR/NOTE-datetime). 558 // 559 // Type: string 560 // RequirementLevel: Optional 561 // Stability: stable 562 // Examples: '2020-01-23T13:47:06Z' 563 FaaSTimeKey = attribute.Key("faas.time") 564 // A string containing the schedule period as [Cron Expression](https://docs.oracl 565 // e.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm). 566 // 567 // Type: string 568 // RequirementLevel: Optional 569 // Stability: stable 570 // Examples: '0/5 * * * ? *' 571 FaaSCronKey = attribute.Key("faas.cron") 572 ) 573 574 // Contains additional attributes for incoming FaaS spans. 575 const ( 576 // A boolean that is true if the serverless function is executed for the first 577 // time (aka cold-start). 578 // 579 // Type: boolean 580 // RequirementLevel: Optional 581 // Stability: stable 582 FaaSColdstartKey = attribute.Key("faas.coldstart") 583 ) 584 585 // Contains additional attributes for outgoing FaaS spans. 586 const ( 587 // The name of the invoked function. 588 // 589 // Type: string 590 // RequirementLevel: Required 591 // Stability: stable 592 // Examples: 'my-function' 593 // Note: SHOULD be equal to the `faas.name` resource attribute of the invoked 594 // function. 595 FaaSInvokedNameKey = attribute.Key("faas.invoked_name") 596 // The cloud provider of the invoked function. 597 // 598 // Type: Enum 599 // RequirementLevel: Required 600 // Stability: stable 601 // Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked 602 // function. 603 FaaSInvokedProviderKey = attribute.Key("faas.invoked_provider") 604 // The cloud region of the invoked function. 605 // 606 // Type: string 607 // RequirementLevel: ConditionallyRequired (For some cloud providers, like AWS or 608 // GCP, the region in which a function is hosted is essential to uniquely identify 609 // the function and also part of its endpoint. Since it's part of the endpoint 610 // being called, the region is always known to clients. In these cases, 611 // `faas.invoked_region` MUST be set accordingly. If the region is unknown to the 612 // client or not required for identifying the invoked function, setting 613 // `faas.invoked_region` is optional.) 614 // Stability: stable 615 // Examples: 'eu-central-1' 616 // Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked 617 // function. 618 FaaSInvokedRegionKey = attribute.Key("faas.invoked_region") 619 ) 620 621 var ( 622 // Alibaba Cloud 623 FaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String("alibaba_cloud") 624 // Amazon Web Services 625 FaaSInvokedProviderAWS = FaaSInvokedProviderKey.String("aws") 626 // Microsoft Azure 627 FaaSInvokedProviderAzure = FaaSInvokedProviderKey.String("azure") 628 // Google Cloud Platform 629 FaaSInvokedProviderGCP = FaaSInvokedProviderKey.String("gcp") 630 // Tencent Cloud 631 FaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String("tencent_cloud") 632 ) 633 634 // These attributes may be used for any network related operation. 635 const ( 636 // Transport protocol used. See note below. 637 // 638 // Type: Enum 639 // RequirementLevel: Optional 640 // Stability: stable 641 NetTransportKey = attribute.Key("net.transport") 642 // Application layer protocol used. The value SHOULD be normalized to lowercase. 643 // 644 // Type: string 645 // RequirementLevel: Optional 646 // Stability: stable 647 // Examples: 'amqp', 'http', 'mqtt' 648 NetAppProtocolNameKey = attribute.Key("net.app.protocol.name") 649 // Version of the application layer protocol used. See note below. 650 // 651 // Type: string 652 // RequirementLevel: Optional 653 // Stability: stable 654 // Examples: '3.1.1' 655 // Note: `net.app.protocol.version` refers to the version of the protocol used and 656 // might be different from the protocol client's version. If the HTTP client used 657 // has a version of `0.27.2`, but sends HTTP version `1.1`, this attribute should 658 // be set to `1.1`. 659 NetAppProtocolVersionKey = attribute.Key("net.app.protocol.version") 660 // Remote socket peer name. 661 // 662 // Type: string 663 // RequirementLevel: Recommended (If available and different from `net.peer.name` 664 // and if `net.sock.peer.addr` is set.) 665 // Stability: stable 666 // Examples: 'proxy.example.com' 667 NetSockPeerNameKey = attribute.Key("net.sock.peer.name") 668 // Remote socket peer address: IPv4 or IPv6 for internet protocols, path for local 669 // communication, [etc](https://man7.org/linux/man- 670 // pages/man7/address_families.7.html). 671 // 672 // Type: string 673 // RequirementLevel: Optional 674 // Stability: stable 675 // Examples: '127.0.0.1', '/tmp/mysql.sock' 676 NetSockPeerAddrKey = attribute.Key("net.sock.peer.addr") 677 // Remote socket peer port. 678 // 679 // Type: int 680 // RequirementLevel: Recommended (If defined for the address family and if 681 // different than `net.peer.port` and if `net.sock.peer.addr` is set.) 682 // Stability: stable 683 // Examples: 16456 684 NetSockPeerPortKey = attribute.Key("net.sock.peer.port") 685 // Protocol [address family](https://man7.org/linux/man- 686 // pages/man7/address_families.7.html) which is used for communication. 687 // 688 // Type: Enum 689 // RequirementLevel: ConditionallyRequired (If different than `inet` and if any of 690 // `net.sock.peer.addr` or `net.sock.host.addr` are set. Consumers of telemetry 691 // SHOULD accept both IPv4 and IPv6 formats for the address in 692 // `net.sock.peer.addr` if `net.sock.family` is not set. This is to support 693 // instrumentations that follow previous versions of this document.) 694 // Stability: stable 695 // Examples: 'inet6', 'bluetooth' 696 NetSockFamilyKey = attribute.Key("net.sock.family") 697 // Logical remote hostname, see note below. 698 // 699 // Type: string 700 // RequirementLevel: Optional 701 // Stability: stable 702 // Examples: 'example.com' 703 // Note: `net.peer.name` SHOULD NOT be set if capturing it would require an extra 704 // DNS lookup. 705 NetPeerNameKey = attribute.Key("net.peer.name") 706 // Logical remote port number 707 // 708 // Type: int 709 // RequirementLevel: Optional 710 // Stability: stable 711 // Examples: 80, 8080, 443 712 NetPeerPortKey = attribute.Key("net.peer.port") 713 // Logical local hostname or similar, see note below. 714 // 715 // Type: string 716 // RequirementLevel: Optional 717 // Stability: stable 718 // Examples: 'localhost' 719 NetHostNameKey = attribute.Key("net.host.name") 720 // Logical local port number, preferably the one that the peer used to connect 721 // 722 // Type: int 723 // RequirementLevel: Optional 724 // Stability: stable 725 // Examples: 8080 726 NetHostPortKey = attribute.Key("net.host.port") 727 // Local socket address. Useful in case of a multi-IP host. 728 // 729 // Type: string 730 // RequirementLevel: Optional 731 // Stability: stable 732 // Examples: '192.168.0.1' 733 NetSockHostAddrKey = attribute.Key("net.sock.host.addr") 734 // Local socket port number. 735 // 736 // Type: int 737 // RequirementLevel: Recommended (If defined for the address family and if 738 // different than `net.host.port` and if `net.sock.host.addr` is set.) 739 // Stability: stable 740 // Examples: 35555 741 NetSockHostPortKey = attribute.Key("net.sock.host.port") 742 // The internet connection type currently being used by the host. 743 // 744 // Type: Enum 745 // RequirementLevel: Optional 746 // Stability: stable 747 // Examples: 'wifi' 748 NetHostConnectionTypeKey = attribute.Key("net.host.connection.type") 749 // This describes more details regarding the connection.type. It may be the type 750 // of cell technology connection, but it could be used for describing details 751 // about a wifi connection. 752 // 753 // Type: Enum 754 // RequirementLevel: Optional 755 // Stability: stable 756 // Examples: 'LTE' 757 NetHostConnectionSubtypeKey = attribute.Key("net.host.connection.subtype") 758 // The name of the mobile carrier. 759 // 760 // Type: string 761 // RequirementLevel: Optional 762 // Stability: stable 763 // Examples: 'sprint' 764 NetHostCarrierNameKey = attribute.Key("net.host.carrier.name") 765 // The mobile carrier country code. 766 // 767 // Type: string 768 // RequirementLevel: Optional 769 // Stability: stable 770 // Examples: '310' 771 NetHostCarrierMccKey = attribute.Key("net.host.carrier.mcc") 772 // The mobile carrier network code. 773 // 774 // Type: string 775 // RequirementLevel: Optional 776 // Stability: stable 777 // Examples: '001' 778 NetHostCarrierMncKey = attribute.Key("net.host.carrier.mnc") 779 // The ISO 3166-1 alpha-2 2-character country code associated with the mobile 780 // carrier network. 781 // 782 // Type: string 783 // RequirementLevel: Optional 784 // Stability: stable 785 // Examples: 'DE' 786 NetHostCarrierIccKey = attribute.Key("net.host.carrier.icc") 787 ) 788 789 var ( 790 // ip_tcp 791 NetTransportTCP = NetTransportKey.String("ip_tcp") 792 // ip_udp 793 NetTransportUDP = NetTransportKey.String("ip_udp") 794 // Named or anonymous pipe. See note below 795 NetTransportPipe = NetTransportKey.String("pipe") 796 // In-process communication 797 NetTransportInProc = NetTransportKey.String("inproc") 798 // Something else (non IP-based) 799 NetTransportOther = NetTransportKey.String("other") 800 ) 801 802 var ( 803 // IPv4 address 804 NetSockFamilyInet = NetSockFamilyKey.String("inet") 805 // IPv6 address 806 NetSockFamilyInet6 = NetSockFamilyKey.String("inet6") 807 // Unix domain socket path 808 NetSockFamilyUnix = NetSockFamilyKey.String("unix") 809 ) 810 811 var ( 812 // wifi 813 NetHostConnectionTypeWifi = NetHostConnectionTypeKey.String("wifi") 814 // wired 815 NetHostConnectionTypeWired = NetHostConnectionTypeKey.String("wired") 816 // cell 817 NetHostConnectionTypeCell = NetHostConnectionTypeKey.String("cell") 818 // unavailable 819 NetHostConnectionTypeUnavailable = NetHostConnectionTypeKey.String("unavailable") 820 // unknown 821 NetHostConnectionTypeUnknown = NetHostConnectionTypeKey.String("unknown") 822 ) 823 824 var ( 825 // GPRS 826 NetHostConnectionSubtypeGprs = NetHostConnectionSubtypeKey.String("gprs") 827 // EDGE 828 NetHostConnectionSubtypeEdge = NetHostConnectionSubtypeKey.String("edge") 829 // UMTS 830 NetHostConnectionSubtypeUmts = NetHostConnectionSubtypeKey.String("umts") 831 // CDMA 832 NetHostConnectionSubtypeCdma = NetHostConnectionSubtypeKey.String("cdma") 833 // EVDO Rel. 0 834 NetHostConnectionSubtypeEvdo0 = NetHostConnectionSubtypeKey.String("evdo_0") 835 // EVDO Rev. A 836 NetHostConnectionSubtypeEvdoA = NetHostConnectionSubtypeKey.String("evdo_a") 837 // CDMA2000 1XRTT 838 NetHostConnectionSubtypeCdma20001xrtt = NetHostConnectionSubtypeKey.String("cdma2000_1xrtt") 839 // HSDPA 840 NetHostConnectionSubtypeHsdpa = NetHostConnectionSubtypeKey.String("hsdpa") 841 // HSUPA 842 NetHostConnectionSubtypeHsupa = NetHostConnectionSubtypeKey.String("hsupa") 843 // HSPA 844 NetHostConnectionSubtypeHspa = NetHostConnectionSubtypeKey.String("hspa") 845 // IDEN 846 NetHostConnectionSubtypeIden = NetHostConnectionSubtypeKey.String("iden") 847 // EVDO Rev. B 848 NetHostConnectionSubtypeEvdoB = NetHostConnectionSubtypeKey.String("evdo_b") 849 // LTE 850 NetHostConnectionSubtypeLte = NetHostConnectionSubtypeKey.String("lte") 851 // EHRPD 852 NetHostConnectionSubtypeEhrpd = NetHostConnectionSubtypeKey.String("ehrpd") 853 // HSPAP 854 NetHostConnectionSubtypeHspap = NetHostConnectionSubtypeKey.String("hspap") 855 // GSM 856 NetHostConnectionSubtypeGsm = NetHostConnectionSubtypeKey.String("gsm") 857 // TD-SCDMA 858 NetHostConnectionSubtypeTdScdma = NetHostConnectionSubtypeKey.String("td_scdma") 859 // IWLAN 860 NetHostConnectionSubtypeIwlan = NetHostConnectionSubtypeKey.String("iwlan") 861 // 5G NR (New Radio) 862 NetHostConnectionSubtypeNr = NetHostConnectionSubtypeKey.String("nr") 863 // 5G NRNSA (New Radio Non-Standalone) 864 NetHostConnectionSubtypeNrnsa = NetHostConnectionSubtypeKey.String("nrnsa") 865 // LTE CA 866 NetHostConnectionSubtypeLteCa = NetHostConnectionSubtypeKey.String("lte_ca") 867 ) 868 869 // Operations that access some remote service. 870 const ( 871 // The [`service.name`](../../resource/semantic_conventions/README.md#service) of 872 // the remote service. SHOULD be equal to the actual `service.name` resource 873 // attribute of the remote service if any. 874 // 875 // Type: string 876 // RequirementLevel: Optional 877 // Stability: stable 878 // Examples: 'AuthTokenCache' 879 PeerServiceKey = attribute.Key("peer.service") 880 ) 881 882 // These attributes may be used for any operation with an authenticated and/or authorized enduser. 883 const ( 884 // Username or client_id extracted from the access token or 885 // [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the 886 // inbound request from outside the system. 887 // 888 // Type: string 889 // RequirementLevel: Optional 890 // Stability: stable 891 // Examples: 'username' 892 EnduserIDKey = attribute.Key("enduser.id") 893 // Actual/assumed role the client is making the request under extracted from token 894 // or application security context. 895 // 896 // Type: string 897 // RequirementLevel: Optional 898 // Stability: stable 899 // Examples: 'admin' 900 EnduserRoleKey = attribute.Key("enduser.role") 901 // Scopes or granted authorities the client currently possesses extracted from 902 // token or application security context. The value would come from the scope 903 // associated with an [OAuth 2.0 Access 904 // Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value 905 // in a [SAML 2.0 Assertion](http://docs.oasis- 906 // open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html). 907 // 908 // Type: string 909 // RequirementLevel: Optional 910 // Stability: stable 911 // Examples: 'read:message, write:files' 912 EnduserScopeKey = attribute.Key("enduser.scope") 913 ) 914 915 // These attributes may be used for any operation to store information about a thread that started a span. 916 const ( 917 // Current "managed" thread ID (as opposed to OS thread ID). 918 // 919 // Type: int 920 // RequirementLevel: Optional 921 // Stability: stable 922 // Examples: 42 923 ThreadIDKey = attribute.Key("thread.id") 924 // Current thread name. 925 // 926 // Type: string 927 // RequirementLevel: Optional 928 // Stability: stable 929 // Examples: 'main' 930 ThreadNameKey = attribute.Key("thread.name") 931 ) 932 933 // These attributes allow to report this unit of code and therefore to provide more context about the span. 934 const ( 935 // The method or function name, or equivalent (usually rightmost part of the code 936 // unit's name). 937 // 938 // Type: string 939 // RequirementLevel: Optional 940 // Stability: stable 941 // Examples: 'serveRequest' 942 CodeFunctionKey = attribute.Key("code.function") 943 // The "namespace" within which `code.function` is defined. Usually the qualified 944 // class or module name, such that `code.namespace` + some separator + 945 // `code.function` form a unique identifier for the code unit. 946 // 947 // Type: string 948 // RequirementLevel: Optional 949 // Stability: stable 950 // Examples: 'com.example.MyHTTPService' 951 CodeNamespaceKey = attribute.Key("code.namespace") 952 // The source code file name that identifies the code unit as uniquely as possible 953 // (preferably an absolute file path). 954 // 955 // Type: string 956 // RequirementLevel: Optional 957 // Stability: stable 958 // Examples: '/usr/local/MyApplication/content_root/app/index.php' 959 CodeFilepathKey = attribute.Key("code.filepath") 960 // The line number in `code.filepath` best representing the operation. It SHOULD 961 // point within the code unit named in `code.function`. 962 // 963 // Type: int 964 // RequirementLevel: Optional 965 // Stability: stable 966 // Examples: 42 967 CodeLineNumberKey = attribute.Key("code.lineno") 968 ) 969 970 // This document defines semantic conventions for HTTP client and server Spans. 971 const ( 972 // HTTP request method. 973 // 974 // Type: string 975 // RequirementLevel: Required 976 // Stability: stable 977 // Examples: 'GET', 'POST', 'HEAD' 978 HTTPMethodKey = attribute.Key("http.method") 979 // [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). 980 // 981 // Type: int 982 // RequirementLevel: ConditionallyRequired (If and only if one was received/sent.) 983 // Stability: stable 984 // Examples: 200 985 HTTPStatusCodeKey = attribute.Key("http.status_code") 986 // Kind of HTTP protocol used. 987 // 988 // Type: Enum 989 // RequirementLevel: Optional 990 // Stability: stable 991 // Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` 992 // except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed. 993 HTTPFlavorKey = attribute.Key("http.flavor") 994 // Value of the [HTTP User-Agent](https://www.rfc- 995 // editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client. 996 // 997 // Type: string 998 // RequirementLevel: Optional 999 // Stability: stable 1000 // Examples: 'CERN-LineMode/2.15 libwww/2.17b3' 1001 HTTPUserAgentKey = attribute.Key("http.user_agent") 1002 // The size of the request payload body in bytes. This is the number of bytes 1003 // transferred excluding headers and is often, but not always, present as the 1004 // [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content- 1005 // length) header. For requests using transport encoding, this should be the 1006 // compressed size. 1007 // 1008 // Type: int 1009 // RequirementLevel: Optional 1010 // Stability: stable 1011 // Examples: 3495 1012 HTTPRequestContentLengthKey = attribute.Key("http.request_content_length") 1013 // The size of the response payload body in bytes. This is the number of bytes 1014 // transferred excluding headers and is often, but not always, present as the 1015 // [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content- 1016 // length) header. For requests using transport encoding, this should be the 1017 // compressed size. 1018 // 1019 // Type: int 1020 // RequirementLevel: Optional 1021 // Stability: stable 1022 // Examples: 3495 1023 HTTPResponseContentLengthKey = attribute.Key("http.response_content_length") 1024 ) 1025 1026 var ( 1027 // HTTP/1.0 1028 HTTPFlavorHTTP10 = HTTPFlavorKey.String("1.0") 1029 // HTTP/1.1 1030 HTTPFlavorHTTP11 = HTTPFlavorKey.String("1.1") 1031 // HTTP/2 1032 HTTPFlavorHTTP20 = HTTPFlavorKey.String("2.0") 1033 // HTTP/3 1034 HTTPFlavorHTTP30 = HTTPFlavorKey.String("3.0") 1035 // SPDY protocol 1036 HTTPFlavorSPDY = HTTPFlavorKey.String("SPDY") 1037 // QUIC protocol 1038 HTTPFlavorQUIC = HTTPFlavorKey.String("QUIC") 1039 ) 1040 1041 // Semantic Convention for HTTP Client 1042 const ( 1043 // Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. 1044 // Usually the fragment is not transmitted over HTTP, but if it is known, it 1045 // should be included nevertheless. 1046 // 1047 // Type: string 1048 // RequirementLevel: Required 1049 // Stability: stable 1050 // Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv' 1051 // Note: `http.url` MUST NOT contain credentials passed via URL in form of 1052 // `https://username:password@www.example.com/`. In such case the attribute's 1053 // value should be `https://www.example.com/`. 1054 HTTPURLKey = attribute.Key("http.url") 1055 // The ordinal number of request re-sending attempt. 1056 // 1057 // Type: int 1058 // RequirementLevel: Recommended (if and only if request was retried.) 1059 // Stability: stable 1060 // Examples: 3 1061 HTTPRetryCountKey = attribute.Key("http.retry_count") 1062 ) 1063 1064 // Semantic Convention for HTTP Server 1065 const ( 1066 // The URI scheme identifying the used protocol. 1067 // 1068 // Type: string 1069 // RequirementLevel: Required 1070 // Stability: stable 1071 // Examples: 'http', 'https' 1072 HTTPSchemeKey = attribute.Key("http.scheme") 1073 // The full request target as passed in a HTTP request line or equivalent. 1074 // 1075 // Type: string 1076 // RequirementLevel: Required 1077 // Stability: stable 1078 // Examples: '/path/12314/?q=ddds' 1079 HTTPTargetKey = attribute.Key("http.target") 1080 // The matched route (path template in the format used by the respective server 1081 // framework). See note below 1082 // 1083 // Type: string 1084 // RequirementLevel: ConditionallyRequired (If and only if it's available) 1085 // Stability: stable 1086 // Examples: '/users/:userID?', '{controller}/{action}/{id?}' 1087 // Note: 'http.route' MUST NOT be populated when this is not supported by the HTTP 1088 // server framework as the route attribute should have low-cardinality and the URI 1089 // path can NOT substitute it. 1090 HTTPRouteKey = attribute.Key("http.route") 1091 // The IP address of the original client behind all proxies, if known (e.g. from 1092 // [X-Forwarded-For](https://developer.mozilla.org/en- 1093 // US/docs/Web/HTTP/Headers/X-Forwarded-For)). 1094 // 1095 // Type: string 1096 // RequirementLevel: Optional 1097 // Stability: stable 1098 // Examples: '83.164.160.102' 1099 // Note: This is not necessarily the same as `net.sock.peer.addr`, which would 1100 // identify the network-level peer, which may be a proxy. 1101 1102 // This attribute should be set when a source of information different 1103 // from the one used for `net.sock.peer.addr`, is available even if that other 1104 // source just confirms the same value as `net.sock.peer.addr`. 1105 // Rationale: For `net.sock.peer.addr`, one typically does not know if it 1106 // comes from a proxy, reverse proxy, or the actual client. Setting 1107 // `http.client_ip` when it's the same as `net.sock.peer.addr` means that 1108 // one is at least somewhat confident that the address is not that of 1109 // the closest proxy. 1110 HTTPClientIPKey = attribute.Key("http.client_ip") 1111 ) 1112 1113 // Attributes that exist for multiple DynamoDB request types. 1114 const ( 1115 // The keys in the `RequestItems` object field. 1116 // 1117 // Type: string[] 1118 // RequirementLevel: Optional 1119 // Stability: stable 1120 // Examples: 'Users', 'Cats' 1121 AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names") 1122 // The JSON-serialized value of each item in the `ConsumedCapacity` response 1123 // field. 1124 // 1125 // Type: string[] 1126 // RequirementLevel: Optional 1127 // Stability: stable 1128 // Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { 1129 // "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": 1130 // number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, 1131 // "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, 1132 // "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, 1133 // "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": 1134 // "string", "WriteCapacityUnits": number }' 1135 AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity") 1136 // The JSON-serialized value of the `ItemCollectionMetrics` response field. 1137 // 1138 // Type: string 1139 // RequirementLevel: Optional 1140 // Stability: stable 1141 // Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, 1142 // "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : 1143 // "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": 1144 // "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }' 1145 AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics") 1146 // The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. 1147 // 1148 // Type: double 1149 // RequirementLevel: Optional 1150 // Stability: stable 1151 // Examples: 1.0, 2.0 1152 AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity") 1153 // The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. 1154 // 1155 // Type: double 1156 // RequirementLevel: Optional 1157 // Stability: stable 1158 // Examples: 1.0, 2.0 1159 AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity") 1160 // The value of the `ConsistentRead` request parameter. 1161 // 1162 // Type: boolean 1163 // RequirementLevel: Optional 1164 // Stability: stable 1165 AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read") 1166 // The value of the `ProjectionExpression` request parameter. 1167 // 1168 // Type: string 1169 // RequirementLevel: Optional 1170 // Stability: stable 1171 // Examples: 'Title', 'Title, Price, Color', 'Title, Description, RelatedItems, 1172 // ProductReviews' 1173 AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection") 1174 // The value of the `Limit` request parameter. 1175 // 1176 // Type: int 1177 // RequirementLevel: Optional 1178 // Stability: stable 1179 // Examples: 10 1180 AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit") 1181 // The value of the `AttributesToGet` request parameter. 1182 // 1183 // Type: string[] 1184 // RequirementLevel: Optional 1185 // Stability: stable 1186 // Examples: 'lives', 'id' 1187 AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get") 1188 // The value of the `IndexName` request parameter. 1189 // 1190 // Type: string 1191 // RequirementLevel: Optional 1192 // Stability: stable 1193 // Examples: 'name_to_group' 1194 AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name") 1195 // The value of the `Select` request parameter. 1196 // 1197 // Type: string 1198 // RequirementLevel: Optional 1199 // Stability: stable 1200 // Examples: 'ALL_ATTRIBUTES', 'COUNT' 1201 AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select") 1202 ) 1203 1204 // DynamoDB.CreateTable 1205 const ( 1206 // The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request 1207 // field 1208 // 1209 // Type: string[] 1210 // RequirementLevel: Optional 1211 // Stability: stable 1212 // Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", 1213 // "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], 1214 // "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": 1215 // number, "WriteCapacityUnits": number } }' 1216 AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes") 1217 // The JSON-serialized value of each item of the `LocalSecondaryIndexes` request 1218 // field. 1219 // 1220 // Type: string[] 1221 // RequirementLevel: Optional 1222 // Stability: stable 1223 // Examples: '{ "IndexARN": "string", "IndexName": "string", "IndexSizeBytes": 1224 // number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", 1225 // "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], 1226 // "ProjectionType": "string" } }' 1227 AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes") 1228 ) 1229 1230 // DynamoDB.ListTables 1231 const ( 1232 // The value of the `ExclusiveStartTableName` request parameter. 1233 // 1234 // Type: string 1235 // RequirementLevel: Optional 1236 // Stability: stable 1237 // Examples: 'Users', 'CatsTable' 1238 AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table") 1239 // The the number of items in the `TableNames` response parameter. 1240 // 1241 // Type: int 1242 // RequirementLevel: Optional 1243 // Stability: stable 1244 // Examples: 20 1245 AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count") 1246 ) 1247 1248 // DynamoDB.Query 1249 const ( 1250 // The value of the `ScanIndexForward` request parameter. 1251 // 1252 // Type: boolean 1253 // RequirementLevel: Optional 1254 // Stability: stable 1255 AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward") 1256 ) 1257 1258 // DynamoDB.Scan 1259 const ( 1260 // The value of the `Segment` request parameter. 1261 // 1262 // Type: int 1263 // RequirementLevel: Optional 1264 // Stability: stable 1265 // Examples: 10 1266 AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment") 1267 // The value of the `TotalSegments` request parameter. 1268 // 1269 // Type: int 1270 // RequirementLevel: Optional 1271 // Stability: stable 1272 // Examples: 100 1273 AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments") 1274 // The value of the `Count` response parameter. 1275 // 1276 // Type: int 1277 // RequirementLevel: Optional 1278 // Stability: stable 1279 // Examples: 10 1280 AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count") 1281 // The value of the `ScannedCount` response parameter. 1282 // 1283 // Type: int 1284 // RequirementLevel: Optional 1285 // Stability: stable 1286 // Examples: 50 1287 AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count") 1288 ) 1289 1290 // DynamoDB.UpdateTable 1291 const ( 1292 // The JSON-serialized value of each item in the `AttributeDefinitions` request 1293 // field. 1294 // 1295 // Type: string[] 1296 // RequirementLevel: Optional 1297 // Stability: stable 1298 // Examples: '{ "AttributeName": "string", "AttributeType": "string" }' 1299 AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions") 1300 // The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` 1301 // request field. 1302 // 1303 // Type: string[] 1304 // RequirementLevel: Optional 1305 // Stability: stable 1306 // Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ { 1307 // "AttributeName": "string", "KeyType": "string" } ], "Projection": { 1308 // "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, 1309 // "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": 1310 // number } }' 1311 AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates") 1312 ) 1313 1314 // This document defines semantic conventions to apply when instrumenting the GraphQL implementation. They map GraphQL operations to attributes on a Span. 1315 const ( 1316 // The name of the operation being executed. 1317 // 1318 // Type: string 1319 // RequirementLevel: Optional 1320 // Stability: stable 1321 // Examples: 'findBookByID' 1322 GraphqlOperationNameKey = attribute.Key("graphql.operation.name") 1323 // The type of the operation being executed. 1324 // 1325 // Type: Enum 1326 // RequirementLevel: Optional 1327 // Stability: stable 1328 // Examples: 'query', 'mutation', 'subscription' 1329 GraphqlOperationTypeKey = attribute.Key("graphql.operation.type") 1330 // The GraphQL document being executed. 1331 // 1332 // Type: string 1333 // RequirementLevel: Optional 1334 // Stability: stable 1335 // Examples: 'query findBookByID { bookByID(id: ?) { name } }' 1336 // Note: The value may be sanitized to exclude sensitive information. 1337 GraphqlDocumentKey = attribute.Key("graphql.document") 1338 ) 1339 1340 var ( 1341 // GraphQL query 1342 GraphqlOperationTypeQuery = GraphqlOperationTypeKey.String("query") 1343 // GraphQL mutation 1344 GraphqlOperationTypeMutation = GraphqlOperationTypeKey.String("mutation") 1345 // GraphQL subscription 1346 GraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String("subscription") 1347 ) 1348 1349 // This document defines the attributes used in messaging systems. 1350 const ( 1351 // A string identifying the messaging system. 1352 // 1353 // Type: string 1354 // RequirementLevel: Required 1355 // Stability: stable 1356 // Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS' 1357 MessagingSystemKey = attribute.Key("messaging.system") 1358 // The message destination name. This might be equal to the span name but is 1359 // required nevertheless. 1360 // 1361 // Type: string 1362 // RequirementLevel: Required 1363 // Stability: stable 1364 // Examples: 'MyQueue', 'MyTopic' 1365 MessagingDestinationKey = attribute.Key("messaging.destination") 1366 // The kind of message destination 1367 // 1368 // Type: Enum 1369 // RequirementLevel: ConditionallyRequired (If the message destination is either a 1370 // `queue` or `topic`.) 1371 // Stability: stable 1372 MessagingDestinationKindKey = attribute.Key("messaging.destination_kind") 1373 // A boolean that is true if the message destination is temporary. 1374 // 1375 // Type: boolean 1376 // RequirementLevel: ConditionallyRequired (If value is `true`. When missing, the 1377 // value is assumed to be `false`.) 1378 // Stability: stable 1379 MessagingTempDestinationKey = attribute.Key("messaging.temp_destination") 1380 // The name of the transport protocol. 1381 // 1382 // Type: string 1383 // RequirementLevel: Optional 1384 // Stability: stable 1385 // Examples: 'AMQP', 'MQTT' 1386 MessagingProtocolKey = attribute.Key("messaging.protocol") 1387 // The version of the transport protocol. 1388 // 1389 // Type: string 1390 // RequirementLevel: Optional 1391 // Stability: stable 1392 // Examples: '0.9.1' 1393 MessagingProtocolVersionKey = attribute.Key("messaging.protocol_version") 1394 // Connection string. 1395 // 1396 // Type: string 1397 // RequirementLevel: Optional 1398 // Stability: stable 1399 // Examples: 'tibjmsnaming://localhost:7222', 1400 // 'https://queue.amazonaws.com/80398EXAMPLE/MyQueue' 1401 MessagingURLKey = attribute.Key("messaging.url") 1402 // A value used by the messaging system as an identifier for the message, 1403 // represented as a string. 1404 // 1405 // Type: string 1406 // RequirementLevel: Optional 1407 // Stability: stable 1408 // Examples: '452a7c7c7c7048c2f887f61572b18fc2' 1409 MessagingMessageIDKey = attribute.Key("messaging.message_id") 1410 // The [conversation ID](#conversations) identifying the conversation to which the 1411 // message belongs, represented as a string. Sometimes called "Correlation ID". 1412 // 1413 // Type: string 1414 // RequirementLevel: Optional 1415 // Stability: stable 1416 // Examples: 'MyConversationID' 1417 MessagingConversationIDKey = attribute.Key("messaging.conversation_id") 1418 // The (uncompressed) size of the message payload in bytes. Also use this 1419 // attribute if it is unknown whether the compressed or uncompressed payload size 1420 // is reported. 1421 // 1422 // Type: int 1423 // RequirementLevel: Optional 1424 // Stability: stable 1425 // Examples: 2738 1426 MessagingMessagePayloadSizeBytesKey = attribute.Key("messaging.message_payload_size_bytes") 1427 // The compressed size of the message payload in bytes. 1428 // 1429 // Type: int 1430 // RequirementLevel: Optional 1431 // Stability: stable 1432 // Examples: 2048 1433 MessagingMessagePayloadCompressedSizeBytesKey = attribute.Key("messaging.message_payload_compressed_size_bytes") 1434 ) 1435 1436 var ( 1437 // A message sent to a queue 1438 MessagingDestinationKindQueue = MessagingDestinationKindKey.String("queue") 1439 // A message sent to a topic 1440 MessagingDestinationKindTopic = MessagingDestinationKindKey.String("topic") 1441 ) 1442 1443 // Semantic convention for a consumer of messages received from a messaging system 1444 const ( 1445 // A string identifying the kind of message consumption as defined in the 1446 // [Operation names](#operation-names) section above. If the operation is "send", 1447 // this attribute MUST NOT be set, since the operation can be inferred from the 1448 // span kind in that case. 1449 // 1450 // Type: Enum 1451 // RequirementLevel: Optional 1452 // Stability: stable 1453 MessagingOperationKey = attribute.Key("messaging.operation") 1454 // The identifier for the consumer receiving a message. For Kafka, set it to 1455 // `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are 1456 // present, or only `messaging.kafka.consumer_group`. For brokers, such as 1457 // RabbitMQ and Artemis, set it to the `client_id` of the client consuming the 1458 // message. 1459 // 1460 // Type: string 1461 // RequirementLevel: Optional 1462 // Stability: stable 1463 // Examples: 'mygroup - client-6' 1464 MessagingConsumerIDKey = attribute.Key("messaging.consumer_id") 1465 ) 1466 1467 var ( 1468 // receive 1469 MessagingOperationReceive = MessagingOperationKey.String("receive") 1470 // process 1471 MessagingOperationProcess = MessagingOperationKey.String("process") 1472 ) 1473 1474 // Attributes for RabbitMQ 1475 const ( 1476 // RabbitMQ message routing key. 1477 // 1478 // Type: string 1479 // RequirementLevel: ConditionallyRequired (If not empty.) 1480 // Stability: stable 1481 // Examples: 'myKey' 1482 MessagingRabbitmqRoutingKeyKey = attribute.Key("messaging.rabbitmq.routing_key") 1483 ) 1484 1485 // Attributes for Apache Kafka 1486 const ( 1487 // Message keys in Kafka are used for grouping alike messages to ensure they're 1488 // processed on the same partition. They differ from `messaging.message_id` in 1489 // that they're not unique. If the key is `null`, the attribute MUST NOT be set. 1490 // 1491 // Type: string 1492 // RequirementLevel: Optional 1493 // Stability: stable 1494 // Examples: 'myKey' 1495 // Note: If the key type is not string, it's string representation has to be 1496 // supplied for the attribute. If the key has no unambiguous, canonical string 1497 // form, don't include its value. 1498 MessagingKafkaMessageKeyKey = attribute.Key("messaging.kafka.message_key") 1499 // Name of the Kafka Consumer Group that is handling the message. Only applies to 1500 // consumers, not producers. 1501 // 1502 // Type: string 1503 // RequirementLevel: Optional 1504 // Stability: stable 1505 // Examples: 'my-group' 1506 MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer_group") 1507 // Client ID for the Consumer or Producer that is handling the message. 1508 // 1509 // Type: string 1510 // RequirementLevel: Optional 1511 // Stability: stable 1512 // Examples: 'client-5' 1513 MessagingKafkaClientIDKey = attribute.Key("messaging.kafka.client_id") 1514 // Partition the message is sent to. 1515 // 1516 // Type: int 1517 // RequirementLevel: Optional 1518 // Stability: stable 1519 // Examples: 2 1520 MessagingKafkaPartitionKey = attribute.Key("messaging.kafka.partition") 1521 // A boolean that is true if the message is a tombstone. 1522 // 1523 // Type: boolean 1524 // RequirementLevel: ConditionallyRequired (If value is `true`. When missing, the 1525 // value is assumed to be `false`.) 1526 // Stability: stable 1527 MessagingKafkaTombstoneKey = attribute.Key("messaging.kafka.tombstone") 1528 ) 1529 1530 // Attributes for Apache RocketMQ 1531 const ( 1532 // Namespace of RocketMQ resources, resources in different namespaces are 1533 // individual. 1534 // 1535 // Type: string 1536 // RequirementLevel: Required 1537 // Stability: stable 1538 // Examples: 'myNamespace' 1539 MessagingRocketmqNamespaceKey = attribute.Key("messaging.rocketmq.namespace") 1540 // Name of the RocketMQ producer/consumer group that is handling the message. The 1541 // client type is identified by the SpanKind. 1542 // 1543 // Type: string 1544 // RequirementLevel: Required 1545 // Stability: stable 1546 // Examples: 'myConsumerGroup' 1547 MessagingRocketmqClientGroupKey = attribute.Key("messaging.rocketmq.client_group") 1548 // The unique identifier for each client. 1549 // 1550 // Type: string 1551 // RequirementLevel: Required 1552 // Stability: stable 1553 // Examples: 'myhost@8742@s8083jm' 1554 MessagingRocketmqClientIDKey = attribute.Key("messaging.rocketmq.client_id") 1555 // Type of message. 1556 // 1557 // Type: Enum 1558 // RequirementLevel: Optional 1559 // Stability: stable 1560 MessagingRocketmqMessageTypeKey = attribute.Key("messaging.rocketmq.message_type") 1561 // The secondary classifier of message besides topic. 1562 // 1563 // Type: string 1564 // RequirementLevel: Optional 1565 // Stability: stable 1566 // Examples: 'tagA' 1567 MessagingRocketmqMessageTagKey = attribute.Key("messaging.rocketmq.message_tag") 1568 // Key(s) of message, another way to mark message besides message id. 1569 // 1570 // Type: string[] 1571 // RequirementLevel: Optional 1572 // Stability: stable 1573 // Examples: 'keyA', 'keyB' 1574 MessagingRocketmqMessageKeysKey = attribute.Key("messaging.rocketmq.message_keys") 1575 // Model of message consumption. This only applies to consumer spans. 1576 // 1577 // Type: Enum 1578 // RequirementLevel: Optional 1579 // Stability: stable 1580 MessagingRocketmqConsumptionModelKey = attribute.Key("messaging.rocketmq.consumption_model") 1581 ) 1582 1583 var ( 1584 // Normal message 1585 MessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String("normal") 1586 // FIFO message 1587 MessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String("fifo") 1588 // Delay message 1589 MessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String("delay") 1590 // Transaction message 1591 MessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String("transaction") 1592 ) 1593 1594 var ( 1595 // Clustering consumption model 1596 MessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String("clustering") 1597 // Broadcasting consumption model 1598 MessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String("broadcasting") 1599 ) 1600 1601 // This document defines semantic conventions for remote procedure calls. 1602 const ( 1603 // A string identifying the remoting system. See below for a list of well-known 1604 // identifiers. 1605 // 1606 // Type: Enum 1607 // RequirementLevel: Required 1608 // Stability: stable 1609 RPCSystemKey = attribute.Key("rpc.system") 1610 // The full (logical) name of the service being called, including its package 1611 // name, if applicable. 1612 // 1613 // Type: string 1614 // RequirementLevel: Recommended 1615 // Stability: stable 1616 // Examples: 'myservice.EchoService' 1617 // Note: This is the logical name of the service from the RPC interface 1618 // perspective, which can be different from the name of any implementing class. 1619 // The `code.namespace` attribute may be used to store the latter (despite the 1620 // attribute name, it may include a class name; e.g., class with method actually 1621 // executing the call on the server side, RPC client stub class on the client 1622 // side). 1623 RPCServiceKey = attribute.Key("rpc.service") 1624 // The name of the (logical) method being called, must be equal to the $method 1625 // part in the span name. 1626 // 1627 // Type: string 1628 // RequirementLevel: Recommended 1629 // Stability: stable 1630 // Examples: 'exampleMethod' 1631 // Note: This is the logical name of the method from the RPC interface 1632 // perspective, which can be different from the name of any implementing 1633 // method/function. The `code.function` attribute may be used to store the latter 1634 // (e.g., method actually executing the call on the server side, RPC client stub 1635 // method on the client side). 1636 RPCMethodKey = attribute.Key("rpc.method") 1637 ) 1638 1639 var ( 1640 // gRPC 1641 RPCSystemGRPC = RPCSystemKey.String("grpc") 1642 // Java RMI 1643 RPCSystemJavaRmi = RPCSystemKey.String("java_rmi") 1644 // .NET WCF 1645 RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf") 1646 // Apache Dubbo 1647 RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo") 1648 ) 1649 1650 // Tech-specific attributes for gRPC. 1651 const ( 1652 // The [numeric status 1653 // code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC 1654 // request. 1655 // 1656 // Type: Enum 1657 // RequirementLevel: Required 1658 // Stability: stable 1659 RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code") 1660 ) 1661 1662 var ( 1663 // OK 1664 RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0) 1665 // CANCELLED 1666 RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1) 1667 // UNKNOWN 1668 RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2) 1669 // INVALID_ARGUMENT 1670 RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3) 1671 // DEADLINE_EXCEEDED 1672 RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4) 1673 // NOT_FOUND 1674 RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5) 1675 // ALREADY_EXISTS 1676 RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6) 1677 // PERMISSION_DENIED 1678 RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7) 1679 // RESOURCE_EXHAUSTED 1680 RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8) 1681 // FAILED_PRECONDITION 1682 RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9) 1683 // ABORTED 1684 RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10) 1685 // OUT_OF_RANGE 1686 RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11) 1687 // UNIMPLEMENTED 1688 RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12) 1689 // INTERNAL 1690 RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13) 1691 // UNAVAILABLE 1692 RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14) 1693 // DATA_LOSS 1694 RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15) 1695 // UNAUTHENTICATED 1696 RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16) 1697 ) 1698 1699 // Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/). 1700 const ( 1701 // Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1702 // 1.0 does not specify this, the value can be omitted. 1703 // 1704 // Type: string 1705 // RequirementLevel: ConditionallyRequired (If other than the default version 1706 // (`1.0`)) 1707 // Stability: stable 1708 // Examples: '2.0', '1.0' 1709 RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version") 1710 // `id` property of request or response. Since protocol allows id to be int, 1711 // string, `null` or missing (for notifications), value is expected to be cast to 1712 // string for simplicity. Use empty string in case of `null` value. Omit entirely 1713 // if this is a notification. 1714 // 1715 // Type: string 1716 // RequirementLevel: Optional 1717 // Stability: stable 1718 // Examples: '10', 'request-7', '' 1719 RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id") 1720 // `error.code` property of response if it is an error response. 1721 // 1722 // Type: int 1723 // RequirementLevel: ConditionallyRequired (If response is not successful.) 1724 // Stability: stable 1725 // Examples: -32700, 100 1726 RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code") 1727 // `error.message` property of response if it is an error response. 1728 // 1729 // Type: string 1730 // RequirementLevel: Optional 1731 // Stability: stable 1732 // Examples: 'Parse error', 'User already exists' 1733 RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message") 1734 ) 1735 1736 // RPC received/sent message. 1737 const ( 1738 // Whether this is a received or sent message. 1739 // 1740 // Type: Enum 1741 // RequirementLevel: Optional 1742 // Stability: stable 1743 MessageTypeKey = attribute.Key("message.type") 1744 // MUST be calculated as two different counters starting from `1` one for sent 1745 // messages and one for received message. 1746 // 1747 // Type: int 1748 // RequirementLevel: Optional 1749 // Stability: stable 1750 // Note: This way we guarantee that the values will be consistent between 1751 // different implementations. 1752 MessageIDKey = attribute.Key("message.id") 1753 // Compressed size of the message in bytes. 1754 // 1755 // Type: int 1756 // RequirementLevel: Optional 1757 // Stability: stable 1758 MessageCompressedSizeKey = attribute.Key("message.compressed_size") 1759 // Uncompressed size of the message in bytes. 1760 // 1761 // Type: int 1762 // RequirementLevel: Optional 1763 // Stability: stable 1764 MessageUncompressedSizeKey = attribute.Key("message.uncompressed_size") 1765 ) 1766 1767 var ( 1768 // sent 1769 MessageTypeSent = MessageTypeKey.String("SENT") 1770 // received 1771 MessageTypeReceived = MessageTypeKey.String("RECEIVED") 1772 ) 1773