Documentation
¶
Index ¶
- Constants
- func NewContext(ctx context.Context, t SpanTrace) context.Context
- type BuiltinFormat
- type Carrier
- type HttpCarrier
- type LogField
- type SpanTrace
- type Tag
- func Bool(key string, val bool) Tag
- func Int(key string, val int) Tag
- func String(key string, val string) Tag
- func TagBool(key string, val bool) Tag
- func TagFloat32(key string, val float32) Tag
- func TagFloat64(key string, val float64) Tag
- func TagInt(key string, val int) Tag
- func TagInt64(key string, val int64) Tag
- func TagString(key string, val string) Tag
Constants ¶
View Source
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" )
View Source
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 Span tags https://github.com/opentracing/specification/blob/master/semantic_conventions.md#span-tags-table
View Source
const (
// trace 键
GlobalTraceID = "atreus-trace-id"
)
Trace key
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BuiltinFormat ¶
type BuiltinFormat byte
BuiltinFormat is used to demarcate the values within package `trace` that are intended for use with the Tracer.Inject() and Tracer.Extract() methods.
const ( // HTTPFormat represents Trace as HTTP header string pairs. // // the HTTPFormat format requires that the keys and values // be valid as HTTP headers as-is (i.e., character casing may be unstable // and special characters are disallowed in keys, values should be // URL-escaped, etc). // // the carrier must be a `http.Header`. HTTPFormat BuiltinFormat = iota // GRPCFormat represents Trace as gRPC metadata. // // the carrier must be a `google.golang.org/grpc/metadata.MD`. GRPCFormat )
support format list
type Carrier ¶
Carrier propagator must convert generic interface{} to something this implement Carrier interface, Trace can use Carrier to represents itself.
type HttpCarrier ¶
func (HttpCarrier) Get ¶
func (h HttpCarrier) Get(key string) string
func (HttpCarrier) Set ¶
func (h HttpCarrier) Set(key, val string)
type SpanTrace ¶
type SpanTrace interface {
// traceid包含 traceid+spanid+parentid的组合
TraceID() string
// Fork fork a trace with client trace.
Fork(serviceName, operationName string) SpanTrace
// Follow
Follow(serviceName, operationName string) SpanTrace
// Finish when trace finish call it.
Finish(err *error)
// Adds a tag to the trace.
//
// If there is a pre-existing tag set for `key`, it is overwritten.
//
// Tag values can be numeric types, strings, or bools. The behavior of
// other tag value types is undefined at the OpenTracing level. If a
// tracing system does not know how to handle a particular value type, it
// may ignore the tag, but shall not panic.
// NOTE current only support legacy tag: TagAnnotation TagAddress TagComment
// other will be ignore
SetTag(tags ...Tag) SpanTrace
// LogFields is an efficient and type-checked way to record key:value
// NOTE current unsupport
SetLog(logs ...LogField) SpanTrace
// Visit visits the k-v pair in trace, calling fn for each.
Visit(fn func(k, v string))
// SetTitle reset trace title
SetTitle(title string)
}
SpanTrace 为 Span 的公共接口
Click to show internal directories.
Click to hide internal directories.
