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 )