prometheus-net.Contrib.MongoDb 0.2.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package prometheus-net.Contrib.MongoDb --version 0.2.6                
NuGet\Install-Package prometheus-net.Contrib.MongoDb -Version 0.2.6                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="prometheus-net.Contrib.MongoDb" Version="0.2.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add prometheus-net.Contrib.MongoDb --version 0.2.6                
#r "nuget: prometheus-net.Contrib.MongoDb, 0.2.6"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install prometheus-net.Contrib.MongoDb as a Cake Addin
#addin nuget:?package=prometheus-net.Contrib.MongoDb&version=0.2.6

// Install prometheus-net.Contrib.MongoDb as a Cake Tool
#tool nuget:?package=prometheus-net.Contrib.MongoDb&version=0.2.6                

prometheus-net.MongoDb

Overview

prometheus-net.MongoDb is a C# library that provides client-side Prometheus instrumentation for MongoDB operations (instrumenting MongoDB C# Driver)
It captures various metrics related to MongoDB commands, errors, and performance, and exports them to Prometheus for monitoring and alerting.

Note: This library is still in development and more metrics will be added

Metrics Exposed

Command Duration (mongodb_client_command_duration)

Histogram metric that measures the duration of MongoDB commands in seconds.

  • Labels: command_type, status, target_collection, target_db

Open Cursors Count (mongodb_client_open_cursors_count)

Gauge metric that tracks the number of open cursors.

  • Labels: target_collection, target_db

Open Cursors Duration (mongodb_client_open_cursors_duration)

Histogram metric that tracks the number of open cursors.

  • Labels: target_collection, target_db

Open Cursor Document Count (mongodb_client_cursor_document_count)

Summary metric that measures the document count fetched by a cursor.

  • Labels: target_collection, target_db

Command Errors (mongodb_client_command_errors_total)

Counter metric that counts the total number of MongoDB command errors.

  • Labels: command_type, error_type, target_collection, target_db

Command Size (mongodb_command_response_size)

Histogram metric that measures the size of MongoDB commands in bytes.

  • Labels: command_type, target_collection, target_db

Usage Example

Here's a simple example to instrument your MongoDB client:

using MongoDB.Driver;

var settings = MongoClientSettings.FromConnectionString("your_connection_string_here");
settings = settings.InstrumentForPrometheus();

var client = new MongoClient(settings);

Installation

This library is available as a NuGet package. To install, run:

Install-Package prometheus-net.MongoDb

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Product 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 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
3.0.9 227 9/29/2023
3.0.2 136 9/28/2023
3.0.0 140 9/28/2023
2.0.6 140 9/28/2023
2.0.4 137 9/27/2023
2.0.2 140 9/27/2023
2.0.0 149 9/27/2023
1.0.0 143 9/27/2023
0.8.6 156 9/27/2023
0.8.4 128 9/27/2023
0.8.2 150 9/26/2023
0.8.0 111 9/26/2023
0.7.10 160 9/26/2023
0.7.8 127 9/26/2023
0.7.6 145 9/26/2023
0.7.4 131 9/26/2023
0.7.2 130 9/26/2023
0.7.0 126 9/26/2023
0.6.0 141 9/25/2023
0.5.5 143 9/25/2023
0.5.0 139 9/24/2023
0.3.1 135 9/23/2023
0.2.6 136 9/23/2023

Changes since version v0.1.4.0

:bug: Bug Fixes:
- [`35ec428`](https://github.com/myarichuk/prometheus-net.Contrib.MongoDb/commit/35ec4287a1d7b651c611469b70f1581fe73c671f) - nuget readme package error *(commit by [@myarichuk](https://github.com/myarichuk))*

:wrench: Chores:
- [`6b9039d`](https://github.com/myarichuk/prometheus-net.Contrib.MongoDb/commit/6b9039db59a9aeb2d5661de86e301904e94bc3d0) - adjust Github Workflow and add README link to NuGet nuspec *(commit by [@myarichuk](https://github.com/myarichuk))*
- [`488dabc`](https://github.com/myarichuk/prometheus-net.Contrib.MongoDb/commit/488dabc36f05c374716bc343314c6a65949aebf4) - add command_type to command response size metric *(commit by [@myarichuk](https://github.com/myarichuk))*
- [`f757195`](https://github.com/myarichuk/prometheus-net.Contrib.MongoDb/commit/f7571957a683933dbbc00aac2470500f82616621) - adjust README file to provide accurate metric data *(commit by [@myarichuk](https://github.com/myarichuk))*