> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# kotnik

> Articles written by kotnik.

<div className="blog-card-grid">
  {/* Auto-generated by blog:generate — DO NOT edit manually */}

  <a href="/posts/how-it-works/building-observability-from-scratch-three-times-over" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/how-it-works/building-observability-from-scratch-three-times-over/building-observability-from-scratch-three-times-over.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/building-observability-from-scratch-three-times-over/building-observability-from-scratch-three-times-over.webp" alt="Building observability from scratch, three times over" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        how-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 21st 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building observability from scratch, three times over</h3>
      <p className="blog-card-desc">A look back at how Platform.sh / Upsun's observability evolved from Nagios on a single box to a unified stack across thousands of VMs, and the migration patterns that made each transition smooth.</p>
    </div>
  </a>
</div>
