{
  "version": "https://jsonfeed.org/version/1",
  "title": "gruszka.dev",
  "home_page_url": "https://gruszka.dev",
  "feed_url": "https://gruszka.dev/tag-observability.json",
  "description": "Things I would like to share",
  "items": [
    {
      "id": "https://gruszka.dev/red-metrics.html",
      "url": "https://gruszka.dev/red-metrics.html",
      "title": "Metryki RED – prosty sposób na zrozumienie zdrowia systemu",
      "content_html": "<p>Monitorowanie systemów rozproszonych, mikroserwisów czy aplikacji webowych może wydawać się trudne. W praktyce jednak nie zawsze potrzebujemy zaawansowanych, skomplikowanych narzędzi – czasami wystarczy prosty model, który pomoże nam ocenić, czy wszystko działa jak należy.</p>\n<p>Jednym z takich modeli są metryki RED:</p>\n<ul>\n<li>Rate – liczba żądań na sekundę</li>\n<li>Errors – liczba błędów na sekundę</li>\n<li>Duration – czas trwania żądań</li>\n</ul>\n<p>Brzmi prosto? Bo takie właśnie ma być 🙂</p>\n<h2><a href=\"#rate--ile-żądań-przetwarza-twój-system\" aria-hidden=\"true\" class=\"anchor\" id=\"rate--ile-żądań-przetwarza-twój-system\"></a>Rate – ile żądań przetwarza twój system</h2>\n<p>Pierwsza metryka mówi nam, jak bardzo &quot;obciążony&quot; jest system. To po prostu tempo obsługi żądań.</p>\n<p>Możesz na przykład sprawdzić:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-bash\"><a-f>requests_per_second</a-f> = total_requests / observation_time</code></pre>\n<p>Dlaczego to ważne?</p>\n<ul>\n<li>pozwala zauważyć skoki ruchu,</li>\n<li>ułatwia planowanie pojemności systemu,</li>\n<li>pokazuje, czy system w ogóle przyjmuje żądania (bo jeśli tempo nagle spada do zera, to mamy problem 😉).</li>\n</ul>\n<h2><a href=\"#errors--jakie-błędy-pojawiają-się-w-systemie\" aria-hidden=\"true\" class=\"anchor\" id=\"errors--jakie-błędy-pojawiają-się-w-systemie\"></a>Errors – jakie błędy pojawiają się w systemie</h2>\n<p>Nie wystarczy wiedzieć, ile żądań trafia do aplikacji – trzeba też wiedzieć, ile z nich kończy się niepowodzeniem.</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-bash\"><a-f>error_rate</a-f> = failed_requests / total_requests</code></pre>\n<p>Monitorując błędy, zwróć uwagę na:</p>\n<ul>\n<li>nagłe skoki błędów 5xx (problem po stronie serwera),</li>\n<li>błędy 4xx (np. niepoprawne dane wejściowe),</li>\n<li>nietypowe kody statusu, które mogą oznaczać problemy w logice aplikacji.</li>\n</ul>\n<p>Dzięki tej metryce bardzo szybko dowiesz się, czy system działa poprawnie – nawet jeśli nadal odpowiada na żądania.</p>\n<h2><a href=\"#duration--ile-trwa-obsługa-żądania\" aria-hidden=\"true\" class=\"anchor\" id=\"duration--ile-trwa-obsługa-żądania\"></a>Duration – ile trwa obsługa żądania</h2>\n<p>Trzecia metryka dotyczy czasu reakcji. Użytkownik może nie zauważyć, że serwer obsłużył milion żądań – ale na pewno zauważy, jeśli każda strona ładuje się 5 sekund.</p>\n<p>Dlatego mierzymy:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-bash\"><a-f>avg_duration</a-f> = total_time / total_requests</code></pre>\n<p>Możesz też śledzić percentyle (np. P95, P99), żeby zobaczyć, jak wygląda doświadczenie większości użytkowników, a nie tylko średnia.</p>\n<h2><a href=\"#dlaczego-red-działa-tak-dobrze\" aria-hidden=\"true\" class=\"anchor\" id=\"dlaczego-red-działa-tak-dobrze\"></a>Dlaczego RED działa tak dobrze?</h2>\n<p>Bo te trzy proste metryki wystarczą, żeby odpowiedzieć na kluczowe pytania:</p>\n<ul>\n<li>czy mój system działa? (Rate)</li>\n<li>czy działa poprawnie? (Errors)</li>\n<li>czy działa wystarczająco szybko? (Duration)</li>\n</ul>\n<p>Nie potrzebujesz od razu setek wskaźników ani skomplikowanych dashboardów – wystarczy RED jako podstawa monitoringu.</p>\n<p>Jak widzisz, metryki RED są proste i jednocześnie skuteczne 🙂\nJeśli wprowadzisz je do swojego systemu, będziesz miał zawsze jasny obraz tego, co się dzieje – niezależnie od tego, jak skomplikowana jest twoja architektura.</p>\n",
      "summary": "",
      "date_published": "2025-09-19T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Błażej Gruszka",
          "url": "https://www.linkedin.com/in/blazejgruszka/",
          "avatar": "https://github.com/bgruszka.png"
        }
      ],
      "tags": [
        "metrics",
        "devops",
        "observability"
      ],
      "language": "pl"
    }
  ]
}