Vostok.Tracing.Abstractions 0.1.9

Prefix Reserved
dotnet add package Vostok.Tracing.Abstractions --version 0.1.9
                    
NuGet\Install-Package Vostok.Tracing.Abstractions -Version 0.1.9
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Vostok.Tracing.Abstractions" Version="0.1.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vostok.Tracing.Abstractions" Version="0.1.9" />
                    
Directory.Packages.props
<PackageReference Include="Vostok.Tracing.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Vostok.Tracing.Abstractions --version 0.1.9
                    
#r "nuget: Vostok.Tracing.Abstractions, 0.1.9"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Vostok.Tracing.Abstractions@0.1.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Vostok.Tracing.Abstractions&version=0.1.9
                    
Install as a Cake Addin
#tool nuget:?package=Vostok.Tracing.Abstractions&version=0.1.9
                    
Install as a Cake Tool

Vostok tracing

Build & Test & Publish NuGet

Distributed tracing allows to reconstruct the history of the logical operation spanning many applications and machines in time as a tree of smaller actions or events called spans. Spans can represent HTTP requests, database queries or any other significant interactions or events in a distributed system. A single span always describes a local event in a single process: an HTTP request usually produces two spans (client-side and server-side). Each kind of span stores specific information about performed action.

<br/>

<br/>

Span structure

Every span consists of following fields:

  • TraceId — unique identifier of the trace containing the span (Guid).

    • Gets assigned on first operation (usually on a front-end application instance).
    • Serves as a correlation identifier between spans
  • SpanId — unique identifier of the span itself (Guid).

  • ParentSpanId — identifier of the parent span in the tree (Guid).

    • May be absent for root span in the tree.
  • BeginTimestamp — beginning timestamp of the event or interaction described by this span (UTC timestamp + timezone offset).

  • EndTimestamp — ending timestamp of the event or interaction described by this span (UTC timestamp + timezone offset).

    • Always measured with the same clock as BeginTimestamp. This allows to derive span duration as a difference between EndTimestamp and BeginTimestamp.
    • May be absent for a special kind of 'endless' spans described further.
  • Annotations — payload in key-value format (string --> object). Keys are case-sensitive.

<br/>

Common annotations

These are the annotations relevant for any span:

Name Description
kind Span kind. There are a number of predefined span kinds for common use cases (e.g. http-request-server).
operation Human-readable logical operation or event name (e.g. create-user).
status Logical operation or event status (success, error, or warning). Might not have operation-specific values.
application Name of the application the span originated from.
environment Name of the environment the span originated from.
host DNS name of the host the span originated from.
component Name of a library or component in code responsible for producing the span.

<br/> <br/>

Kind-specific annotations

HTTP requests

Common annotations for all spans related to HTTP requests:

Name Description Default value
operation See common annotations. {http.request.method} {normalized http.request.url}. Example: POST /page/{num}/process
http.request.method Request method (e.g. GET, POST, PUT, etc). N/A
http.request.url Request URL without query parameters. N/A
http.request.size Request body size in bytes. N/A
http.response.code Response code (e.g. 200 or 404). N/A
http.response.size Response body size in bytes. N/A

Normalized URL is a short URL without scheme, authority and query parameters. Unique path segments (entity ids, search queries, hex values) are replaced with placeholders. Example before and after normalization: http://vm-app1/users/a534bcbd/ --> users/{id}

<br/>

HTTP client (direct)

Submitting an HTTP request directly to an external URL or a service replica.

Name Description Default value
kind See common annotations. http-request-client
http.request.targetService Name of the service to which request is sent. N/A
http.request.targetEnvironment Name of the environment to which request is sent. N/A

<br/>

HTTP client (cluster)

Submitting an HTTP request to a clustered application with several replicas.

Name Description Default value
kind See common annotations. http-request-cluster
http.cluster.strategy Name of the strategy used to send request (e.g. sequential, parallel, ...) N/A
http.cluster.status Status of interaction with a cluster (e.g. success, no-replicas, ...) N/A
http.request.targetService Name of the service to which request is sent. N/A
http.request.targetEnvironment Name of the environment to which request is sent. N/A

<br/>

HTTP server

Handling an HTTP request on server.

Name Description Default value
kind See common annotations. http-request-server
http.client.name Name of the client application that sent the request. N/A
http.client.address Address of the client application instance (host name or IP address). N/A

<br/> <br/>

Custom (not HTTP) requests

Common annotations for all spans related to custom requests:

Name Description Default value
operation See common annotations. N/A
status See common annotations. N/A
custom.response.status Custom request-specific status. N/A
custom.request.size Request size in bytes. N/A
custom.response.size Response size in bytes. N/A
custom.request.targetService Name of the service to which request is sent. N/A
custom.request.targetEnvironment Name of the environment to which request is sent. N/A

<br/>

Custom (not HTTP) client (direct)

Submitting custom request directly to a service replica.

Name Description Default value
kind See common annotations. custom-request-client
custom.request.replica Name of the replica to which request is sent. N/A

<br/>

Custom (not HTTP) client (cluster)

Submitting custom request to a clustered application with several replicas.

