Skip to content
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
C# Other
  1. C# 99.8%
  2. Other 0.2%
Branch: dev
Clone or download

Latest commit

nahidf and alhardy Update README.md (#548)
Co-authored-by: Allan Hardy <alhardy@users.noreply.github.com>
Latest commit c6ccfd5 May 12, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.azure Features/4.0.0 (#503) Oct 31, 2019
.github #426 Fix links in Pull Request template May 9, 2019
build Features/4.0.0 (#503) Oct 31, 2019
src Add ability to record a timer using a user supplied value. Fixes #304 ( May 12, 2020
.gitattributes initial commit Apr 22, 2016
.gitignore Camel case formatting (#525) Mar 31, 2020
AppMetrics.ruleset #186 removing dependency on Microsoft DI and configuration Sep 2, 2017
AppMetrics.sln.DotSettings #336 lowering json.net version, bumping package version to 3.1.0 Feb 5, 2019
GitReleaseManager.yaml updating grm config Feb 6, 2018
Key.snk #409 adding app metrics repos and updating builds Mar 26, 2019
LICENSE Initial commit Apr 22, 2016
NuGet.config Features/4.0.0 (#503) Oct 31, 2019
README.md Update README.md (#548) May 12, 2020
app-metrics.licenseheader #264 updating copyright headers May 5, 2018
build.ps1 Features/4.0.0 (#503) Oct 31, 2019
build.sh Features/4.0.0 (#503) Oct 31, 2019
clean_cache.ps1 Features/4.0.0 (#503) Oct 31, 2019
clear_bin_and_obj.ps1 Switch to .NET Core 3.1 (#534) Mar 31, 2020
global.json bump dotnet sdk Apr 28, 2020
logo.png Features/4.0.0 (#503) Oct 31, 2019
stylecop.json #264 updating copyright headers May 5, 2018
xunit.runner.json #155 #157 middleware and dependent packages updated to use aspnet cor… Jun 10, 2017

README.md

App Metrics App Metrics

Official Site License Donate

What is App Metrics?

App Metrics is an open-source and cross-platform .NET library used to record metrics within an application. App Metrics can run on .NET Core or on the full .NET framework also supporting .NET 4.5.2. App Metrics abstracts away the underlaying repository of your Metrics for example InfluxDB, Graphite, Elasticsearch etc, by sampling and aggregating in memory and providing extensibility points to flush metrics to a repository at a specified interval.

App Metrics provides various metric types to measure things such as the rate of requests, counting the number of user logins over time, measure the time taken to execute a database query, measure the amount of free memory and so on. Metrics types supported are Gauges, Counters, Meters, Histograms and Timers and Application Performance Indexes Apdex.

App.Metrics includes an Exponentially Forward Decaying, Sliding Window and Algorithm R reservoir implementations. For more details on reservoir sampling see the docs.

Documentation

Latest Builds, Packages & Repo Stats

Branch Azure Devops
dev Azure Devops
master AppVeyor

Visualization

Dashboards can be imported from Grafana

Grafana Web Monitoring

Grafana/InfluxDB Generic Web Dashboard Demo

Grafana OAuth2 Client Web Monitoring

Grafana/InfluxDB Generic OAuth2 Web Dashboard Demo

How to build

Azure Devops builds are triggered on commits and PRs to the dev branch

  • Install the latest .NET Core 2.x SDK
  • Run build.ps1 or build.sh in the root of the repository

How to run benchmarks

App.Metrics includes benchmarking using BenchmarkDotNet. You can find the benchmark results here.

To run, from the solution's root:

	cd .\benchmarks\App.Metrics.Benchmarks.Runner\
	dotnet run -c "Release" --framework netcoreapp3.1

You'll then be prompted to choose a benchmark to run which will output a markdown file with the result in directory .\benchmarks\App.Metrics.Benchmarks.Runner\BenchmarkDotNet.Artifacts\results.

Alternatively, you can run the same benchmarks from visual studio using xUnit.net in the benchmark project.

Contributing

See the contribution guidlines for details.

Acknowledgements

Thanks for providing free open source licensing

License

This library is release under Apache 2.0 License ( see LICENSE ) Copyright (c) 2016 Allan Hardy

See LICENSE


App Metrics is based on the Metrics.NET library, and at the moment uses the same reservoir sampling code from the original library which is a port of the Java Dropwizard Metrics library.

Metrics.NET Licensed under these terms: "Metrics.NET is release under Apache 2.0 License Copyright (c) 2014 Iulian Margarintescu" see LICENSE

Dropwizard Metrics Licensed under these terms*: "Copyright (c) 2010-2013 Coda Hale, Yammer.com Published under Apache Software License 2.0, see LICENSE"


Powered By NDepend

You can’t perform that action at this time.