Repost.Client.OpenTelemetry 1.0.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package Repost.Client.OpenTelemetry --version 1.0.6
                    
NuGet\Install-Package Repost.Client.OpenTelemetry -Version 1.0.6
                    
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="Repost.Client.OpenTelemetry" Version="1.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Repost.Client.OpenTelemetry" Version="1.0.6" />
                    
Directory.Packages.props
<PackageReference Include="Repost.Client.OpenTelemetry" />
                    
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 Repost.Client.OpenTelemetry --version 1.0.6
                    
#r "nuget: Repost.Client.OpenTelemetry, 1.0.6"
                    
#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 Repost.Client.OpenTelemetry@1.0.6
                    
#: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=Repost.Client.OpenTelemetry&version=1.0.6
                    
Install as a Cake Addin
#tool nuget:?package=Repost.Client.OpenTelemetry&version=1.0.6
                    
Install as a Cake Tool

Repost.Client.OpenTelemetry

Thin OpenTelemetry glue for the Repost webhook publish client.

Repost.Client already emits spans and metrics through its own built-in ActivitySource and Meter (both named Repost.Client) — the platform-blessed layering, no vendored instrumentation. This package adds exactly two things on top:

  1. One-call registration of that source and meter with the OpenTelemetry SDK, and
  2. the frozen naming conventions as public constants, so dashboards, collector configs, and assertions reference the same strings the runtime emits.

No callbacks, no enrichment, no wrapping. Resource attribution stays with the standard SDK (ResourceBuilder.AddService); this package does not duplicate it.

Wiring — ASP.NET Core

using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using Repost.Client.OpenTelemetry;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRepostClient(builder.Configuration.GetSection("Repost"));
builder.Services.AddOpenTelemetry()
    .ConfigureResource(resource => resource.AddService("orders-api"))
    .WithTracing(tracing => tracing
        .AddAspNetCoreInstrumentation()
        .AddRepostInstrumentation()   // subscribes the "Repost.Client" ActivitySource
        .AddOtlpExporter())
    .WithMetrics(metrics => metrics
        .AddAspNetCoreInstrumentation()
        .AddRepostInstrumentation()   // subscribes the "Repost.Client" Meter
        .AddOtlpExporter());

An inbound request's span becomes the parent of the repost.send operation span: the runtime captures Activity.Current at send-admission time and parents explicitly (never ambient flow), and writes the W3C traceparent/tracestate request headers from the attempt span itself.

Wiring — console Worker

using OpenTelemetry;
using Repost.Client.OpenTelemetry;

using var tracerProvider = Sdk.CreateTracerProviderBuilder()
    .AddRepostInstrumentation()
    .AddOtlpExporter()
    .Build();
using var meterProvider = Sdk.CreateMeterProviderBuilder()
    .AddRepostInstrumentation()
    .AddOtlpExporter()
    .Build();

Naming conventions

Frozen in RepostOpenTelemetry as public constants:

Constant Value
ActivitySourceName / MeterName Repost.Client
OperationSpanName repost.send (Producer)
AttemptSpanName repost.send.attempt (Client)
OperationsCounterName repost.client.send.operations
AttemptsCounterName repost.client.send.attempts
RetriesCounterName repost.client.send.retries
OperationDurationHistogramName repost.client.send.operation.duration (ms)
AttemptDurationHistogramName repost.client.send.attempt.duration (ms)
OperationIdTagName repost.operation_id
AttemptNumberTagName repost.attempt_number
OutcomeTagName repost.outcome
DeliveryStateTagName repost.delivery_state
HttpStatusClassTagName repost.http_status_class
ErrorCodeTagName repost.error_code

Every operation produces one repost.send span with one repost.send.attempt span per transport attempt, parented on the operation span. Counters and histograms carry the low-cardinality outcome/delivery-state/status-class tags (error_code on failing outcomes only); the retries counter carries only error_code. Spans and measurements exist only when a listener is registered and RepostClientOptions.TelemetryEnabled is true (the default); set it to false to keep registration but silence emission.

Target frameworks

netstandard2.0, net472, net8.0 — the runtime's full matrix. The OpenTelemetry dependency is pinned centrally (Directory.Packages.props) at the lowest line clearing the repository's NuGetAudit gate.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 is compatible.  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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.8 114 8/12/2026
1.0.6 109 8/12/2026