BizFirst Observe Changelog

What's new in every release.

March 2026  ·  v1.0.0
Production Release
BizFirst Observe enters production. All four signal types — Logs, Metrics, Traces, and Health Checks — verified in a live production environment on March 24, 2026. This release ships 50+ built-in metrics, multi-tenant enrichment on every signal, the SecurityAuditLog compliance table, AlertManager integration with PagerDuty and Slack routing, and Docker Compose plus Kubernetes deployment manifests.

All 4 Signal Types Verified

Structured Logs via Grafana Loki, time-series Metrics via Prometheus, distributed Traces via Grafana Tempo, and Health Checks — all production-verified with real tenant workloads on March 24, 2026.

50+ Built-In Metrics

Custom BizFirst gauges, counters, and histograms plus full ASP.NET Core auto-instrumentation. EdgeStream Kafka metrics included. All metrics labelled by tenant_id. Exposed at /metrics, scraped every 15 seconds by Prometheus.

Multi-Tenant Enrichment

TelemetryEnrichmentMiddleware automatically adds TenantId, ServerId, RequestId, and TraceId to every log entry, metric, and trace span. Per-tenant Grafana dashboards via $TenantId template variable. SecurityAuditLog indexed by (TenantId, CreatedAt).

!

AlertManager Integration

Four production-ready alert rules: HighErrorRate, HighLatency, HighKafkaLag, ComponentDown. Critical alerts route to PagerDuty immediately. Warning alerts route to Slack. Full 30-minute escalation ladder configured out of the box.

Docker Compose & Kubernetes

docker-compose.observability.yml spins up Prometheus (9090), Loki (3100), Tempo (4317), Grafana v12.4.1 (3000), and AlertManager in one command. Full Kubernetes manifests with liveness and readiness probe configuration included.

SecurityAuditLog

L2 compliance tier: every RBAC decision (ALLOW/DENY/ERROR) written to SecurityAuditLog with PolicyId, PrivilegeKey, PrincipalId, ResourceNodeId, ActionType, Reason, and TenantId. GDPR-compliant — user IDs hashed, no PII in logs, configurable TTL retention.

February 2026  ·  v0.9.0
Tracing & Tempo
Introduces distributed tracing via Grafana Tempo. This release ships OTLP gRPC export, environment-aware adaptive sampling with always-sample-errors, TraceQL query support in Grafana, and automatic TraceId to Loki log correlation. Service dependency graphs are now built automatically from span relationships.

OTLP gRPC Export to Grafana Tempo

Full-chain traces exported via OTLP gRPC to Grafana Tempo on port 4317. Spans cover the complete request path: HTTP request → service layer → database queries → Kafka → SignalR. Service dependency graph auto-built from span relationships.

Adaptive Sampling

Environment-aware sampling rates configured in appsettings.json: 100% development, 10% staging, 1% production. AlwaysSampleErrors policy guarantees no error trace is ever dropped, regardless of sampling rate or environment.

TraceQL Support & Log Correlation

Query traces in Grafana using TraceQL. TraceId is automatically written to every Loki log entry by TelemetryEnrichmentMiddleware, enabling one-click navigation from any trace span to its associated log lines.

January 2026  ·  v0.8.0
Metrics & Loki
Ships the Prometheus /metrics endpoint with 50+ built-in metrics, the Serilog Loki sink, and TelemetryEnrichmentMiddleware. This release establishes the core multi-tenancy pattern — per-tenant labels on all signals — and enforces the tenant_id requirement on all custom metrics.

Prometheus /metrics Endpoint

50+ built-in metrics exposed at /metrics in Prometheus text format. BizFirst custom metrics, EdgeStream Kafka metrics, and ASP.NET Core auto-instrumented HTTP server metrics all available. Scrape interval: 15 seconds.

Serilog Loki Sink

Structured logs pushed to Grafana Loki via HTTP sink. Three log tiers operational: L0 Console/File for development, L1 Loki for all environments, L2 SecurityAuditLog for compliance. LogQL querying available immediately in Grafana Explore.

TelemetryEnrichmentMiddleware

Establishes the core multi-tenancy pattern: TelemetryEnrichmentMiddleware automatically adds TenantId, ServerId, RequestId, and TraceId to every log entry and metric. Per-tenant label enforcement introduced as a platform requirement for all custom metrics.

Start observing.

Three lines of C#. Full-stack observability. Production-verified.