DotnetKit.MetricFlow
1.0.0-preview.0.6
dotnet add package DotnetKit.MetricFlow --version 1.0.0-preview.0.6
NuGet\Install-Package DotnetKit.MetricFlow -Version 1.0.0-preview.0.6
<PackageReference Include="DotnetKit.MetricFlow" Version="1.0.0-preview.0.6" />
<PackageVersion Include="DotnetKit.MetricFlow" Version="1.0.0-preview.0.6" />
<PackageReference Include="DotnetKit.MetricFlow" />
paket add DotnetKit.MetricFlow --version 1.0.0-preview.0.6
#r "nuget: DotnetKit.MetricFlow, 1.0.0-preview.0.6"
#:package DotnetKit.MetricFlow@1.0.0-preview.0.6
#addin nuget:?package=DotnetKit.MetricFlow&version=1.0.0-preview.0.6&prerelease
#tool nuget:?package=DotnetKit.MetricFlow&version=1.0.0-preview.0.6&prerelease
MetricFlow
MetricFlow is a lightweight .NET library designed to help developers define and track functional and domain-oriented metrics (such as counters, timers, and event-based measurements).
Features
- Counters: Track the number of occurrences of an event.
- Timers: Measure the duration of operations.
- Event-based Measurements: Capture and analyze specific events within your application.
- Metadata and Tags: Add contextual information to your metrics for better analysis and filtering.
- Sampling: Control the frequency of metric collection to manage performance and data volume.
Getting Started
Prerequisites
- .NET SDK installed on your machine
Installation
Clone the repository:
git clone https://github.com/yourusername/DotnetKit.git cd DotnetKit/MetricFlow
Restore dependencies:
dotnet restore
Usage
To use MetricFlow in your project, follow these steps:
Define a metric tracker:
var tracker = new MetricTracker("ExecutionTimeMetricsTopic", new() { ["tenant_id"] = "TenantId1", ["session_id"] = Guid.NewGuid().ToString() });
Track metrics in different ways:
tracker.In("GlobalOperation"); for (var i = 0; i < 10; i++) { using (var __ = tracker.Track("Operation1", new() { ["operation_id"] = $"{i}" })) { await Task.Delay(2); } using (var __ = tracker.Track("Operation2", new() { ["operation_id"] = $"{10 - i}" })) { await Task.Delay(4); } } tracker.Out("GlobalOperation"); Console.WriteLine(tracker.ToString());
Example
The SimpleMetricCountersExample
demonstrates how to use the MetricFlow
library to track and measure metrics in a .NET application. The example includes a BenchRunner
class that simulates operations and tracks their execution times.
Running the Example
To run the example, execute the following command:
dotnet run --project examples/SimpleMetricCountersExample
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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. |
-
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 |
---|---|---|
1.0.0-preview.0.6 | 81 | 2/26/2025 |