Skip to content

kbilsted/Okanshi

 
 

Repository files navigation

Build status Nuget Badge NuGet Pre Release

Logo Okanshi

Okanshi is a high performance low overhead library for measuring, collecting and transporting in-process application metrics. It also provide a convenient health check mechanism that works out of the box.

In order to use Okanshi, you must insert into your code, various Okanshi monitors (stopwatches, counters, ...). Okanshi will then collect and transport them to an external service such as InfluxDB, Splunk, or ElasticSearch. In those applications reporting, alarms and searching is done. Like most other things in Okanshi, the transportation is plugable, so you can integrate with what you want. If you prefer, you can even change the transportation to be self-hosting within your application - changing the transport model from push to pull.

Measurements are assigned names and you can associate one or more tags detailing the context of the measurement such as server, application, test/production.

Maturity

Okanshi is mature. It has matured over several years, and is now used in production in several large-scale software products across different companies. It was originally conceived by Kim Christensen at Telenor "MVNO", now known as "CBB IT DevOps", to help transitioning to a micro service architecture.

Configurability

The monitoring and information metric transportation has good default implementations, and the framework is highly configurable tailoring your needs.

Performance

Okanshi is designed to be as unobtrusive as possible, to achieve this the all statistics are calculated asynchronously, and performance impact is very low. The memory footprint is also minimized as statistics are calculated on-the-fly, meaning the individual measurements aren't kept in memory longer than absolutely needed.

Platforms

Okanshi supports a number of platforms

and works well with C# and F# alike.

Out-of-the-box support for

  • Influx DB
  • Splunk
  • OWIN
  • WebApi
  • "Push" as well as "pull" delivery of measurements

Samples & documentation

The library comes with comprehensible documentation.

Nuget

The Okanshi library can be installed from NuGet

PM> Install-Package Okanshi

Contributing and copyright

The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.

The library is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.

Packages

No packages published

Languages

  • C# 56.8%
  • F# 42.0%
  • HTML 1.1%
  • Other 0.1%