FGutierrez.Core.Observability 1.1.3

dotnet add package FGutierrez.Core.Observability --version 1.1.3
                    
NuGet\Install-Package FGutierrez.Core.Observability -Version 1.1.3
                    
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="FGutierrez.Core.Observability" Version="1.1.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FGutierrez.Core.Observability" Version="1.1.3" />
                    
Directory.Packages.props
<PackageReference Include="FGutierrez.Core.Observability" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FGutierrez.Core.Observability --version 1.1.3
                    
#r "nuget: FGutierrez.Core.Observability, 1.1.3"
                    
#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.
#:package FGutierrez.Core.Observability@1.1.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FGutierrez.Core.Observability&version=1.1.3
                    
Install as a Cake Addin
#tool nuget:?package=FGutierrez.Core.Observability&version=1.1.3
                    
Install as a Cake Tool

๐Ÿ“Š FGutierrez.Core.Observability

NuGet Downloads License .NET OpenTelemetry


๐Ÿš€ Overview

FGutierrez.Core.Observability is a high-performance .NET observability library designed to standardize telemetry across distributed systems using OpenTelemetry.

The package provides a unified and production-ready integration layer for:

  • Distributed tracing
  • Metrics collection
  • Structured logging
  • Health monitoring
  • Cross-signal correlation

with minimal setup and cloud-native compatibility.


๐ŸŽฏ Why This Library?

Configuring OpenTelemetry manually across multiple services often introduces:

  • repetitive boilerplate
  • inconsistent telemetry standards
  • fragmented diagnostics
  • missing trace correlation

This library solves those issues by providing a centralized observability foundation for .NET microservices.


โœจ Features

๐Ÿ”ญ OpenTelemetry Native

Built on stable OpenTelemetry SDKs with OTLP-first architecture.


๐Ÿ“ˆ Metrics Collection

Automatic instrumentation for:

  • ASP.NET Core
  • Runtime metrics
  • HTTP clients
  • Custom application meters

๐Ÿงพ Distributed Tracing

Captures and exports traces with:

  • TraceId propagation
  • Span correlation
  • OTLP exporter support

๐Ÿชต Structured Logging

Integrated Serilog pipeline with:

  • TraceId enrichment
  • SpanId enrichment
  • JSON structured logs

๐Ÿฉบ Health Monitoring

Built-in endpoints:

/health
/ready

with standardized responses.


๐Ÿง  Self-Context Awareness

Automatically detects:

  • Service name
  • Environment
  • Service version

๐Ÿ—„๏ธ SQL Observability

Captures SQL activity for performance analysis.

Configurable to avoid sensitive data exposure.


๐Ÿ”— Ecosystem Integration

Native integration with:

FGutierrez.Core.Idempotency

Metrics and traces are automatically correlated without additional configuration.


๐Ÿ›ก๏ธ Resilience-First Startup

The library validates configuration and OTLP connectivity safely during startup.

If exporters or collectors are unavailable:

  • the application continues running
  • telemetry degrades gracefully
  • no startup crashes occur

๐Ÿ“ฆ Installation

dotnet add package FGutierrez.Core.Observability

โš™๏ธ Configuration

appsettings.json

{
  "OpenTelemetry": {
    "Tracing": {
      "Enabled": true,
      "OtlpEndpoint": "http://localhost:4317"
    },
    "Metrics": {
      "Enabled": true,
      "OtlpEndpoint": "http://localhost:4317",
      "Meters": [
        "FGutierrez.Core.Idempotency"
      ]
    },
    "Logging": {
      "Enabled": true,
      "OtlpEndpoint": "http://localhost:4317"
    }
  }
}

๐Ÿง‘โ€๐Ÿ’ป Quick Start

var builder = WebApplication.CreateBuilder(args);

builder.AddObservability(
    environment: builder.Environment.EnvironmentName,
    serviceName: "OrderService",
    serviceNamespace: "Company.Core"
);

var app = builder.Build();

app.UseObservabilityEndpoints();

app.Run();

๐Ÿ—๏ธ Included Components

Extensions/
โ”œโ”€โ”€ HealthCheckEndpointsExtensions.cs
โ”œโ”€โ”€ HealthCheckExtensions.cs
โ”œโ”€โ”€ OpenTelemetryMetricsExtensions.cs
โ”œโ”€โ”€ OpenTelemetryTracingExtensions.cs
โ””โ”€โ”€ SerilogExtensions.cs

๐Ÿ—๏ธ Architecture

Observability Flow


๐Ÿ“Š Supported Signals

Signal Support
Traces โœ…
Metrics โœ…
Logs โœ…
Health Checks โœ…
Correlation IDs โœ…

๐Ÿ› ๏ธ Requirements

Component Version
.NET SDK 8.0+
OpenTelemetry Collector Recommended
OTLP gRPC Endpoint Port 4317

This library works especially well with:

  • OpenTelemetry Collector
  • Grafana
  • Prometheus
  • Jaeger
  • Loki
  • Docker Compose
  • Kubernetes

๐Ÿงช Engineering Principles

FGutierrez.Core.Observability follows:

  • Observability-First architecture
  • Cloud-native engineering
  • Middleware-first integrations
  • Production-grade defaults
  • Minimal boilerplate
  • Vendor-neutral telemetry

๐Ÿค Contributing

Contributions and improvements are welcome.

Development Flow

  1. Fork the repository
  2. Create a feature branch
  3. Commit changes
  4. Submit a Pull Request

๐Ÿ“„ License

MIT License ยฉ Federin Pastor Gutierrez Ortiz


โญ Support

If this project helps you, consider giving it a star on GitHub.

Product 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. 
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
1.1.3 169 5/26/2026
1.1.2 129 5/25/2026
1.1.1 141 5/14/2026
1.1.0 154 4/12/2026
1.0.1-beta.1 65 4/11/2026