Introduction
Diginsight Components
include observable or optimized extensions for other technologies, achieved through integration with the Diginsight observability platform and Diginsight Smartcache.
Each component is designed to address specific functionality areas (e.g., authentication, database access) while maintaining consistent observability and diagnostics capabilities.
Table of Contents
Why Diginsight Components
Diginsight Telemetry implements observability and diagnostics capabilities for .NET applications using OpenTelemetry and Azure Monitor.
Diginsight Smartcache implements optimized hybrid caching for .NET applications, combining in-memory and distributed caching strategies.
Diginsight Components are built to take advantage of these capabilities, enhancing existing libraries with observability capabilities and performance optimization, where possible.
Diginsight Components are built with a layered architecture that promotes modularity and flexibility.
At the foundation, abstractions packages define core interfaces and contracts.
The core components provide essential functionality like authentication and HTTP client configuration.
Technology-specific components (like Azure integrations) extend the core capabilities for particular platforms. Finally, presentation components handle UI-related concerns.
This modular approach allows you to compose exactly the functionality your application needs—from a minimal observability setup using just the core components, to a full-featured enterprise solution with Azure integrations, advanced caching, and presentation layers.
What components are available
Diginsight.Components.Configuration
- Purpose: Observable extensions for Diginsight configuration with Azure Key Vault, Console, Log4Net, and OpenTelemetry.
- Key features:
- Azure Key Vault integration.
- Activity source detection and registration.
- OpenTelemetry runtime instrumentation.
- Azure Monitor integration.
- Dependencies: Azure.Core, Azure.Identity, Azure.Extensions.AspNetCore.Configuration.Secrets.
Diginsight.Components.Abstractions
- Purpose: Core abstractions and interfaces for Diginsight.Components assembly.
- Key features:
IDebugService
interface for conditional debug operations.- Base contracts for other components.
Diginsight.Components (Core)
- Purpose: Main component library with common functionality.
- Key features:
- HTTP client configuration (
HttpClientOptions
). - Authentication and security features.
- JWT token handling.
- Microsoft Identity Client integration.
- Cryptography support.
- HTTP client configuration (
Diginsight.Components.Azure.Abstractions
- Purpose: Abstractions and interfaces for Diginsight.Components.Azure assembly.
- Key features:
IDebugService
interface for conditional debug operations.- Base contracts for other components.
Diginsight.Components.Azure
- Purpose: Azure-specific functionality and integrations.
- Key features:
- CosmosDB Observable extensions: CosmosDB Container query extensions integrated with Diginsight observability and exposing advanced metrics (e.g., query_cost).
- Azure Table Observable extensions: Azure Table query extensions integrated with Diginsight observability.
- Other Azure service observable extensions.
Diginsight.Components.Presentation.Abstractions
- Purpose: Abstractions and interfaces for Diginsight.Components.Presentation assembly.
- Key features:
IDebugService
interface for conditional debug operations.- Base contracts for other components.
Diginsight.Components.Presentation
- Purpose: UI/Presentation layer components.
- Status: Currently appears to be a placeholder (contains only
Class1
).
Architecture Characteristics
Each component follows these patterns:
Observability Integration: Every component includes an
Observability
class that:- Creates an
ActivitySource
for distributed tracing. - Registers with the
ObservabilityRegistry
. - Provides consistent logging infrastructure.
- Creates an
Modular Design: Components can be used independently or together, with clear separation of concerns.
Azure Integration: Strong focus on Azure cloud services with built-in monitoring and configuration support.
OpenTelemetry Standards: Uses industry-standard observability patterns for metrics, traces, and logs.
References
Diginsight Documentation
- Diginsight Telemetry - Official documentation for Diginsight observability platform
- Diginsight Smartcache - Documentation for hybrid caching strategies
- Diginsight GitHub Organization - Source code and additional resources
OpenTelemetry
- OpenTelemetry Official Documentation - Comprehensive guide to OpenTelemetry standards
- OpenTelemetry .NET - .NET-specific OpenTelemetry implementation
- OpenTelemetry Instrumentation - Instrumentation concepts and best practices
Azure Services
- Azure Monitor - Azure’s observability and monitoring platform
- Azure Key Vault - Secure secrets management service
- Azure Cosmos DB - Globally distributed database service
- Azure Table Storage - NoSQL structured data storage
.NET Technologies
- .NET Configuration - Configuration providers and patterns
- Microsoft Identity Platform - Authentication and authorization platform
- ASP.NET Core - Cross-platform web framework
Observability & Monitoring
- Distributed Tracing - Understanding distributed tracing concepts
- Metrics Collection - Metrics and measurement best practices
- Logging Best Practices - Structured logging approaches