Portal Community

Self-Hosted vs. Managed — Decision Criteria

CriteriaChoose Self-HostedChoose Managed (PaaS)
Data residencyStrict on-premises or specific cloud region requiredProvider offers your required region
Team sizeDedicated platform team (3+ engineers)Small team, no dedicated SRE
ScaleVery large scale where per-GB PaaS pricing is expensiveSmall to medium scale
ComplianceCannot use SaaS due to regulatory restrictionsProvider is compliant (SOC2, ISO27001)
Time to valueAccept 2-4 week setup timeNeed observability running in days
Query languagesWant to use LogQL, PromQL, TraceQL directlyComfortable with vendor query language (KQL, etc.)

Provider Comparison Summary

ProviderLog QueryMetrics QueryTracing QueryMigration Effort from Self-Hosted
Grafana CloudLogQLPromQLTraceQLLowest — same query languages
Azure MonitorKQLPromQL (via Managed Prometheus)Application InsightsMedium — KQL is different from LogQL
AWS CloudWatchCloudWatch InsightsCloudWatch MetricsAWS X-RayHigh — proprietary query language
DatadogDatadog Log SearchDatadog MetricsDatadog APMHigh — fully proprietary, high cost
The OTel Collector Is Your Portability Layer

BizFirstGO sends telemetry to the OTel Collector via OTLP — a vendor-neutral format. To switch providers, change only the exporter section of otel-collector-config.yaml. The BizFirstGO services themselves require zero code changes. This is the primary reason BizFirst Observe uses OTel Collector as the central hub rather than SDK-direct-to-provider configurations.