Micrometer: каждый новый 404 может раздувать метрику
Если в собственной инструментализации записывать сырой URI в тег метрики, запросы к
Micrometer разбирает именно такой пример: если не ограничивать значения URI для 404, кардинальность метрики растёт с каждым новым отсутствующим ресурсом. Вместо произвольного пути можно использовать ограниченное значение вроде
Это задача проектирования собственных тегов. Из примера не следует, что все интеграции Spring Boot по умолчанию записывают сырые 404-пути.
На схеме меняется только тег URI. Значения условные, измерений памяти здесь нет.
Micrometer: Tag Values
Если в собственной инструментализации записывать сырой URI в тег метрики, запросы к
/missing/a, /missing/b и тысячам других несуществующих путей дадут тысячи разных значений тега.Micrometer разбирает именно такой пример: если не ограничивать значения URI для 404, кардинальность метрики растёт с каждым новым отсутствующим ресурсом. Вместо произвольного пути можно использовать ограниченное значение вроде
NOT_FOUND.Это задача проектирования собственных тегов. Из примера не следует, что все интеграции Spring Boot по умолчанию записывают сырые 404-пути.
На схеме меняется только тег URI. Значения условные, измерений памяти здесь нет.
Micrometer: Tag Values
Kafka: heartbeat не заменяет вызовы poll
Consumer может отправлять heartbeat и при этом слишком долго обрабатывать пачку. В Java-клиенте Kafka 4.0 прогресс проверяется отдельно: интервал между вызовами
Если интервал превышен, consumer рискует потерять партиции, а коммит может завершиться
Если обработку вынести в worker, consumer должен продолжать вызывать poll. Auto commit отключают, партиции приостанавливают до конца обработки, а offsets коммитят вручную только после обработки. Сам
KafkaConsumer 4.0: Detecting Consumer Failures
Consumer может отправлять heartbeat и при этом слишком долго обрабатывать пачку. В Java-клиенте Kafka 4.0 прогресс проверяется отдельно: интервал между вызовами
poll ограничивает max.poll.interval.ms.Если интервал превышен, consumer рискует потерять партиции, а коммит может завершиться
CommitFailedException. Размер пачки ограничивает max.poll.records. Увеличение интервала даёт больше времени на обработку, но может замедлить rebalance.Если обработку вынести в worker, consumer должен продолжать вызывать poll. Auto commit отключают, партиции приостанавливают до конца обработки, а offsets коммитят вручную только после обработки. Сам
KafkaConsumer не thread-safe: worker-потоки не должны произвольно вызывать его методы.KafkaConsumer 4.0: Detecting Consumer Failures