Repost.Client.OpenTelemetry
1.0.8
dotnet add package Repost.Client.OpenTelemetry --version 1.0.8
NuGet\Install-Package Repost.Client.OpenTelemetry -Version 1.0.8
<PackageReference Include="Repost.Client.OpenTelemetry" Version="1.0.8" />
<PackageVersion Include="Repost.Client.OpenTelemetry" Version="1.0.8" />
<PackageReference Include="Repost.Client.OpenTelemetry" />
paket add Repost.Client.OpenTelemetry --version 1.0.8
#r "nuget: Repost.Client.OpenTelemetry, 1.0.8"
#:package Repost.Client.OpenTelemetry@1.0.8
#addin nuget:?package=Repost.Client.OpenTelemetry&version=1.0.8
#tool nuget:?package=Repost.Client.OpenTelemetry&version=1.0.8
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:
- One-call registration of that source and meter with the OpenTelemetry SDK, and
- 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 | Versions 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. |
-
.NETFramework 4.7.2
- OpenTelemetry (>= 1.15.3)
-
.NETStandard 2.0
- OpenTelemetry (>= 1.15.3)
-
net8.0
- OpenTelemetry (>= 1.15.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.