Name Description Default value
kind See common annotations. custom-request-cluster

<br/> <br/>

Custom operations

Performing custom server operation.

Name Description Default value
kind See common annotations. custom-operation
operation See common annotations. N/A
status See common annotations. N/A
custom.operation.status Custom operation-specific status. N/A
custom.operation.size Processed data size in bytes. N/A
custom.operation.targetService Name of the service with which this operation is associated. {application}
custom.operation.targetEnvironment Name of the environment with which this operation is associated. {environment}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (17)

Showing the top 5 NuGet packages that depend on Vostok.Tracing.Abstractions:

Package Downloads
Vostok.Tracing.Extensions

This library contains a set of extensions for common case scenarios (such as HTTP request tracing).

Vostok.Hosting

The entry point to create and launch Vostok-compatible services.

Vostok.ZooKeeper.Client

An implementation of ZooKeeper client.

Vostok.Hosting.Abstractions

Vostok.Hosting.Abstractions

Vostok.Tracing.Hercules

An implementation of trace span sender based on Hercules client. Also provides mapping from Hercules events back to spans.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.9 11,169 12/9/2024
0.1.8-pre000021 11,049 9/14/2022
0.1.8-pre000020 20,463 7/28/2022
0.1.8-pre000019 3,033 3/28/2022
0.1.8-pre000018 298 12/30/2021
0.1.8-pre000017 295 12/30/2021
0.1.7 105,511 12/30/2021
0.1.7-pre000015 295 12/30/2021
0.1.7-pre000013 309 12/20/2021
0.1.7-pre000012 296 12/7/2021
0.1.6 31,058 12/7/2021
0.1.6-pre000010 311 12/6/2021
0.1.5 4,036 12/6/2021
0.1.5-pre000072 10,602 12/3/2020
0.1.5-pre000071 1,648 11/20/2020
0.1.5-pre000008 305 12/4/2021
0.1.5-pre000007 300 12/3/2021
0.1.5-pre000006 285 12/3/2021
0.1.5-pre000005 303 11/30/2021
0.1.5-pre000004 2,905 11/25/2021
0.1.5-pre000003 6,241 11/24/2021
0.1.5-pre000002 310 11/23/2021
0.1.5-pre000001 358 11/12/2021
0.1.4 122,757 11/20/2020
0.1.4-pre000066 7,478 6/17/2020
0.1.3 101,678 6/17/2020
0.1.3-pre000058 12,669 3/3/2020
0.1.3-pre000057 487 3/3/2020
0.1.2 83,315 3/3/2020
0.1.1 91,385 1/16/2020
0.1.1-pre000049 2,795 10/1/2019
0.1.1-pre000048 534 9/30/2019
0.1.1-pre000047 1,095 8/23/2019
0.1.1-pre000046 1,694 3/21/2019
0.1.0 103,209 3/21/2019
0.1.0-pre000044 575 3/21/2019
0.0.1-pre000043 1,285 1/16/2019
0.0.1-pre000042 1,691 9/27/2018
0.0.1-pre000041 764 9/27/2018
0.0.1-pre000040 1,847 9/14/2018
0.0.1-pre000039 800 9/14/2018
0.0.1-pre000038 1,022 9/13/2018
0.0.1-pre000037 812 9/13/2018
0.0.1-pre000036 811 9/12/2018
0.0.1-pre000035 774 9/12/2018
0.0.1-pre000034 802 9/12/2018
0.0.1-pre000033 789 9/12/2018
0.0.1-pre000032 807 9/12/2018
0.0.1-pre000031 890 9/10/2018
0.0.1-pre000030 900 9/7/2018
0.0.1-pre000029 826 9/7/2018
0.0.1-pre000028 827 9/7/2018
0.0.1-pre000027 847 9/7/2018
0.0.1-pre000026 820 9/7/2018
0.0.1-pre000025 795 9/4/2018
0.0.1-pre000024 790 9/4/2018
0.0.1-pre000023 841 9/4/2018
0.0.1-pre000022 847 9/4/2018
0.0.1-pre000021 789 8/30/2018
0.0.1-pre000020 776 8/30/2018
0.0.1-pre000019 813 8/30/2018
0.0.1-pre000018 785 8/30/2018
0.0.1-pre000017 779 8/30/2018
0.0.1-pre000016 826 8/30/2018
0.0.1-pre000015 945 8/26/2018
0.0.1-pre000014 923 8/24/2018
0.0.1-pre000013 908 8/24/2018
0.0.1-pre000012 838 8/23/2018
0.0.1-pre000011 826 8/23/2018
0.0.1-pre000010 813 8/22/2018
0.0.1-pre000009 1,033 8/21/2018
0.0.1-pre000008 952 8/21/2018
0.0.1-pre000007 933 8/20/2018
0.0.1-pre000006 1,289 8/20/2018
0.0.1-pre000005 862 8/20/2018
0.0.1-pre000004 1,131 8/17/2018
0.0.1-pre000003 834 8/17/2018
0.0.1-pre000002 841 8/16/2018
0.0.1-pre000001 861 8/16/2018