Jordan Schilling | Technologist, Software Builder, and Engineer

Jordan Schilling — software engineer and technologist

Software engineer focused on automation systems, experimental tools, and developer productivity. Projects, dev logs, and technical writing.

30 May 2026

Implementing Observability Across API, Worker, and Gateway

by Jordan Schilling

Devlog - 2026-05-30

Overview

Implemented the foundation for Prometheus health checks, Grafana dashboard visibility, and telemetry through the Jaeger UI.

The first step was adding the Python observability dependencies inside requirements.txt. From there, metrics were added for the exposed API on :8000 and the worker metrics endpoint on :9091.

Metrics Added

The current metrics include:

The gateway now includes an NGINX stub_status endpoint plus nginx/nginx-prometheus-exporter:1.5.1 running on :9113.

Structured Logs and Correlation

Added structured JSON logs so the API creates a match_request_id for each join request.

API and worker logs now include these fields when available:

The Redis payload changed from a raw match ID string to JSON containing the same correlation fields. OpenTelemetry context is injected into the Redis JSON payload by the API and extracted by the worker.

Manual Spans

Created manual spans for the core request lifecycle:

This gives the project a traceable path across the API, database work, Redis queueing, worker processing, and the final database update.

Grafana Dashboard

Created the week2-observability.json dashboard structure with these panels:

Documentation

Added a Markdown documentation file for observability operations. It includes:

Pass Criteria

This observability milestone is considered complete when:

tags: observability - prometheus - grafana - jaeger - opentelemetry - logging