123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- package trace
- // Standard Span tags https://github.com/opentracing/specification/blob/master/semantic_conventions.md#span-tags-table
- const (
- // The software package, framework, library, or module that generated the associated Span.
- // E.g., "grpc", "django", "JDBI".
- // type string
- TagComponent = "component"
- // Database instance name.
- // E.g., In java, if the jdbc.url="jdbc:mysql://127.0.0.1:3306/customers", the instance name is "customers".
- // type string
- TagDBInstance = "db.instance"
- // A database statement for the given database type.
- // E.g., for db.type="sql", "SELECT * FROM wuser_table"; for db.type="redis", "SET mykey 'WuValue'".
- TagDBStatement = "db.statement"
- // Database type. For any SQL database, "sql". For others, the lower-case database category,
- // e.g. "cassandra", "hbase", or "redis".
- // type string
- TagDBType = "db.type"
- // Username for accessing database. E.g., "readonly_user" or "reporting_user"
- // type string
- TagDBUser = "db.user"
- // true if and only if the application considers the operation represented by the Span to have failed
- // type bool
- TagError = "error"
- // HTTP method of the request for the associated Span. E.g., "GET", "POST"
- // type string
- TagHTTPMethod = "http.method"
- // HTTP response status code for the associated Span. E.g., 200, 503, 404
- // type integer
- TagHTTPStatusCode = "http.status_code"
- // URL of the request being handled in this segment of the trace, in standard URI format.
- // E.g., "https://domain.net/path/to?resource=here"
- // type string
- TagHTTPURL = "http.url"
- // An address at which messages can be exchanged.
- // E.g. A Kafka record has an associated "topic name" that can be extracted by the instrumented producer or consumer and stored using this tag.
- // type string
- TagMessageBusDestination = "message_bus.destination"
- // Remote "address", suitable for use in a networking client library.
- // This may be a "ip:port", a bare "hostname", a FQDN, or even a JDBC substring like "mysql://prod-db:3306"
- // type string
- TagPeerAddress = "peer.address"
- // Remote hostname. E.g., "opentracing.io", "internal.dns.name"
- // type string
- TagPeerHostname = "peer.hostname"
- // Remote IPv4 address as a .-separated tuple. E.g., "127.0.0.1"
- // type string
- TagPeerIPv4 = "peer.ipv4"
- // Remote IPv6 address as a string of colon-separated 4-char hex tuples.
- // E.g., "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
- // type string
- TagPeerIPv6 = "peer.ipv6"
- // Remote port. E.g., 80
- // type integer
- TagPeerPort = "peer.port"
- // Remote service name (for some unspecified definition of "service").
- // E.g., "elasticsearch", "a_custom_microservice", "memcache"
- // type string
- TagPeerService = "peer.service"
- // If greater than 0, a hint to the Tracer to do its best to capture the trace.
- // If 0, a hint to the trace to not-capture the trace. If absent, the Tracer should use its default sampling mechanism.
- // type string
- TagSamplingPriority = "sampling.priority"
- // Either "client" or "server" for the appropriate roles in an RPC,
- // and "producer" or "consumer" for the appropriate roles in a messaging scenario.
- // type string
- TagSpanKind = "span.kind"
- // legacy tag
- TagAnnotation = "legacy.annotation"
- TagAddress = "legacy.address"
- TagComment = "legacy.comment"
- )
- // Standard log tags
- const (
- // The type or "kind" of an error (only for event="error" logs). E.g., "Exception", "OSError"
- // type string
- LogErrorKind = "error.kind"
- // For languages that support such a thing (e.g., Java, Python),
- // the actual Throwable/Exception/Error object instance itself.
- // E.g., A java.lang.UnsupportedOperationException instance, a python exceptions.NameError instance
- // type string
- LogErrorObject = "error.object"
- // A stable identifier for some notable moment in the lifetime of a Span. For instance, a mutex lock acquisition or release or the sorts of lifetime events in a browser page load described in the Performance.timing specification. E.g., from Zipkin, "cs", "sr", "ss", or "cr". Or, more generally, "initialized" or "timed out". For errors, "error"
- // type string
- LogEvent = "event"
- // A concise, human-readable, one-line message explaining the event.
- // E.g., "Could not connect to backend", "Cache invalidation succeeded"
- // type string
- LogMessage = "message"
- // A stack trace in platform-conventional format; may or may not pertain to an error. E.g., "File \"example.py\", line 7, in \<module\>\ncaller()\nFile \"example.py\", line 5, in caller\ncallee()\nFile \"example.py\", line 2, in callee\nraise Exception(\"Yikes\")\n"
- // type string
- LogStack = "stack"
- )
- // Tag interface
- type Tag struct {
- Key string
- Value interface{}
- }
- // TagString new string tag.
- func TagString(key string, val string) Tag {
- return Tag{Key: key, Value: val}
- }
- // TagInt64 new int64 tag.
- func TagInt64(key string, val int64) Tag {
- return Tag{Key: key, Value: val}
- }
- // TagInt new int tag
- func TagInt(key string, val int) Tag {
- return Tag{Key: key, Value: val}
- }
- // TagBool new bool tag
- func TagBool(key string, val bool) Tag {
- return Tag{Key: key, Value: val}
- }
- // TagFloat64 new float64 tag
- func TagFloat64(key string, val float64) Tag {
- return Tag{Key: key, Value: val}
- }
- // TagFloat32 new float64 tag
- func TagFloat32(key string, val float32) Tag {
- return Tag{Key: key, Value: val}
- }
- // String new tag String.
- // NOTE: use TagString
- func String(key string, val string) Tag {
- return TagString(key, val)
- }
- // Int new tag Int.
- // NOTE: use TagInt
- func Int(key string, val int) Tag {
- return TagInt(key, val)
- }
- // Bool new tagBool
- // NOTE: use TagBool
- func Bool(key string, val bool) Tag {
- return TagBool(key, val)
- }
- // Log new log.
- func Log(key string, val string) LogField {
- return LogField{Key: key, Value: val}
- }
- // LogField LogField
- type LogField struct {
- Key string
- Value string
- }
|