Mam sobie mikroserwis napisany w javie + spring, który wystawia jakieś tam endpointy. Ruch jest dość spory (środowisko produkcyjne). Do tego mam metryki w grafanie (micrometer). Raz na jakiś pojawiają się piki w czasie przetworzenia żądania (czas wzrasta diametralnie). Np. średnio czas wykonania podobnych requestów wynosi on 100 ms, a czasami wzrasta na chwilę do 10-50 sekund, co nie powinno mieć miejsca. Na grafanie nie widzę, żeby w tym czasie wzrosło zużycie procesora. Patrząc na metryki GC widzę, że używany heap podniósł się nieznacznie (100 - 200 MiB), ale w w tym czasie wzrosła znacznie wartość metryk "jvm_gc_memory_allocated_bytes_total" (do 120 MB/s) i "jvm_gc_memory_promoted_bytes_total" (do 5 MB/s) (nie wiem czy to ma jakiś związek z tymi pikami). Serwis używa bazę danych do przetwarzania tych zapytań, ale nie widzę, żeby coś się działo na tych serwisach patrząc na ich metryki (obciążenie, czas wykonania zapytań itd.).
Pytanie brzmi, czy macie może jakieś sugestie jak znaleźć przyczynę tego problemu? Jakie metryki warto jeszcze sprawdzać / dodać? Polecacie jakąś literaturę, która by pomogła przy rozwiązywaniu tego typu problemów?