Juvina.Diagnostics
0.1.0
dotnet add package Juvina.Diagnostics --version 0.1.0
NuGet\Install-Package Juvina.Diagnostics -Version 0.1.0
<PackageReference Include="Juvina.Diagnostics" Version="0.1.0" />
<PackageVersion Include="Juvina.Diagnostics" Version="0.1.0" />
<PackageReference Include="Juvina.Diagnostics" />
paket add Juvina.Diagnostics --version 0.1.0
#r "nuget: Juvina.Diagnostics, 0.1.0"
#:package Juvina.Diagnostics@0.1.0
#addin nuget:?package=Juvina.Diagnostics&version=0.1.0
#tool nuget:?package=Juvina.Diagnostics&version=0.1.0
Juvina.Diagnostics
See what memory saves you, on your own dashboard, on your own traffic.
OpenTelemetry instrumentation for Juvina memory recalls. It emits four measurements into whatever backend you already use — Prometheus, Grafana, Application Insights, Jaeger, the .NET Aspire dashboard, or anything else that speaks OTel.
You don't have to take anyone's word for what memory saves. The line draws itself, in the pane you already watch.
juvina.tokens.saved tokens NOT sent, versus replaying the history
juvina.tokens.sent tokens actually sent as the constructed recall
juvina.recall.duration how long the recall took (ms)
juvina.recall.evidence_lines evidence lines the engine drew on
Install
dotnet add package Juvina.Diagnostics
Wire it up
Register the meter with your existing OpenTelemetry setup:
builder.Services.AddOpenTelemetry()
.WithMetrics(m => m.AddMeter(JuvinaMetrics.MeterName))
.WithTracing(t => t.AddSource(JuvinaMetrics.ActivitySourceName));
Then record each recall:
using var span = JuvinaMetrics.StartRecall(environment: "my-project");
var recall = await memory.RecallAsync(question);
JuvinaMetrics.RecordRecall(
recallTokens: recall.TokenCount,
historyTokens: conversation.TokenCount, // measured, not estimated — see below
durationMs: recall.LatencyMs,
evidenceLines: recall.EvidenceLines,
environment: "my-project");
That's it. juvina.tokens.saved starts accumulating on your dashboard.
About the saving
historyTokens is optional, and if you don't pass it, no saving is reported.
That is deliberate. The saving is the difference between the compact recall you sent and the full history you would otherwise have replayed — so it can only be reported when you actually know the size of that history. An unmeasured saving is not a saving, and this package will not invent one.
Pass the real token count of the conversation you would have sent, and the number on your dashboard is yours, computed from your own traffic.
What this package does not do
- It sends nothing anywhere. It writes to the standard .NET
MeterandActivitySourceAPIs; your application decides where — or whether — that goes. - It has no dependency on the Juvina engine, so it cannot phone home even by accident.
- On
net8.0it takes no package dependency at all:System.Diagnostics.Metricsis in the BCL.
Requires
The metrics describe recalls performed by the Juvina memory engine. Juvina runs entirely on your machine — memories live in a local database, and model calls go to your own endpoint on your own key.
MIT licensed.
| 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 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. |
-
.NETStandard 2.0
- System.Diagnostics.DiagnosticSource (>= 8.0.1)
-
net8.0
- No dependencies.
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 |
|---|---|---|
| 0.1.0 | 100 | 9/8/2026 |