- Use SourceLink to help ReSharper decompiler show actual code.
- Target .NET Standard 2.0 (PR #1).
- Remove ElasticSearch and InfluxDB reporters from the library.
- Remove
MetricsConfig.WithHttpEndpoint()
feature from the library. - Remove System.Configuration.ConfigurationManager dependency.
- Remove LibLog. Use
Metric.Config.WithErrorHandler((e, msg) => {...})
directly if you need to log Metrics.NET errors. - Migrate tests from xUnit to NUnit.
- Switch to SDK-style project format and dotnet core build tooling.
- Use Nerdbank.GitVersioning to automate generation of assembly and nuget package versions.
- the Graphite and text file reporters now work with configurable error tolerance
- improved memory allocations in timers: the internal meter no longer records user values (@SkyterX)
- fixed all supported reporters to report TotalTime metric for timers
- reporting can now be configured to be error tolerant (Metrics.Reports.ToleratedConsecutiveFailures config key)
- an exception is now thrown during startup if an http endpoint is configured more than once
- disabling metrics now properly works with config extensions
- performance counters are no longer being registered when metrics are disabled
- health checks can now be updated at runtime (@bronsh)
- fixed the 404 response of core metrics http listener
- Nancy.Metrics adapter: support for endpoint reports
- Owin.Metrics adapter: support for endpoint reports
- decoupled endpoint reports from http listener implementation
- graphite can now be disabled by omitting config entries (@slawwan)
- graphite report can now be configured from app.config file (@slawwan)
- fixed owin adapter endpoints content type header (@glennular)
- fixed issue with timer metric not using the uservalue when marking the interal meter (@epeshk)
- updated liblog to the latest version (@tsibelman)
- support for configuring endpoint reports
- fixed AppEnvironment.Current when Assembly.GetEntryAssembly() returns null
- fixed timer total time unit info in human readable report (@Liwoj)
- support for reporting health checks to elasticsearch (@AmirSasson)
- AppEnvironment now contains EntryAssembly name and version
- support rolling index for elasticsearch (@AmirSasson)
- fixed backwards compatibility with elasticsearch (@andrepnh)
- fixed graphite report sending incorrect values for meters (@AlistairClark7)
- fixed string formatting in HealthCheckResult (@bregger)
First 0.3.x stable release, contains all changes in previous 0.3.x-pre versions.
Note: The HDR sampling implementation is in beta stage, some issues might still be present. The default sampling type remains ExponentiallyDecaying for now.
Note for 0.2.x users: SamplingType.FavourRecent has been renamed to SamplingType.ExponentiallyDecaying.
- support multiple, separate http endpoints
- initialize http endpoints async
- fixed compatibility with elasticsearch 2.x
- global context name can be retrieved from runtime environment
- introduce configurable Default sampling type
- better meter performance (on recording path meter has same performance as a counter)
- default to using HdrHistogram port reservoir for histogram and timer metrics ( greatly reduces contention and increases performance )
- remove context Merging as the latest changes remove most of the contention on the recording path
- update packages & fix nuget package dependencies versions
- use ConcurrentUtils StripedLongAdder for better performance with concurrent counter
- provide macros for config value for Metrics.GlobalContextName
- performance improvements - reduce memory allocations
- initial support for hdrhistogram (fully synchronized version)
- context merging functionality (will probably be removed after switching to hdr histogram)
- pre-release for now until the hdr histogram port is complete and integrated
- retry starting httplistener on failure (better support for asp.net hosting where app pools are recycled)
- fix disposal of httplistener (@nkot)
- Added Process CPU usage into app counters (@o-mdr)
- resharper cleanup
- update dependencies
- fix possible issue when metrics are disabled and timer returns null TimerContext
- fix error when trying to globally disable metrics
- first elasticsearch bits
- graphite adapter (early bits, might have issues)
- refactor & cleanup reporting infra
- fix error logging for not found performance counters
- record active sessions for timers
- handle access issues for perf counters
- preparations for out-of-process metrics
- fix http listener prefix handling
- JSON metrics refactor
- remote metrics
- JSON version
- added environment
- various fixes
- add support for set counter & set meters details
- cleanup owin adapter
- better & more resilient error handling
- add support for tagging metrics (not yet used in reports or visualization)
- add support for suppling a string user value to histograms & timers for tracking min / max / last values
- tests cleanup, some refactoring
- port latest changes from original metrics lib
- port optimization from ExponentiallyDecayingReservoir (https://github.com/etishor/Metrics.NET/commit/1caa9d01c16ff63504612d64771d52e9d7d9de5e)
- other minor optimizations
- add gauges for thread pool stats
- implement metrics contexts (and child contexts)
- make config more friendly
- most used condig options are now set by default
- add logging based on liblog (no fixed dependency - automaticaly wire into existing logging framework)
- update nancy & owin adapters to use contexts
- add some app.config settings to ease configuration
- update to latest visualization app (fixes checkboxes being outside dropdown)
- fix json caching in IE
- allow defining custom names for metric registry
- fix json formating (thanks to Evgeniy Kucheruk @kpoxa)
- make reporting more extensible
- remove support for .NET 4.0
- for histograms also store last value
- refactor configuration ( use Metric.Config.With...() )
- add option to completely disable metrics Metric.Config.CompletelyDisableMetrics() (useful for measuring metrics impact)
- simplify health checks