From the server part of your Monitoring note.
/metrics and writes JSON logs to stdout; Grafana Alloy in the cluster scrapes the metrics, tails the logs, receives traces and ships them; Grafana Cloud stores them, Mimir metrics, Loki logs, Tempo traces; Grafana queries and alerts.rate()), gauge (goes up and down), histogram (buckets, for percentiles with histogram_quantile). Labels must have few values; a label per URL creates millions of series.traceparent header carries the trace id between services; OpenTelemetry instruments the code; sample to keep cost down, but keep errors and slow traces."The pod monitors data and exposes it on /metrics": the app only reports its current numbers when asked. Collecting, adding labels, sending and storing is the job of Alloy and Grafana Cloud, which is why the app needs no monitoring credentials.
prom-client to a local Nuxt app with a request counter and a duration histogram, run Grafana Alloy, Prometheus or Mimir and Grafana with Docker Compose, and chart the p95 of http_request_duration_seconds per route group."Metrics are numbers over time, like error rate or p95 response time: cheap, so they drive dashboards and alerts, and they tell me something is wrong. Traces follow one request through every service as timed spans, so they tell me where the time goes. Logs are the individual events with detail, so they tell me exactly what happened. I go in that order: an alert on a metric, then the slow traces, then the logs of the failing step, linked by the trace id in every log line."
"Metrics from every pod, collected by Alloy into Mimir or Prometheus, and dashboards in Grafana. I watch three groups: traffic and errors, so request rate and the 5xx share; speed as p95 and p99 per route group, split into render time and time waiting on APIs; and resources, memory against the requests, restarts, event loop lag and the cache hit ratio, which drops before pages get slow. Logs go as JSON to Loki, traces to Tempo. On top of that, real-user Core Web Vitals, because the server can be fine while the page feels slow. Alerts go on symptoms: error rate, latency and crash loops, not on CPU, which is the autoscaler's job."
Nothing yet. Notes filed here show up on this page and the section overview.
Conrad monitoring
Preparation for the monitoring part of the Conrad interview, written from your Monitoring note — metrics, logs and traces with the Grafana stack, front-end monitoring and Core Web Vitals, and load testing with k6.
Front-end monitoring
Core Web Vitals (LCP, INP, CLS) with their thresholds and fixes, real user monitoring with Grafana Faro versus Lighthouse, sampling and consent, TTFB on a server-rendered site, and tracing a click from the browser to the database.