Back to blog
Linux & Servers September 1, 2026

Introduction to Observability: Pillars, Schemas, and SRE Signals

Automate WhatsApp Alerts
Start Free ➔

Introduction to Observability: Pillars, Schemas, and SRE Signals

Traditional monitoring answers whether a system is functioning by checking predefined binary states. Observability infer internal system health by analyzing external telemetry data streams. As microservices and distributed serverless topologies scale, understanding unexpected failure modes requires structured telemetry schemas that link high-level metrics directly to low-level execution profiles.

Site Reliability Engineers structure observability across four technical pillars: metrics, logs, distributed traces, and continuous profiles. By enforcing standardized OpenTelemetry schemas and controlling label cardinality, teams accelerate mean time to recovery (MTTR) while preventing telemetry storage bill shock. This guide explores the four pillars, data modeling mechanics, and troubleshooting workflows.


1. Mathematical Telemetry Models and Cost Engineering

To manage telemetry pipelines effectively, SREs model dimensionality growth, packet loss, and infrastructure costs.

Metric Cardinality Calculation

A metric's total time series count ((N_{\text{series}})) is the Cartesian product of the unique value counts ((C_i)) of each label:

[N_{\text{series}} \approx \prod_{i=1}^{k} C_i]

Adding an unparameterized label like user_id ((C = 100,000)) or a dynamic URL parameter multiplies active time series exponentially, causing Prometheus memory exhaustion and OOM crashes.

Telemetry Pipeline Loss Rate

Monitor the health of your OpenTelemetry collector queues to prevent blind spots:

[\text{TelemetryLossRate} = \frac{\text{Dropped Records}}{\text{Generated Records}} \times 100]

Observability Cost Formula

Evaluate total monitoring infrastructure expenditure ((C_{\text{total}})) across four cost vectors:

[C_{\text{total}} = C_{\text{ingest}} + C_{\text{storage}} + C_{\text{query}} + C_{\text{egress}}]


2. The Four Observability Pillars

Structure telemetry collection across distinct operational purposes:

Telemetry PillarCore PurposeTypical Ingestion FormatKey AdvantageCommon Limitation
MetricsReal-time aggregation & alertingPrometheus Time Series (RED/USE)Highly compressible, fast alertingHigh cardinality causes memory explosion
LogsDiscrete event forensic auditingStructured JSON envelopesHigh context, granular execution logsExpensive indexing, high storage volume
TracesRequest flow across microservicesW3C traceparent Span GraphsIsolates inter-service latency bottlenecksRequires sampling to control data egress
ProfilesCode-level resource attributionContinuous CPU/Heap Flame GraphsIdentifies exact thread lock/memory leaksModerate CPU profiling agent overhead

3. Telemetry Placement and Cardinality Matrix

Prevent storage degradation by restricting high-cardinality dimensions to appropriate backends:

Dimension TypeApproximate CardinalityMetric Label?Structured Log Field?Distributed Trace Attribute?
HTTP Method (GET, POST)Very Low ((< 10))ValidValidValid
Response Status (200, 500)Low ((< 50))ValidValidValid
Service Name & RegionLow ((< 100))ValidValidValid
Normalized Route (/v1/orders/:id)Medium ((< 1,000))ValidValidValid
Customer ID / Org IDHigh ((> 50,000))DropConditionalValid (Span Attribute)
Unique Request UUIDUnboundedDropValid (request_id)Valid (trace_id)
Raw Request / Query BodyUnboundedDropRedactedDrop (PII Violation)

4. Structured Telemetry Schemas and Diagnostic Commands

Standardize structured application logs to ensure automated ingestion into ClickHouse, Elasticsearch, or OpenSearch:

{
  "timestamp": "2026-09-01T00:30:12.481Z",
  "severity": "ERROR",
  "service.name": "checkout-api",
  "deployment.environment.name": "production",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "span_id": "00f067aa0ba902b7",
  "http.request.method": "POST",
  "http.route": "/checkout",
  "http.response.status_code": 503,
  "duration_ms": 842,
  "error.type": "database_lock_timeout"
}

Verify distributed trace context propagation and inspect socket states using these diagnostic commands:

# Inject W3C Traceparent headers into synthetic probes
curl -v \
  -H 'traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01' \
  https://api.pingzoapp.com/health

# Inspect Linux TCP socket states and connection queues
ss -s

# Validate external DNS dependency timings
dig +stats api.pingzoapp.com

[!NOTE] SRE Error Budget Alert: Translate observed error rate metrics into allowable downtime limits with our SLA Calculator. When verifying external nameserver health, test query responses using the DNS Lookup tool.


5. Troubleshooting Incidents with Observability Signals

Follow this ordered diagnostic runbook to isolate production outages across the four telemetry pillars:

  1. Acknowledge the alert signal: Review the firing Service Level Indicator (SLI) to determine whether user traffic or error budget consumption is affected.
  2. Scope the blast radius via metrics: Query aggregated Prometheus metrics by service.name, cloud.region, and deployment.version to isolate the impacted cluster.
  3. Jump from metric exemplars to traces: Select a latency exemplar on your Grafana dashboard to jump directly into the OpenTelemetry trace graph.
  4. Isolate the failing span: Locate the span exhibiting the longest duration_ms or returning an error status code across downstream database, cache, or API calls.
  5. Correlate trace ID with structured logs: Extract the trace_id from the failing span and query your log aggregation backend to view exact error stack traces.
  6. Analyze CPU and memory profiles: If latency increases without database or network stalls, examine continuous CPU flame graphs to identify regex backtracking or thread contention.
  7. Inspect socket and network health: Run ss -tlpn and curl diagnostics to rule out socket backlog saturation, TCP connection timeouts, or TLS negotiation failures.
  8. Execute targeted remediation: Roll back the faulty release, scale worker pools, or enable circuit breakers to shed non-critical load.
  9. Validate recovery across all pillars: Confirm that error metrics return to baseline, trace durations normalize, and no dropped spans appear in collector logs.
Zero-Code Uptime Alerts

Stop Finding Out About Outages from Angry Users

Get instant WhatsApp & Discord alerts the second your API, website, or server goes down. Setup in 30 seconds with 60-second checks.

WhatsApp & Discord 60-Second Checks Free Forever Plan
Try Pingzo Free

Know before your users do

Connect official WhatsApp notification channels, Discord webhooks, Telegram bots, and public status pages. Start in 30 seconds.

Create Free Monitor