Install
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard |
README
Vostok.Tracing.Hercules
An implementation of trace span sender based on Hercules client. Also provides mapping from Hercules events back to spans.
Here's how ISpan instances are mapped into Hercules events (according to schema):
TraceId(mandatory) --->traceIdtag ofUUIDtype.SpanId(mandatory) --->spanIdtag ofUUIDtype.ParentSpanId(optional) --->parentSpanIdtag ofUUIDtype.BeginTimestamp(mandatory) corresponds to 2 tags:beginTimestampUtc— alongtag that contains the UTC timestamp in 100-ns ticks from Unix epoch.beginTimestampUtcOffset— alongtag with offset from UTC expressed in 100-ns ticks.
EndTimestamp(optional) also corresponds to 2 tags, both of which can be absent for 'endless' spans:endTimestampUtc— alongtag that contains the UTC timestamp in 100-ns ticks from Unix epoch.endTimestampUtcOffset— alongtag with offset from UTC expressed in 100-ns ticks.
Annotationsdictionary corresponds to a container with nameannotations. This container contains a tag for each pair. Keys are translated as-is, and the values are handled according to following conventions:- If the value is a primitive scalar or a vector of primitive scalars natively supported by Hercules (such as
int,long,guid,string, etc), it's mapped as-is. - Otherwise the value gets converted to
string: either stringified directly (if it properly overridesToString()) or serialized to JSON. No further container-like structure is allowed, all values end up being 'flat'.
- If the value is a primitive scalar or a vector of primitive scalars natively supported by Hercules (such as
Hercules event's built-in timestamp is chosen equal to EndTimestampUtc or BeginTimestampUtc if former is missing.
Unix epoch used as a reference point for timestamp is 1970-01-01 00:00:00.000Z.
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.