Sample the boring logs, keep every failure
Ten thousand identical "request ok" lines a minute cost money and tell you nothing the metric doesn't already. A single failure line tells you everything.
if (status >= 500 || duration > 1000 || Math.random() < 0.02) log.info(event);Two percent of successes is enough to see the shape. Keep every error and every slow request, because that's the part you'll actually read.
observabilitycost