Sample the boring logs, keep every failure
Ten thousand identical "request ok" lines a minute cost money and tell you nothing the metric does not. One 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. A hundred percent of errors and slow requests is the part you will actually read.
observabilitycost