Skip to content

Observability & Logging

What you reach for when something is broken in production. The portfolio's defaults: Sentry for errors, structured app loggers (Pino in Node, structlog in Python), Google Analytics 4 for product analytics, and per-app Grafana/Prometheus only where it's earned.

Per Integrations_Audit.md (2026-03-20): "Sentry now deployed to ALL apps. DSN empty by default, activates when filled." So every app has the SDK; Sentry only ingests when the env var is populated.


Sentry

What it is. Error / exception aggregation. Captures unhandled exceptions, manual Sentry.captureException(...) calls, performance traces, and now LLM traces (in beta). Stack-trace symbolication, release tracking, alerting.

Used in: every app per the audit. SDKs: - @sentry/node, @sentry/nextjs, @sentry/react, @sentry/electron (TS). - sentry-sdk (Python). - sentry/sentry-laravel (PHP).

Configuration pattern: SENTRY_DSN env var; if blank, the SDK no-ops. Release tag is set from git SHA in CI.


Application loggers

Pino (Node)

What it is. Fastest JSON logger for Node. Structured logs, child loggers, redaction, pretty-print transport for dev.

Used in: Boomer_AI, GoGreen-AI-Concierge, GoGreen-Workflow-Hub, GoGreenMarketing, GoGreenSourcingAI, MangyDogCoffee, MyPollingApp, NaggingWifeAI, Recruiting_AI, Salon-Digital-Assistant, SCO-Digital-Assistant, SellMeACar, SellMeAPen_CLCD-1, SellMe_PRT, Tutor_AI.

Winston

What it is. Older Node logger; pluggable transports (file, syslog, HTTP).

Used in: Ecom-Sales, GoGreenPaperlessInitiative, GogreenSellerAI, Sales_AI_App, Tutor_AI.

Morgan

What it is. Express HTTP-request logger middleware. Logs method, path, status, duration.

Used in: GoGreenPaperlessInitiative, Realestate-all-docker, Sales_AI_App, Tutor_AI.

Pattern. Morgan logs each HTTP request → Pino/Winston handles app-level structured events → Sentry catches exceptions.

structlog (Python)

What it is. Python's structured logger of choice. JSON output, contextual logger binding.

Used in: GoGreen-DOC-AI, PolyMarketAI.

Framework-native loggers

  • NestJS Logger — FamilyChat.
  • Bun built-in — OpenSentinel.
  • Laravel Log facade — Maximus, PRT, Voting.
  • WordPress error_log — AI-Wordpress, WP-Plugin.
  • Custom Tauri plugin — Jarvis_Rust_Tauri.

Metrics: Grafana + Prometheus

What it is. Prometheus scrapes /metrics endpoints, stores time-series; Grafana visualizes them.

Used in: - GoGreen-Workflow-Hub — workflow-execution metrics. - PolyMarketAI — trading-strategy / model metrics.

Pattern. App exposes Prometheus-format metrics on port 9090; Prometheus scrapes; Grafana dashboards live in grafana/dashboards/*.json per app.

Why most apps don't have it. The cost of operating it (storage, dashboards, alerting) isn't justified for individual apps. Sentry + per-app Pino logs cover incident response.


Product analytics

Google Analytics 4 (GA4)

Used in: ~10+ apps (per the user's reference_ga4_ids.md and reference_ga4_numeric_ids.md memories — they have the per-app GA4 measurement IDs documented).

Pattern: ga4.ejs partial in EJS apps; next/script in Next.js apps; conditional loading via consent banner.

PostHog

What it is. Open-source product analytics — events, funnels, session replay, feature flags.

Used in: TimeSheetAI.

Vercel Analytics

Used in: TimeSheetAI.

Mixpanel / Amplitude / Heap (not used)

PostHog filled the role for the one app that wanted product analytics.


LangSmith (LLM-specific observability)

What it is. LangChain's tracing + eval product. Every LLM call, tool invocation, prompt, retrieval becomes a span you can inspect.

Used in: GoGreen-SmartForms.

Why not everywhere. Requires LangChain. Apps using Vercel AI SDK or hand-rolled LLM loops would need a different approach (Sentry's LLM monitoring, Langfuse, Helicone — none of which the portfolio uses).


Log aggregation (not used)

Tool Notes
Datadog / New Relic / Honeycomb Comprehensive APM. Cost-prohibitive at portfolio scale.
Loki + Grafana Open-source log aggregation. Could be added to the existing Grafana stack — not yet.
ELK / Elasticsearch + Kibana The original. Not used.
Better Stack / Logtail Hosted log management. Not used.
CloudWatch AWS-native. Not relevant — the portfolio is on IONOS.

Current log access pattern: SSH to IONOS → docker compose logs -f {service}.


Uptime monitoring (not surfaced in code)

External uptime checks (UptimeRobot, BetterUptime, Pingdom) are likely configured at the infrastructure-team level but not visible in app repos.


Tracing (not used)

OpenTelemetry, Zipkin, Jaeger, Honeycomb. Not in any app config. Sentry performance + Pino request logs cover the basics for current scale.


Decision guide

Need to know when prod is broken?              Sentry. Set the DSN.
Need structured app logs?                       Pino (Node), structlog (Python).
Need HTTP-level access logs?                    Morgan (Express) or framework default.
Need product-usage metrics?                     GA4 if marketing-side; PostHog if engineering-side.
Need infrastructure metrics dashboards?         Grafana + Prometheus only when you'll actually look at them.
Need LLM-call traces?                          LangSmith if you're on LangChain. Otherwise log to Sentry as breadcrumbs.