<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>makgol's note – 관측성</title><link>https://docs.makgol.com/observability/</link><description>Recent content in 관측성 on makgol's note</description><generator>Hugo -- gohugo.io</generator><language>ko-KR</language><copyright>© 2026 Mont</copyright><lastBuildDate>Sun, 04 Oct 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://docs.makgol.com/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>vmagent AZ 분할로 AZ 간 scrape 전송 줄이기</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/05-vmagent-az-split/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/05-vmagent-az-split/</guid><description>
&lt;h1&gt;05 · vmagent AZ 분할로 AZ 간 scrape 전송 줄이기&lt;/h1&gt;&lt;p class="vm-basis"&gt;&lt;span class="vm-basis-item"&gt;AZ a/c에 agent 1대씩 배치&lt;/span&gt;&lt;span class="vm-basis-sep"&gt;·&lt;/span&gt;&lt;span class="vm-basis-item"&gt;수치는 대략적인 규모로 표시&lt;/span&gt;&lt;/p&gt;
&lt;div class="vm-kpis"&gt;
&lt;div class="vm-kpi"&gt;
&lt;span class="vm-kpi-l"&gt;전체 트래픽 중 inter-AZ 비중&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 90%&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;AZ 간 내부 통신&lt;/span&gt;
&lt;/div&gt;
&lt;div class="vm-kpi tone-good"&gt;
&lt;span class="vm-kpi-l"&gt;전체 네트워크 사용량 감소&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 13%&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;수집 클러스터 전체에 적용할 때의 예상&lt;/span&gt;
&lt;/div&gt;
&lt;div class="vm-kpi tone-good"&gt;
&lt;span class="vm-kpi-l"&gt;agent 경로의 AZ 간 전송&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 95% 감소&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;먼저 적용한 클러스터 · 실측&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;먼저 적용한 결과와 전체 적용 시 예상 효과&lt;span class="hx:absolute hx:-mt-20" id="먼저-적용한-결과와-전체-적용-시-예상-효과"&gt;&lt;/span&gt;
&lt;a href="#%eb%a8%bc%ec%a0%80-%ec%a0%81%ec%9a%a9%ed%95%9c-%ea%b2%b0%ea%b3%bc%ec%99%80-%ec%a0%84%ec%b2%b4-%ec%a0%81%ec%9a%a9-%ec%8b%9c-%ec%98%88%ec%83%81-%ed%9a%a8%ea%b3%bc" class="subheading-anchor" aria-label="이 섹션에 대한 고유 링크"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;전체 네트워크 트래픽의 **약 90%가 AZ 간 내부 통신(inter-AZ traffic)**이었습니다. 청구 사용량으로 계산한 비율입니다. 내부 컴포넌트 사이에서 어떤 데이터가 AZ 경계를 넘는지 확인하다가 vmagent의 수집 경로를 살펴봤습니다.&lt;/p&gt;</description></item><item><title>부록 · 같은 AZ 분할을 Prometheus로 하면</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/a2-prometheus-az-split/</link><pubDate>Thu, 22 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/a2-prometheus-az-split/</guid><description>
&lt;h1&gt;부록 · 같은 AZ 분할을 Prometheus로 하면&lt;/h1&gt;&lt;p&gt;&lt;a href="https://docs.makgol.com/monitoring/victoriametrics-operations/05-vmagent-az-split/"&gt;05 vmagent AZ 분할&lt;/a&gt;은 vmagent 두 대를 AZ a/c에 한 대씩 두고 Node 메타라벨로 담당 타깃을 나눴습니다. 같은 분할을 Prometheus로 해야 한다면 어떤 재료가 있고 어디가 달라지는지 정리합니다. 우리 환경에 적용한 구성은 아니며, Prometheus Operator의 문서와 설정 생성 코드를 읽고 05편의 결정과 대조한 설계 검토입니다.&lt;/p&gt;</description></item><item><title>대규모 메트릭 운영, Prometheus와 VictoriaMetrics 중 무엇을 고를까</title><link>https://docs.makgol.com/monitoring/prometheus-vs-victoriametrics/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-vs-victoriametrics/</guid><description>
&lt;h1&gt;대규모 메트릭 운영, Prometheus와 VictoriaMetrics 중 무엇을 고를까&lt;/h1&gt;&lt;p&gt;메트릭이 많아지면 Prometheus의 익숙함만으로는 선택을 설명하기 어려워집니다. VictoriaMetrics는 저장 효율을 강조하고, 클러스터 모드에서는 수집·저장·쿼리를 따로 늘릴 수 있습니다. 이때 단일 서버로 동작하는 Prometheus에 어떤 이점이 남는지 궁금해집니다.&lt;/p&gt;</description></item><item><title>멀티클러스터 메트릭: Thanos와 VictoriaMetrics 구성</title><link>https://docs.makgol.com/monitoring/prometheus-vs-victoriametrics-multi-cluster/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-vs-victoriametrics-multi-cluster/</guid><description>
&lt;h1&gt;멀티클러스터 메트릭: Thanos와 VictoriaMetrics 구성&lt;/h1&gt;&lt;p&gt;여러 Kubernetes 클러스터의 메트릭을 모을 때, &lt;strong&gt;중앙에서 장기간 한 번에 조회하는 것&lt;/strong&gt;과 &lt;strong&gt;WAN이 끊겨도 각 지역에서 경보를 계속 내는 것&lt;/strong&gt;은 별개의 요구입니다. 대규모 중앙 운영이 목적이라면 각 클러스터의 HA &lt;code&gt;vmagent&lt;/code&gt;가 하나의 중앙 리전에 둔 &lt;code&gt;VMCluster&lt;/code&gt;로 보내는 구성을 출발점으로 삼을 수 있습니다. 지역 자립이 필수라면 현장 저장소와 &lt;code&gt;vmalert&lt;/code&gt;가 필요하고, 중앙 데이터 사본을 만들지 조회만 합칠지를 추가로 정합니다.&lt;/p&gt;</description></item><item><title>부록 · EBS gp2·gp3 fio 실측은 gp3 선택을 어디까지 뒷받침하는가</title><link>https://docs.makgol.com/hyperdx/a1-ebs-gp2-gp3-benchmark/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/a1-ebs-gp2-gp3-benchmark/</guid><description>
&lt;h1&gt;부록 · EBS gp2·gp3 fio 실측은 gp3 선택을 어디까지 뒷받침하는가&lt;/h1&gt;&lt;p&gt;100 GiB gp2에서 짧은 부하 시험만 하면 버스트 소진 뒤의 성능을 놓칠 수 있습니다. atomai의 &lt;a href="https://www.atomai.click/kubernetes-docs/ko/storage/01-ebs-gp2-gp3-benchmark"target="_blank" rel="noopener"&gt;EBS gp2 vs gp3 실측 벤치마크&lt;/a&gt;는 m5.xlarge 노드에 gp2와 gp3를 붙여 각각 fio로 측정했습니다. gp2는 2,700초 실행 중 약 33분이 지난 뒤 3,000 IOPS에서 300 IOPS로 내려갔습니다. 별도로 600초 측정한 gp3는 3,000 IOPS 근처를 유지했습니다.&lt;/p&gt;</description></item><item><title>부록 · AZ를 건너면 Pod 간 지연은 얼마나 늘어나는가</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/a1-pod-network-rtt/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/a1-pod-network-rtt/</guid><description>
&lt;h1&gt;부록 · AZ를 건너면 Pod 간 지연은 얼마나 늘어나는가&lt;/h1&gt;&lt;p&gt;같은 AZ의 다른 노드와 다른 AZ의 노드에 있는 Pod를 비교했을 때, ping 평균 RTT는 0.339ms에서 0.544ms로 늘었지만 단일 TCP 플로우는 모두 4.96Gbps였습니다. atomai의 &lt;a href="https://www.atomai.click/kubernetes-docs/ko/networking/06-pod-network-benchmark"target="_blank" rel="noopener"&gt;Pod 네트워크 실측 벤치마크&lt;/a&gt;가 m5.xlarge 노드에서 보고한 결과입니다. 같은 노드의 Pod 사이 RTT는 0.040ms였습니다.&lt;/p&gt;</description></item><item><title>Istio 히스토그램 3종이 시리즈의 44%: vmstorage 인덱스 줄이기</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/06-storage-index-roadmap/</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/06-storage-index-roadmap/</guid><description>
&lt;h1&gt;06 · Istio 히스토그램 3종이 시리즈의 44%: vmstorage 인덱스 줄이기&lt;/h1&gt;&lt;p class="vm-basis"&gt;&lt;span class="vm-basis-item"&gt;약 1년 보관 · 복제 2벌&lt;/span&gt;&lt;span class="vm-basis-sep"&gt;·&lt;/span&gt;&lt;span class="vm-basis-item"&gt;시리즈 비중은 실측 · 용량 효과는 적용 전 계산&lt;/span&gt;&lt;/p&gt;
&lt;div class="vm-kpis"&gt;
&lt;div class="vm-kpi"&gt;
&lt;span class="vm-kpi-l"&gt;디스크 중 인덱스 비중&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 3분의 2&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;실측&lt;/span&gt;
&lt;/div&gt;
&lt;div class="vm-kpi"&gt;
&lt;span class="vm-kpi-l"&gt;Istio 히스토그램 3종&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 44%&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;하루 고유 시리즈 중 · 실측&lt;/span&gt;
&lt;/div&gt;
&lt;div class="vm-kpi tone-good"&gt;
&lt;span class="vm-kpi-l"&gt;파드 신원 라벨을 접으면&lt;/span&gt;
&lt;span class="vm-kpi-v"&gt;약 90% 감소&lt;/span&gt;
&lt;span class="vm-kpi-s"&gt;하루 고유 시리즈 전체 · 실측&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;용량을 차지하는 것은 샘플보다 인덱스&lt;span class="hx:absolute hx:-mt-20" id="용량을-차지하는-것은-샘플보다-인덱스"&gt;&lt;/span&gt;
&lt;a href="#%ec%9a%a9%eb%9f%89%ec%9d%84-%ec%b0%a8%ec%a7%80%ed%95%98%eb%8a%94-%ea%b2%83%ec%9d%80-%ec%83%98%ed%94%8c%eb%b3%b4%eb%8b%a4-%ec%9d%b8%eb%8d%b1%ec%8a%a4" class="subheading-anchor" aria-label="이 섹션에 대한 고유 링크"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;현재 vmstorage 디스크의 &lt;strong&gt;약 3분의 2는 인덱스&lt;/strong&gt;입니다(실측). 하루 증가량도 인덱스가 데이터의 두 배쯤 됩니다. 지금 증가 속도로 약 1년의 보관 기간을 채우면 장기 필요량은 증설을 마친 볼륨 운영 한도의 약 130%입니다(계산).&lt;/p&gt;</description></item><item><title>수집 경로 다시 그리기 — Vector와 ClickHouse</title><link>https://docs.makgol.com/logging/09-vector-clickhouse-pipeline/</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/09-vector-clickhouse-pipeline/</guid><description>
&lt;h1&gt;수집 경로 다시 그리기 — Fluent Bit·Firehose를 Vector로, 저장소를 ClickHouse로&lt;/h1&gt;&lt;p&gt;&lt;code&gt;fluent-bit → Firehose → OpenSearch&lt;/code&gt;에서 Firehose를 빼면 수집 요금과 버퍼 지연을 줄일 수 있지만, 버퍼·재시도·실패 로그 보관을 직접 운영해야 합니다. Fluent Bit까지 교체할지는 별도로 정할 수 있습니다. 저장소를 ClickHouse로 옮긴다면 배치 크기와 테이블 스키마도 함께 바뀝니다.&lt;/p&gt;</description></item><item><title>스택 구성</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/01-stack-overview/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/01-stack-overview/</guid><description>
&lt;h1&gt;01 · 우리 스택 구성&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;k8s 위 VM operator가 vmagent를 Deployment(stateless)로 띄우고 중앙 VM 클러스터의 vminsert 엔드포인트로 &lt;code&gt;remote_write&lt;/code&gt; 합니다.&lt;/li&gt;
&lt;li&gt;목적지 경로 &lt;code&gt;/insert/0/prometheus&lt;/code&gt;는 클러스터 모드 · tenant 0을 뜻합니다.&lt;/li&gt;
&lt;li&gt;stage/prod는 값이 다릅니다 — 리소스·&lt;code&gt;maxDiskUsagePerURL&lt;/code&gt;이 환경별로 달라지고 prod는 vmagent가 두 계열(용도별 분리)이라 &lt;code&gt;extraArgs&lt;/code&gt;가 양쪽에 함께 걸립니다.&lt;/li&gt;
&lt;li&gt;공통 수집 설정은 &lt;code&gt;scrapeInterval 30s&lt;/code&gt; · &lt;code&gt;promscrape.streamParse=true&lt;/code&gt; · &lt;code&gt;promscrape.maxScrapeSize=24GiB&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;우리 환경에서 지표가 어디서 만들어져 어디로 흘러가는지, 그 구조와 stage/prod 값 차이를 정리합니다. 전송 안정화 Phase 1 튜닝은 &lt;a href="https://docs.makgol.com/monitoring/victoriametrics-operations/02-vmagent-transport-tuning/"&gt;02 vmagent 전송 튜닝&lt;/a&gt;에서, 장기보관 아키텍처는 &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/"&gt;메트릭 장기보관&lt;/a&gt; 챕터에서 따로 다룹니다.&lt;/p&gt;</description></item><item><title>카디널리티</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/</guid><description>
&lt;h1&gt;01 · 카디널리티 — 시계열 폭발의 원리와 설계 원칙&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;시계열 = 지표 이름 + 레이블 집합. 레이블 값 하나만 달라도 완전히 다른 시계열이 됩니다.&lt;/li&gt;
&lt;li&gt;New TSID 발급(=처음 보는 시계열)이 곧 카디널리티 폭발입니다. IndexDB에 인덱스를 쓰는 연산이라 데이터포인트 추가보다 CPU·메모리를 훨씬 많이 먹습니다.&lt;/li&gt;
&lt;li&gt;Worst case는 &lt;code&gt;pod_name&lt;/code&gt;·&lt;code&gt;session_id&lt;/code&gt;처럼 자주 바뀌는 값을 레이블로 쓰는 것입니다. Best case는 설계 단계에서 배제하는 것 — 서비스 이름 같은 안정 레이블만 쓰고 자주 바뀌는 값은 로그·트레이스로 뺍니다.&lt;/li&gt;
&lt;li&gt;런타임에는 churn rate(신규 시계열 생성 속도)와 slow insert rate(지속 10% 초과 시 메모리 부족 경고)를 봅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;VM 운영에서 가장 자주 사고를 내는 개념이 카디널리티입니다. 출발점은 &amp;ldquo;한 시계열이 무엇으로 정의되는가&amp;quot;입니다. 거기서 카디널리티 폭발이 왜 곧 메모리·인덱스 폭발인지, 설계 단계에서 어떻게 막는지까지 이어 봅니다.&lt;/p&gt;</description></item><item><title>vmagent 전송 튜닝</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/02-vmagent-transport-tuning/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/02-vmagent-transport-tuning/</guid><description>
&lt;h1&gt;02 · vmagent 전송 안정화 (Phase 1)&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;remoteWrite.forceVMProto=true&lt;/code&gt; — 자동 협상을 없애고 VM native protocol(zstd)로 고정합니다. 로그 없이 일어나던 snappy 다운그레이드가 사라지므로 전송량 2~4x 절감을 보장합니다. 수신측 vminsert v1.88+ 필요.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remoteWriteSettings.maxDiskUsagePerURL&lt;/code&gt; — 기본값 0(무제한)이라 링크 장애가 길어지면 노드 디스크가 고갈됩니다. 상한에 도달하면 오래된 블록부터 FIFO drop합니다. 적용값은 stage &lt;code&gt;1000MiB&lt;/code&gt; / prod &lt;code&gt;2000MiB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;대안(미적용) &lt;code&gt;statefulMode=true&lt;/code&gt; — 큐를 PVC로 옮기면 유실이 없어집니다. 그런데 무상태 원칙의 예외라서 그 예외를 인정할 때만 택합니다.&lt;/li&gt;
&lt;li&gt;적용 순서는 stage 먼저 → 수일 관찰 → prod 순입니다. 적용 후 확인은 &lt;a href="https://docs.makgol.com/monitoring/victoriametrics-operations/03-self-monitoring-metrics/"&gt;03 자기감시 메트릭&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Phase 1의 목표는 전송 안정화입니다. 전송 프로토콜을 zstd로 고정했고 디스크 큐에 상한을 명시했습니다. 각 변경의 근거와 트레이드오프, 적용 순서를 아래에 정리했습니다.&lt;/p&gt;</description></item><item><title>자기감시 메트릭</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/03-self-monitoring-metrics/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/03-self-monitoring-metrics/</guid><description>
&lt;h1&gt;03 · 우리가 보는 자기감시 메트릭&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;전송 상태는 네 지표로 봅니다 — retries(재시도), packets_dropped(드랍), bytes_sent(전송량), pending_data_bytes(대기 큐).&lt;/li&gt;
&lt;li&gt;bytes_sent로 &lt;code&gt;forceVMProto&lt;/code&gt; 효과를 판정합니다 — 적용 후 뚝 떨어졌으면 여태 snappy로 나갔고 그대로면 이미 zstd였습니다. 둘 다 정상입니다.&lt;/li&gt;
&lt;li&gt;pending_data_bytes가 평시 0 근처를 벗어나 계속 증가하면 목적지 병목 신호입니다.&lt;/li&gt;
&lt;li&gt;카디널리티 감시(churn rate · slow insert)는 D2 개념을 계승합니다 → &lt;a href="https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/"&gt;실전 01 카디널리티&lt;/a&gt;. 인벤토리는 vmui + &lt;code&gt;metric_names_stats&lt;/code&gt;로 뽑습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Phase 1이 제대로 적용됐는지 전송이 건강한지 판정할 때 보는 자기감시(self-monitoring) 메트릭을 정리합니다. &lt;a href="https://docs.makgol.com/monitoring/victoriametrics-operations/02-vmagent-transport-tuning/"&gt;02&lt;/a&gt;의 적용 후 확인이 여기로 이어집니다.&lt;/p&gt;</description></item><item><title>쿼리 패턴</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/03-query-patterns/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/practice/03-query-patterns/</guid><description>
&lt;h1&gt;03 · 쿼리 패턴 — PromQL에서 MetricsQL까지&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;지표 타입이 쿼리를 결정합니다 — Counter는 &lt;code&gt;rate&lt;/code&gt;/&lt;code&gt;increase&lt;/code&gt;, Gauge는 순간값·&lt;code&gt;sum&lt;/code&gt;/&lt;code&gt;avg_over_time&lt;/code&gt;, 지연 분포는 &lt;code&gt;histogram_quantile&lt;/code&gt;, 차원을 접는 &lt;code&gt;sum by&lt;/code&gt; 가 실전 4대 패턴입니다.&lt;/li&gt;
&lt;li&gt;VM 계열 클라이언트의 히스토그램은 &lt;code&gt;le&lt;/code&gt; 대신 &lt;code&gt;vmrange&lt;/code&gt; 버킷을 씁니다(클래식 &lt;code&gt;le&lt;/code&gt; 히스토그램도 그대로 저장·쿼리됩니다) — MetricsQL &lt;code&gt;histogram_quantile&lt;/code&gt;는 &lt;code&gt;vmrange&lt;/code&gt;를 그대로 받고 Prometheus 형식이 필요하면 &lt;code&gt;prometheus_buckets()&lt;/code&gt; 로 변환합니다.&lt;/li&gt;
&lt;li&gt;MetricsQL은 PromQL 상위호환입니다 — &lt;code&gt;rate&lt;/code&gt;/&lt;code&gt;increase&lt;/code&gt;가 외삽하지 않고 range를 생략하면 창을 &lt;code&gt;max(step, scrape_interval)&lt;/code&gt;로 자동 결정하며 &lt;code&gt;default_rollup&lt;/code&gt;·&lt;code&gt;keep_metric_names&lt;/code&gt;·&lt;code&gt;WITH&lt;/code&gt;·&lt;code&gt;topk_avg&lt;/code&gt; 등 확장을 더합니다.&lt;/li&gt;
&lt;li&gt;무거운 쿼리(넓은 시간범위 × 고카디널리티)는 vmselect 메모리를 먹습니다 — 차원 축소·recording rule 선계산·캐시로 회피하고 카디널리티는 &lt;code&gt;/api/v1/status/tsdb&lt;/code&gt; 와 vmui 카디널리티 익스플로러로 점검합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/"&gt;01 카디널리티&lt;/a&gt;와 &lt;a href="https://docs.makgol.com/monitoring/victoriametrics/practice/02-operations-at-scale/"&gt;02 대규모 운영&lt;/a&gt;이 &amp;ldquo;무엇을 저장하고 어떻게 운영하는가&amp;quot;였다면, 이 문서의 주제는 저장한 것을 어떻게 꺼내 읽는가 — 곧 쿼리입니다. VM은 PromQL을 그대로 받으면서 그 상위호환인 MetricsQL로 확장합니다. 지표 타입별 실전 패턴, MetricsQL만의 확장, 무거운 쿼리의 회피, 카디널리티 점검 쿼리를 차례로 정리합니다.&lt;/p&gt;</description></item><item><title>스케일링·용량 기준치</title><link>https://docs.makgol.com/monitoring/victoriametrics-operations/04-scaling-thresholds/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics-operations/04-scaling-thresholds/</guid><description>
&lt;h1&gt;04 · 스케일링·용량 기준치&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;디스크 큐 상한 산정식: &lt;code&gt;sum(rate(vmagent_remotewrite_bytes_sent_total[1h]))&lt;/code&gt; × 버틸 장애 시간 (실측 후 조정). 현행 stage &lt;code&gt;1000MiB&lt;/code&gt; / prod &lt;code&gt;2000MiB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;vmagent 리소스는 현행값을 기준치로 두고, 실측 후 조정은 TODO로 남깁니다.&lt;/li&gt;
&lt;li&gt;HA(&lt;code&gt;replicaCount: 2&lt;/code&gt;)는 의도적 미적용 — replica가 각자 전량 전송해 cross-cluster 트래픽이 2배가 되고 dedup은 저장만 절약하므로 전송 절감 목표와 상충합니다.&lt;/li&gt;
&lt;li&gt;slow insert 지속 10% 초과 = 메모리 부족 경고 (D2 계승) → &lt;a href="https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/"&gt;실전 01 카디널리티&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;큐 상한·리소스·HA·메모리 임계를 어떤 근거로 잡는지 적어 둡니다. 확정 숫자보다 판단 기준과 산정식에 무게를 둡니다 — 실제 값은 실측으로 조정합니다.&lt;/p&gt;</description></item><item><title>우리 배포 형상 — 자체 RUM 컨버터·6 실행 단위·stage/prod 격차</title><link>https://docs.makgol.com/hyperdx-operating/01-our-deployment/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx-operating/01-our-deployment/</guid><description>
&lt;h1&gt;우리 배포 형상&lt;/h1&gt;&lt;p&gt;우리 RUM 데이터는 자체 컨버터를 거쳐 ClickHouse에 들어갑니다. 브라우저 SDK와 Mobile RUM이 보내는 데이터를 받기 위해 Datadog Agent의 RUM 전송 방식을 참고해 구현했습니다. 표준 로그·트레이스·메트릭은 별도의 OTel Collector로 수집합니다. 두 수집기는 서로 호출하지 않고 ClickHouse에서 데이터를 합칩니다 &lt;code&gt;✓&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>HyperDX / ClickStack 심층 분석</title><link>https://docs.makgol.com/rum/01-hyperdx-deep-dive/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/01-hyperdx-deep-dive/</guid><description>
&lt;h1&gt;HyperDX / ClickStack을 RUM에 도입하기 전에&lt;/h1&gt;&lt;p&gt;HyperDX는 브라우저 세션 리플레이에서 백엔드 트레이스와 로그로 이어지는 조사 흐름을 제공합니다. Datadog 웹 RUM을 옮기려는 이유가 이 흐름이라면 검토할 만합니다. 다만 SDK로 수집할 수 있는 범위, 기존 녹화와 설정의 이관, 여러 팀의 접근 권한은 각각 확인해야 합니다.&lt;/p&gt;</description></item><item><title>Datadog RUM 커버리지 — 어디까지 대체되나</title><link>https://docs.makgol.com/rum/02-datadog-rum-coverage/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/02-datadog-rum-coverage/</guid><description>
&lt;h1&gt;Datadog RUM 커버리지 — 어디까지 대체되나&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;RUM을 하나로 묶어 &amp;ldquo;대체된다/안 된다&amp;quot;고 답하면 틀립니다 — 성격이 다른 하위 제품 4개로 쪼개야 판정이 섭니다.&lt;/li&gt;
&lt;li&gt;RUM-Core(세션 리플레이+CWV 수집/에러+트레이스 상관) 🟢 PoC(Wave 1) · RUM-Frustration 🟡 SQL 사후계산 · RUM-PA(퍼널/리텐션) 🔴 자작/PostHog 병행 · RUM-Mobile 🔴 OTel+Embrace/OpenReplay.&lt;/li&gt;
&lt;li&gt;대체는 프록시가 아니라 &lt;code&gt;@hyperdx/browser&lt;/code&gt; SDK 교체입니다 — &lt;code&gt;datadogreceiver&lt;/code&gt;는 브라우저 RUM intake(&lt;code&gt;/api/v2/rum&lt;/code&gt;)를 아예 수신하지 않습니다.&lt;/li&gt;
&lt;li&gt;좌절 신호·모바일 리플레이는 네이티브 프리미티브가 없다고 확인했습니다(추측 격상 아님) — ClickHouse SQL(&lt;code&gt;sequenceMatch&lt;/code&gt;/&lt;code&gt;windowFunnel&lt;/code&gt;) 자작 또는 전용 툴이 필요합니다.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Datadog RUM을 HyperDX로 대체한 공개 프로덕션 사례&amp;quot;는 찾지 못했습니다 → dual-instrument PoC 성공을 Wave 1 진입 게이트로 명문화합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;ldquo;coverage가 어디까지 되나&amp;quot;에 답하는 페이지입니다. &lt;a href="https://docs.makgol.com/rum/01-hyperdx-deep-dive/"&gt;HyperDX 심층 실사&lt;/a&gt;가 플랫폼 관점(연혁·아키텍처·거버넌스 갭)을 다뤘다면 여기서는 Datadog RUM의 기능을 하나씩 &lt;code&gt;@hyperdx/browser&lt;/code&gt;와 대조해 어디까지 1:1로 넘어오고 어디서 끊기는지를 확정합니다.&lt;/p&gt;</description></item><item><title>Datadog 프로토콜 프록시 매핑</title><link>https://docs.makgol.com/rum/03-dd-proxy-mapping/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/03-dd-proxy-mapping/</guid><description>
&lt;h1&gt;Datadog 프로토콜 프록시 매핑 — 어디까지 성립하나&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;프록시는 Agent intake(로그·인프라 메트릭·APM 트레이스)에서만 성립하고 브라우저 RUM·세션 리플레이 intake에는 성립하지 않습니다 — RUM은 &lt;code&gt;@hyperdx/browser&lt;/code&gt; SDK 교체가 정답입니다.&lt;/li&gt;
&lt;li&gt;성립하는 영역조차 &lt;code&gt;datadogreceiver&lt;/code&gt;가 &lt;strong&gt;전 신호 alpha&lt;/strong&gt;라 과도기 무중단 브릿지로만 쓸 만하고 영구 아키텍처로는 맞지 않습니다.&lt;/li&gt;
&lt;li&gt;dd browser-sdk의 &lt;code&gt;proxy&lt;/code&gt; 옵션은 트래픽을 우회시키는 진입점일 뿐 &lt;strong&gt;변환용은 아닙니다&lt;/strong&gt; — 본문 불변(바이너리 그대로 포워딩)이 설계 전제입니다.&lt;/li&gt;
&lt;li&gt;변환 계층은 native 대비 &lt;strong&gt;최대 ~200배 CPU&lt;/strong&gt;, delta 메트릭 &lt;strong&gt;30~70% 손실&lt;/strong&gt;(#44907) 등 fidelity 결함이 실증됐습니다.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;dd 인테이크를 ClickHouse/HyperDX로 변환해 프로덕션 운영한다&amp;quot;는 &lt;strong&gt;회사명이 붙은 1차 사례를 찾지 못했습니다&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;ldquo;dd agent/dd-trace 오픈소스 코드를 참조해 Datadog 인테이크 트래픽을 그대로 받아 HyperDX/ClickHouse로 변환하는 프록시 계층&amp;quot;을 직접 만들 수 있는지 검증합니다. 결론부터: &lt;strong&gt;프록시는 Agent intake(로그·인프라 메트릭·APM 트레이스)에서만 성립하고 브라우저 RUM·세션 리플레이 intake에는 성립하지 않습니다.&lt;/strong&gt; RUM은 SDK 교체가 정답입니다(&lt;a href="https://docs.makgol.com/rum/02-datadog-rum-coverage/"&gt;Datadog RUM 커버리지&lt;/a&gt;). 로그/메트릭/APM에서 성립하는 프록시도 &lt;strong&gt;과도기 무중단 브릿지&lt;/strong&gt;까지만 합당하고 영구 아키텍처로 두기엔 무리입니다 — 성숙도(alpha), 변환 CPU 세금, 프로덕션 전례 부재 때문입니다.&lt;/p&gt;</description></item><item><title>Datadog 전 제품군 대체 매트릭스</title><link>https://docs.makgol.com/rum/04-datadog-replacement-matrix/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/04-datadog-replacement-matrix/</guid><description>
&lt;h1&gt;Datadog 전 제품군 대체 매트릭스 — RUM 너머로 확장하기&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;HyperDX/ClickStack은 Datadog의 &lt;strong&gt;MELT+세션리플레이 코어&lt;/strong&gt;(Logs·Traces·RUM 웹코어·Session Replay)를 커버하지만 나머지 절반(Security·Synthetics·NPM/DBM·CI·On-Call 등)은 범위 밖 — 전용 OSS 개별 이관 또는 Datadog 잔류.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;메트릭 계층은 VictoriaMetrics+Grafana&lt;/strong&gt;로 분리합니다 — HyperDX의 PromQL은 실험 기능이고 일반 &lt;code&gt;otel_metrics_*&lt;/code&gt;에 자동 적용되지 않으며 ClickHouse SQL을 겨냥한 변환기도 없습니다.&lt;/li&gt;
&lt;li&gt;Wave 이관: 1 RUM웹코어 → 2 Logs → 3 APM → 4 Metrics(VM) → 5 나머지 개별. &lt;strong&gt;Wave 4를 HyperDX로 잡으면 공수가 2~4배 팽창&lt;/strong&gt;합니다.&lt;/li&gt;
&lt;li&gt;절감은 대부분 스토리지 이관에서 나오지만 host high-water mark·custom metrics tax 같은 과금 함정과 인건비 상쇄를 함께 계산해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grafana OnCall OSS는 2026-03-24 아카이브 예정&lt;/strong&gt;이므로 On-Call 대안으로 신규 채택하지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;RUM 하나만 빼오는 것으로는 Datadog 청구서가 크게 줄지 않습니다. RUM은 진입점이고 실제 절감은 로그·트레이스·메트릭 &amp;ldquo;스토리지&amp;quot;를 옮길 때 나옵니다. 이 페이지는 웹 RUM 내재화(&lt;a href="https://docs.makgol.com/rum/02-datadog-rum-coverage/"&gt;RUM 대체 커버리지&lt;/a&gt;)를 넘어 &lt;strong&gt;Datadog 전 제품군을 어디까지, 무엇으로 대체하는가&lt;/strong&gt;를 의사결정 관점에서 정리합니다.&lt;/p&gt;</description></item><item><title>마이그레이션 로드맵</title><link>https://docs.makgol.com/rum/05-migration-roadmap/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/05-migration-roadmap/</guid><description>
&lt;h1&gt;마이그레이션 로드맵 — Datadog 이관 실행 계획&lt;/h1&gt;&lt;p&gt;이 로드맵은 &lt;strong&gt;2026-07의 표준 SDK 교체·로컬 NVMe 전제에 따른 계획&lt;/strong&gt;입니다. 아래 체크리스트는 실행 완료 기록이 아닙니다. 이후의 &lt;a href="https://docs.makgol.com/hyperdx-operating/01-our-deployment/"&gt;우리 배포 형상&lt;/a&gt;은 자체 RUM 컨버터·EBS 기반 stage를 기록하므로 그 경로에 맞춰 검증 항목을 조정해야 합니다. 2026-09의 PromQL·Terraform·Datadog 수신 변경은 &lt;a href="https://docs.makgol.com/rum/08-datadog-coverage-2026-09/"&gt;커버리지 재판정&lt;/a&gt;을 기준으로 읽습니다.&lt;/p&gt;</description></item><item><title>RUM 참고 자료</title><link>https://docs.makgol.com/rum/06-sources/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/06-sources/</guid><description>
&lt;h1&gt;출처 — RUM 섹션 조사 문서 원본 링크&lt;/h1&gt;&lt;p&gt;RUM 섹션(01~05)의 근거는 &lt;code&gt;research/hyperdx-clickhouse/&lt;/code&gt; 아래 조사 문서 8개입니다 — 01-hyperdx-deep-dive, 02-rum-replacement, 03-datadog-replacement-matrix, 07-recommendation, 08-supplement-1~2·4~5. 이 페이지는 그 문서들의 &amp;ldquo;## 출처&amp;rdquo; 섹션에 나열된 URL을 전부 모아 중복을 걷어내고 주제별로 재정리했습니다. 개별 URL이 본문 어느 주장을 뒷받침하는지는 각 조사 문서를 직접 대조해야 합니다. 이 페이지는 색인 목적으로만 씁니다. &lt;a href="https://docs.makgol.com/rum/07-hyperdx-mongodb/"&gt;HyperDX의 MongoDB&lt;/a&gt;(07)는 별도 딥리서치(3-vote 적대검증, 2026-07-15) 기반입니다. 그 근거 URL도 아래 표에 포함했습니다. 조사 기준 2026-07.&lt;/p&gt;</description></item><item><title>HyperDX 커버리지 재판정 — Datadog 대비 2026-09</title><link>https://docs.makgol.com/rum/08-datadog-coverage-2026-09/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/rum/08-datadog-coverage-2026-09/</guid><description>
&lt;h1&gt;HyperDX 커버리지 재판정 — Datadog 대비 2026-09&lt;/h1&gt;&lt;p&gt;2026-07 조사에서 미지원으로 적거나 범위를 좁게 보았던 PromQL·Terraform·알림 기능을 2026-09에 다시 확인했습니다. 이 변화는 Datadog에서 옮길 수 있는 작업을 늘려 주지만, 기존 RUM 녹화와 모니터 설정을 그대로 가져올 수 있다는 뜻은 아닙니다.&lt;/p&gt;</description></item><item><title>Prometheus가 하지 않는 일</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/01-prometheus-retention/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/01-prometheus-retention/</guid><description>
&lt;h1&gt;Prometheus가 하지 않는 일 — 리텐션의 경계&lt;/h1&gt;&lt;p&gt;Prometheus 리텐션을 늘려 장기 보관을 해결하려다 보면 곧 벽을 만납니다. 기간을 늘리면 용량이 선형으로 늡니다. 해상도를 깎아 완만하게 만들 방법이 Prometheus 안에는 없습니다.&lt;/p&gt;</description></item><item><title>Thanos Compactor가 채우는 자리</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/02-thanos-downsampling/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/02-thanos-downsampling/</guid><description>
&lt;h1&gt;Thanos Compactor가 채우는 자리 — 다운샘플링의 실제 동작&lt;/h1&gt;&lt;p&gt;Prometheus에 없는 해상도 티어링은 Thanos Compactor가 맡습니다. 오브젝트 스토리지 버킷을 훑으면서 블록을 병합하고 해상도를 깎은 블록을 새로 만들고 만료된 블록을 지웁니다.&lt;/p&gt;</description></item><item><title>Sidecar vs Receive</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/03-sidecar-vs-receive/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/03-sidecar-vs-receive/</guid><description>
&lt;h1&gt;Prometheus에 붙이는 두 방식 — Sidecar vs Receive&lt;/h1&gt;&lt;p&gt;&amp;ldquo;Thanos를 붙인다&amp;quot;는 한마디가 전혀 다른 배치 둘을 가리킵니다. 어느 쪽을 고르느냐에 따라 방화벽 정책과 장애 반경이 달라집니다.&lt;/p&gt;</description></item><item><title>VictoriaMetrics에 Thanos를 붙일 수 있나</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/04-victoriametrics-and-thanos/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/04-victoriametrics-and-thanos/</guid><description>
&lt;h1&gt;VictoriaMetrics에 Thanos를 붙일 수 있나&lt;/h1&gt;&lt;p&gt;&amp;ldquo;Prometheus를 VictoriaMetrics로 바꾸고 뒤에 Thanos를 붙여 S3 장기 보관을 한다&amp;quot;는 그림이 자연스러워 보입니다. 성립하지 않습니다.&lt;/p&gt;</description></item><item><title>Receive 실전 구성</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/05-receive-setup/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/05-receive-setup/</guid><description>
&lt;h1&gt;Thanos Receive 실전 구성&lt;/h1&gt;&lt;p&gt;앞 문서들의 결론을 배치로 옮깁니다. 파드 넷이 뜹니다 — Receive, Compactor, Store Gateway, Querier. 여기에 캐시를 붙이면 다섯입니다.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;vmagent / Prometheus(agent) ──remote write──▶ Receive (로컬 TSDB → 2h마다 업로드)
│
▼
오브젝트 스토리지
▲
Compactor (병합·다운샘플·리텐션, 싱글턴)
│
Grafana ◀── Querier ◀── Store Gateway ────────────┘
└────── Receive (최근 구간)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="코드 복사"
aria-label="코드 복사"
data-copied-label="복사됨!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;버킷 설정 (공통)&lt;span class="hx:absolute hx:-mt-20" id="버킷-설정-공통"&gt;&lt;/span&gt;
&lt;a href="#%eb%b2%84%ed%82%b7-%ec%84%a4%ec%a0%95-%ea%b3%b5%ed%86%b5" class="subheading-anchor" aria-label="이 섹션에 대한 고유 링크"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;네 컴포넌트가 같은 파일을 Secret으로 마운트합니다.&lt;/p&gt;</description></item><item><title>Thanos·VM·Mimir 선택 가이드</title><link>https://docs.makgol.com/monitoring/prometheus-thanos/06-choosing/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/prometheus-thanos/06-choosing/</guid><description>
&lt;h1&gt;무엇을 고를 것인가&lt;/h1&gt;&lt;p&gt;앞의 다섯 문서를 판단 순서로 압축합니다.&lt;/p&gt;
&lt;h2&gt;첫 질문 — 해상도 티어링이 정말 필요한가&lt;span class="hx:absolute hx:-mt-20" id="첫-질문--해상도-티어링이-정말-필요한가"&gt;&lt;/span&gt;
&lt;a href="#%ec%b2%ab-%ec%a7%88%eb%ac%b8--%ed%95%b4%ec%83%81%eb%8f%84-%ed%8b%b0%ec%96%b4%eb%a7%81%ec%9d%b4-%ec%a0%95%eb%a7%90-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80" class="subheading-anchor" aria-label="이 섹션에 대한 고유 링크"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;필요 없을 수 있습니다. 카디널리티가 크지 않으면 raw를 그대로 오래 들고 가는 편이 단순하고 쌉니다.&lt;/p&gt;</description></item><item><title>스택 토폴로지 — 4컴포넌트 배치·데이터 흐름·MongoDB 최소 배포</title><link>https://docs.makgol.com/hyperdx/01-stack-topology/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/01-stack-topology/</guid><description>
&lt;h1&gt;ClickStack을 Kubernetes에 배치하기&lt;/h1&gt;&lt;p&gt;ClickStack을 Kubernetes에 올릴 때는 텔레메트리가 저장되는 경로와 HyperDX의 설정이 저장되는 경로를 따로 따라가면 배치가 이해됩니다. 브라우저가 보낸 이벤트는 Collector를 거쳐 ClickHouse로 들어가고, 사용자·대시보드·알럿 설정은 HyperDX API가 MongoDB에 저장합니다. 두 데이터베이스의 크기와 장애 영향이 다른 이유도 이 흐름에 있습니다.&lt;/p&gt;</description></item><item><title>OpenSearch (EFK)</title><link>https://docs.makgol.com/logging/01-opensearch/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/01-opensearch/</guid><description>
&lt;h1&gt;OpenSearch (EFK) — 지금 쓰는 것, 왜 뚱뚱해 보이는가&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;강점은 임의 필드 ad-hoc 풀텍스트·고카디널리티 검색, SIEM/보안 완제품, 관리형 운영의 낮은 인건비입니다.&lt;/li&gt;
&lt;li&gt;약점은 로그 저장 목적에 비해 컴퓨트가 무겁다는 점입니다 — 비용의 ~90%가 인스턴스 시간이고 스토리지는 ~10%뿐입니다.&lt;/li&gt;
&lt;li&gt;UltraWarm은 예약(RI) 불가(hot만 예약 가능)라 전 클러스터 블렌디드 절감 상한이 ~25%에 그칩니다 — &amp;ldquo;40% 절감&amp;rdquo; 기대는 성립하지 않습니다.&lt;/li&gt;
&lt;li&gt;진짜 절감은 보존 tail을 컬럼나+S3로 옮기고 hot을 축소·OR로 전환하는 데서 나옵니다. 이게 hot RI 최대 절감보다 큽니다.&lt;/li&gt;
&lt;li&gt;우리 케이스: 90일 보존이 정말 필요한지부터 되묻습니다. tail 이전 + in-place 최적화를 먼저 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Apache Lucene 기반 분산 검색·분석 엔진입니다. 2021년 Elastic이 SSPL로 전환한 뒤 Elasticsearch 7.10.2 / Kibana를 포크해 만들었습니다. 라이선스는 Apache 2.0이고 지금은 OpenSearch Software Foundation(Linux Foundation)이 관리합니다 — 성숙도·생태계가 넓고 프로덕션 채택이 두텁습니다. AWS에서는 관리형 Amazon OpenSearch Service로 제공됩니다. 고객사는 &lt;code&gt;fluent-bit → Firehose → OpenSearch(+ UltraWarm)&lt;/code&gt;로 운영 중입니다. 파이프라인 구성 자체는 정석입니다. 쟁점은 로그 저장 용도에 비춘 요금 구조입니다.&lt;/p&gt;</description></item><item><title>TSDB와 VictoriaMetrics</title><link>https://docs.makgol.com/monitoring/victoriametrics/concepts/01-tsdb-and-victoriametrics/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/concepts/01-tsdb-and-victoriametrics/</guid><description>
&lt;h1&gt;01 · 시계열 데이터와 VictoriaMetrics&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;시계열은 &amp;ldquo;언제 어떤 숫자가 찍혔나&amp;quot;가 이어지는 데이터입니다. 지표에는 &lt;strong&gt;Counter/Gauge/Histogram/Summary&lt;/strong&gt; 4타입이 있습니다. 그중 Counter류 단조증가값이 압축이 가장 잘 됩니다.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;대용량&amp;quot;을 나누는 기준은 &lt;strong&gt;시계열 개수&lt;/strong&gt;와 &lt;strong&gt;보관 기간&lt;/strong&gt;입니다. 수백만 개까지는 Prometheus 단일로 충분하지만 수천만~수십억 개부터는 별도 솔루션이 필요합니다.&lt;/li&gt;
&lt;li&gt;TSDB 계보: &lt;strong&gt;Prometheus(2012) → Gorilla 압축(2015, Facebook) → Thanos/Cortex(Prometheus 확장)&lt;/strong&gt; vs &lt;strong&gt;VictoriaMetrics(완전히 다른 계열)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;VM은 &lt;strong&gt;Prometheus 호환&lt;/strong&gt;(PromQL·remote_write 그대로)을 지키면서 자체 벤치마크 기준 &lt;strong&gt;메모리 5배·스토리지 7배&lt;/strong&gt; 효율을 주장하는 오픈소스 TSDB입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;시계열 데이터가 무엇인지, 왜 &amp;ldquo;대용량&amp;quot;이 별도의 문제로 떨어져 나오는지, 그 문제를 푸는 도구로서 VictoriaMetrics(이하 VM)가 어디에 서 있는지를 정리합니다. VM 내부의 컴포넌트 구조는 &lt;a href="https://docs.makgol.com/monitoring/victoriametrics/concepts/02-architecture/"&gt;02 아키텍처&lt;/a&gt;로 넘깁니다.&lt;/p&gt;</description></item><item><title>문제와 결정 2축</title><link>https://docs.makgol.com/monitoring/longterm-retention/01-problem-and-axes/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/longterm-retention/01-problem-and-axes/</guid><description>
&lt;h1&gt;문제 정의와 결정 2축&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;목적은 과거 장애 재조사용 메트릭 400일 보관. &lt;code&gt;&amp;gt;90d&lt;/code&gt; 구간은 5m 해상도 허용(확정), 전 메트릭 커버리지 필요, OSS 우선.&lt;/li&gt;
&lt;li&gt;결정은 2축: (1) 무엇을 보관하나(raw 400d 전부 vs raw 90d + 5m 집계 400d — 후자가 비용을 자릿수로 낮춥니다) · (2) 어디에 저장하나(VM은 S3를 primary로 지원하지 않아 EBS 위에 둡니다).&lt;/li&gt;
&lt;li&gt;서울 리전 단가는 sc1 &amp;lt; S3 Standard &amp;lt; st1 &amp;lt; gp3 — &amp;ldquo;S3라서 싸다&amp;quot;는 성립하지 않습니다.&lt;/li&gt;
&lt;li&gt;확정 시나리오(raw 90d + 5m 집계 400d) 기준 VM 아카이브안이 월 $385~416로 최저, 단순 확장($1,642)보다 자릿수로 쌉니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;메트릭 400일 보관 문제를 정의하고 비용을 자릿수 단위로 좌우하는 두 결정축(무엇을 보관 / 어디에 저장)을 정리합니다. 시나리오별 저장량·비용 규모와 검증된 서울 리전 단가 요약표를 함께 싣습니다.&lt;/p&gt;</description></item><item><title>운영 런북 — 장애·변경이 났을 때 무엇을 어떤 순서로</title><link>https://docs.makgol.com/hyperdx-operating/02-runbook/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx-operating/02-runbook/</guid><description>
&lt;h1&gt;HyperDX 운영 런북&lt;/h1&gt;&lt;p&gt;장애가 나면 조회와 적재 중 어느 쪽이 멈췄는지 확인합니다. 우리 구성은 RUM 컨버터와 OTel Collector가 별도로 ClickHouse에 쓰므로, 수집 장애도 두 경로를 나누어 확인해야 합니다.&lt;/p&gt;</description></item><item><title>hot 스토리지 — EBS gp3 / io2 실전 (로컬 NVMe는 옵셔널)</title><link>https://docs.makgol.com/hyperdx/02-hot-storage-ebs/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/02-hot-storage-ebs/</guid><description>
&lt;h1&gt;ClickHouse hot 데이터를 gp3에 저장하기&lt;/h1&gt;&lt;p&gt;월 0.7TB의 RUM 데이터를 저장하는 ClickHouse라면 노드마다 gp3 볼륨 하나를 붙이는 구성으로 시작할 수 있습니다. 볼륨의 최대 IOPS를 높이기 전에 확인할 것은 EC2 인스턴스가 지속적으로 처리할 수 있는 EBS 대역폭입니다. 중간 크기의 r7g에서는 볼륨보다 인스턴스 쪽 한도에 먼저 닿을 수 있습니다.&lt;/p&gt;</description></item><item><title>아키텍처</title><link>https://docs.makgol.com/monitoring/victoriametrics/concepts/02-architecture/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/concepts/02-architecture/</guid><description>
&lt;h1&gt;02 · 아키텍처 — 4개 컴포넌트와 저장 원리&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;VM 클러스터는 vmagent(수집) → vminsert(라우팅·샤딩) → vmstorage(저장, n노드) → vmselect(fanout+merge 쿼리) 4컴포넌트로 흐릅니다.&lt;/li&gt;
&lt;li&gt;배포 모드는 SingleNode(간편, SPOF)와 Cluster(수평확장, &lt;code&gt;replicationFactor&lt;/code&gt;로 유실 방지) 둘입니다. vminsert/vmselect는 stateless라 k8s에, vmstorage는 stateful이라 물리 장비에 두는 편이 유리합니다.&lt;/li&gt;
&lt;li&gt;대용량 write와 read를 함께 만족시키는 자료구조가 LSM 트리(append로 빠른 write, 정렬 유지로 빠른 read, merge는 백그라운드)입니다. VM의 파티션 구조가 이 구체화입니다.&lt;/li&gt;
&lt;li&gt;IndexDB(거의 불변, 지표이름+레이블 역색인)와 DataDB(TSID → timestamp+value, 계속 쌓임)를 나눠 두면 정규화 효과로 압축 효율이 크게 올라갑니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;여기서는 VM 클러스터를 이루는 컴포넌트, 그 사이를 흐르는 데이터, 그 아래를 떠받치는 두 아이디어 — LSM 트리와 IndexDB/DataDB 분리 — 를 정리합니다. 컴포넌트 하나하나의 내부 동작은 뒤 문서에서 따로 깊게 파고듭니다.&lt;/p&gt;</description></item><item><title>초대규모 운영과 무중단 전환</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/02-operations-at-scale/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/practice/02-operations-at-scale/</guid><description>
&lt;h1&gt;02 · 초대규모 운영기 — 멀티버스와 무중단 장비 전환&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;진화 경로: SingleNode(SPOF) → Cluster(이질적 접근 패턴이 한 클러스터를 과부하) → 멀티버스(대시보드·알람별 클러스터 분리) + vmauth 라우팅.&lt;/li&gt;
&lt;li&gt;현재 규모: 180노드(Hot 120·Warm 60), 12.5억 활성 시계열, 555조 데이터포인트(0.92바이트/DP) — 공개 사례 중 최상위권.&lt;/li&gt;
&lt;li&gt;Hot/Warm 2계층(SSD 12개월/HDD 36개월)으로 성능·비용 균형을 잡습니다 — dual write + 쿼리 시간범위 기반 읽기 분기.&lt;/li&gt;
&lt;li&gt;무중단 128GB→512GB 장비 전환: Hot은 랑데부 해싱 역순 추가(기존 장비 부하 최소화), Warm은 vmbackup/vmrestore(vmctl은 API 부하로 배제) — 서비스 중단 0분·메트릭 유실 0건.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;네이버 검색은 5년에 걸쳐 VictoriaMetrics를 굴리며 12.5억 시계열·555조 데이터포인트·180노드라는 초대규모에 도달했습니다. 그 현장 이야기입니다. 단일 클러스터가 무너지는 지점, 여러 클러스터로 쪼갠 &amp;ldquo;멀티버스&amp;rdquo;, Hot/Warm 2계층, 180대를 무중단으로 갈아 끼운 전환 설계를 다룹니다.&lt;/p&gt;</description></item><item><title>Loki + Alloy</title><link>https://docs.makgol.com/logging/02-loki-alloy/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/02-loki-alloy/</guid><description>
&lt;h1&gt;Loki + Alloy — PLG를 ALG로 되살리기&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;object storage 네이티브 + 공격적 압축으로 장기 보존 비용이 낮습니다. Lucene/OpenSearch 대비 스토리지가 ~10–15× 적습니다.&lt;/li&gt;
&lt;li&gt;카디널리티는 foot-gun입니다. 나쁜 라벨 하나가 수백만 스트림·ingester OOM으로 이어집니다. structured metadata가 완화하지만 그 규율은 팀이 지켜야 합니다.&lt;/li&gt;
&lt;li&gt;풀텍스트/미지값 검색이 느립니다. label+time으로 못 좁히면 brute-force decompress-scan이라 VictoriaLogs 대비 최대 십수 배 느리다는 벤치가 있습니다.&lt;/li&gt;
&lt;li&gt;promtail은 EOL 확정(2026-03-02)이고 Simple Scalable(SSD) 모드는 Loki 4.0에서 제거 예정입니다. 지금 SSD 위에 새로 지으면 sunset feature 위에 짓게 됩니다.&lt;/li&gt;
&lt;li&gt;우리 케이스: istio access-log엔 잘 맞지만 스택을 하나 더 들이는 것 자체가 방치(rot) 리스크라 보류합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Grafana 진영의 로그 집계 스택(AGPLv3). 로그 본문이 아니라 라벨 집합(스트림)만 인덱싱합니다. 압축 청크는 object storage에 두어 값싸게 보존하는 설계입니다. 2018년 공개 후 3.7.x로 성숙했고(최신 패치 v3.7.3, 2026-06-24), promtail이 EOL되며 Alloy가 자리를 넘겨받아 PLG(Promtail-Loki-Grafana)가 ALG(Alloy-Loki-Grafana)로 재편됐습니다.&lt;/p&gt;</description></item><item><title>VictoriaMetrics 아카이브</title><link>https://docs.makgol.com/monitoring/longterm-retention/02-vm-archive/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/longterm-retention/02-vm-archive/</guid><description>
&lt;h1&gt;VictoriaMetrics 아카이브 — 라우터 RW#4 + streamAggr 5m → vmsingle 400d&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;권장안: 기존 라우터 vmagent에 RW#4를 추가하고 streamAggr로 전 메트릭을 5m 집계해 별도 vmsingle-archive(400d, RF1)에 적재합니다 — 신규 기술 0.&lt;/li&gt;
&lt;li&gt;월 $385~416, 단순 확장안($1,642) 대비 ~70% 절감. hot(raw 90d)은 그대로 남습니다. &lt;code&gt;keep_metric_names&lt;/code&gt;로 기존 쿼리·대시보드도 그대로 동작합니다.&lt;/li&gt;
&lt;li&gt;리스크: 집계는 인제스트 시점에 확정돼 사후 재계산이 불가, RF1이라 vmbackup으로 이중화를 보완, 접미사 휴리스틱 오분류 가능성.&lt;/li&gt;
&lt;li&gt;구조는 가역적입니다 — RW#4를 Thanos Receive로 교체하면 Thanos안으로 전환됩니다. 드라이런 2주로 집계 축소율(f)을 실측한 뒤 확정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;관련 문서: &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/01-problem-and-axes/"&gt;01 문제·2축&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/03-thanos-s3/"&gt;03 Thanos&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/05-vmcluster-expansion/"&gt;05 VMCluster 확장&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/06-storage-pricing/"&gt;06 스토리지 단가&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/07-streamaggr-vs-downsampling/"&gt;07 streamAggr vs downsampling&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/08-recommendation-and-pitfalls/"&gt;08 권장·하지말것&lt;/a&gt;&lt;/p&gt;</description></item><item><title>S3 콜드 티어링 — storage_configuration</title><link>https://docs.makgol.com/hyperdx/03-s3-cold-tiering/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/03-s3-cold-tiering/</guid><description>
&lt;h1&gt;ClickHouse의 오래된 데이터를 S3로 옮기기&lt;/h1&gt;&lt;p&gt;보존 기간을 늘리면 오래된 로그와 트레이스가 EBS 용량을 계속 차지합니다. 이 구성에서는 최근 데이터는 gp3에 남기고, 일정 시간이 지난 파트를 S3 Standard로 옮깁니다. ClickHouse가 두 위치를 함께 조회하므로 HyperDX에서 저장 위치를 나눠 다룰 필요는 없습니다.&lt;/p&gt;</description></item><item><title>수집 (vmagent·vminsert)</title><link>https://docs.makgol.com/monitoring/victoriametrics/concepts/03-ingestion/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/concepts/03-ingestion/</guid><description>
&lt;h1&gt;03 · 수집 — vmagent와 vminsert&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;vmagent는 OTel·InfluxDB·Datadog 등 다양한 프로토콜을 받아 릴레이블·dedup·스트리밍 집계 후 &lt;code&gt;remote_write&lt;/code&gt;로 내보내는 만능 어댑터입니다. Fast Queue(메모리)→Persistent Queue(디스크) 버퍼링으로 지표를 잃지 않습니다.&lt;/li&gt;
&lt;li&gt;vminsert는 저장하지 않고 랑데부 해싱으로 vmstorage에 라우팅만 합니다 — 노드를 추가해도 재배치가 약 1/(N+1)에 그쳐 리밸런싱 폭풍을 피합니다.&lt;/li&gt;
&lt;li&gt;노드 다운 시 페일오버(살아있는 노드로 균등 재분배), &lt;code&gt;replicationFactor&lt;/code&gt;로 복제 후 vmselect 쿼리 시 dedup — 쓰기 시점 복제(안정성)와 읽기 시점 dedup(정확성)이 짝을 이룹니다.&lt;/li&gt;
&lt;li&gt;vminsert↔vmstorage 연결은 압축 방식을 협의하며 &lt;code&gt;rpc.disableCompression&lt;/code&gt;으로 CPU↔대역폭 트레이드오프를 조절할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;VM에서 데이터가 들어오는 관문은 둘입니다. &lt;strong&gt;vmagent&lt;/strong&gt;는 무엇이든 받아 정제해 리모트로 흘려보내는 만능 어댑터이자 버퍼입니다. &lt;strong&gt;vminsert&lt;/strong&gt;는 그렇게 받은 데이터를 여러 vmstorage 노드로 흩뿌리는 라우팅 게이트웨이입니다. 이 둘을 차례로 봅니다.&lt;/p&gt;</description></item><item><title>의사결정 가이드 — 기본값·승급 트리거·실측 체크리스트</title><link>https://docs.makgol.com/hyperdx-operating/03-decision-guide/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx-operating/03-decision-guide/</guid><description>
&lt;h1&gt;HyperDX 구성을 언제 바꿀 것인가&lt;/h1&gt;&lt;p&gt;디스크가 느려졌다고 곧바로 io2로 옮기거나, Keeper 부하가 늘었다고 노드를 두 대 더 추가할 필요는 없습니다. 볼륨 대역폭, 인스턴스 한계, 작은 INSERT가 만드는 part 수처럼 원인에 따라 조치가 달라집니다. 반면 AZ 장애 중에도 쓰기를 계속해야 한다는 요구는 현재 부하가 작아도 replica 구성을 바꿀 이유가 됩니다.&lt;/p&gt;</description></item><item><title>Thanos</title><link>https://docs.makgol.com/monitoring/longterm-retention/03-thanos-s3/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/longterm-retention/03-thanos-s3/</guid><description>
&lt;h1&gt;Thanos — Receive → S3 (cold 400d, compactor downsampling)&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;raw는 S3에 짧게(7~30d)만 두고 400d 보관은 compactor가 &lt;strong&gt;사후에&lt;/strong&gt; 만들어내는 5m/1h 다운샘플 블록이 맡습니다 — &lt;strong&gt;S3 내구성(11-nines) + 사후 재계산 보험&lt;/strong&gt;을 얻는 대신 stateful 컴포넌트 3~4종과 더 높은 비용을 치릅니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;다운샘플링은 저장 절감 수단이 아닙니다&lt;/strong&gt;(공식 명시) — 해상도가 공존하는 구간이 ~3x로 부풀어 총액이 월 &lt;strong&gt;$780~1,200 + 컴퓨트&lt;/strong&gt;가 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Receive&lt;/strong&gt;는 hashring 상태를 쥔 StatefulSet이라 반드시 chain에 둬야 하고 &lt;strong&gt;Compactor&lt;/strong&gt;는 오류를 만나면 알림 없이 halt하므로 감시 알림이 필수입니다.&lt;/li&gt;
&lt;li&gt;아카이브 쿼리는 &lt;strong&gt;PromQL 전용&lt;/strong&gt;이 되어 MetricsQL 전 기능을 상실합니다 — 대신 VM 아카이브안에서 RW#4 대상만 교체하면 언제든 이 안으로 전환 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;VM hot은 단기로 유지하고 raw는 S3에 짧게만 쌓습니다. 400d를 채우는 쪽은 Thanos compactor가 &lt;strong&gt;사후에&lt;/strong&gt; 생성하는 5m/1h 다운샘플 블록입니다. 이 구성으로 &lt;strong&gt;S3 내구성 + 사후 재계산 보험&lt;/strong&gt;을 얻고 대가로 &lt;strong&gt;stateful 컴포넌트 3~4종과 더 높은 저장비&lt;/strong&gt;를 치릅니다.&lt;/p&gt;</description></item><item><title>VictoriaLogs</title><link>https://docs.makgol.com/logging/03-victorialogs/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/03-victorialogs/</guid><description>
&lt;h1&gt;VictoriaLogs — VM을 이미 쓴다면 가장 자연스러운 선택&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;단일 static Go 바이너리·외부 의존성 0 — 벤더 주장으로 RAM 최대 30x·디스크 최대 15x 절감, 소규모 3rd-party 벤치도 같은 방향을 확인합니다.&lt;/li&gt;
&lt;li&gt;쿼리 가능한 오브젝트 스토리지 티어가 없습니다(headline gap). 현재 local-disk-only이고 S3/GCS 백엔드는 로드맵 WIP·확정 일정 없음.&lt;/li&gt;
&lt;li&gt;클러스터 내 복제(HA)가 없습니다 — 진짜 HA는 독립 클러스터 2벌 + mirror가 필요해 스토리지 비용이 대략 2배가 됩니다.&lt;/li&gt;
&lt;li&gt;넓은 수집 호환(Loki push API 포함)에 VictoriaMetrics와 동일한 운영 모델 — 이미 VM을 운영 중이면 학습·rot 비용이 0에 가깝습니다.&lt;/li&gt;
&lt;li&gt;우리 케이스: istio 로그부터 넣으면 오브젝트 스토리지 부재가 걸리지 않고 cold tail만 S3 Parquet로 분리하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;VictoriaMetrics 패밀리의 로그 전용 저장소로, 단일 static Go 바이너리 · 외부 의존성 0으로 돌아갑니다. 코어는 오픈소스(Apache-2.0)이고 일부 기능(vlagent의 Kafka 소스, 테넌트별 stats/quota 등)만 Enterprise-gated입니다. 단일 노드는 v1.0.0(2024-11-12)에서 GA(&amp;ldquo;production-ready&amp;rdquo;)에 도달했고 클러스터 모드는 2025-06에 공개돼 아직 ~1년 된 젊은 축입니다. 릴리스가 잦아(2026년에도 v1.50·v1.51 등 분기당 수 회) 활발하지만 그만큼 버전 pin이 필요합니다.&lt;/p&gt;</description></item><item><title>operator 토폴로지·다운타임 — EBS 재부착이 바꾸는 복구 모델</title><link>https://docs.makgol.com/hyperdx/04-operator-topology-downtime/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/04-operator-topology-downtime/</guid><description>
&lt;h1&gt;EBS 기반 ClickHouse의 장애와 복구&lt;/h1&gt;&lt;p&gt;ClickHouse 노드가 내려갔을 때 EBS 볼륨에 데이터가 남아 있다면 새 노드에서 처음부터 채울 필요는 없습니다. 같은 AZ에 볼륨을 다시 붙이고 ClickHouse를 시작한 뒤, 중단 중 쌓인 파트만 따라잡으면 됩니다. 다만 볼륨이 살아 있다는 사실과 요청을 처리할 수 있다는 사실은 다릅니다. 재부착이 끝날 때까지는 남은 replica가 부하를 맡습니다.&lt;/p&gt;</description></item><item><title>저장과 압축</title><link>https://docs.makgol.com/monitoring/victoriametrics/concepts/04-storage-and-compression/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/concepts/04-storage-and-compression/</guid><description>
&lt;h1&gt;04 · 저장과 압축 — vmstorage와 Gorilla 계열 압축&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;지표는 &lt;strong&gt;Time Series&lt;/strong&gt;(이름+레이블, 거의 불변)와 &lt;strong&gt;Sample&lt;/strong&gt;(timestamp+value, 계속 쌓임)로 분리 저장됩니다 — IndexDB/DataDB 정규화의 근거.&lt;/li&gt;
&lt;li&gt;저장 경로: 로우 파싱 → Canonical Name 정규화 → &lt;strong&gt;TSID 변환&lt;/strong&gt;(캐시 hit=빠른 경로, miss=New TSID 발급=카디널리티 폭발 원인) → 압축 → 파티션(인메모리→Small→Big, Merge Multiplier로 비슷한 크기끼리 합침).&lt;/li&gt;
&lt;li&gt;압축 비결은 &lt;strong&gt;Gorilla 계열 차분 인코딩&lt;/strong&gt;: Gauge→Delta, Counter→Delta-of-Delta(단조증가값이 압축에 극단적으로 유리) + ZigZag/Varint로 바이트 절약. 네이버 실운영 실측 &lt;strong&gt;0.92바이트/데이터포인트&lt;/strong&gt;(원래 16바이트 대비 ~17배 압축).&lt;/li&gt;
&lt;li&gt;retention은 기본 1개월, IndexDB는 단건 삭제 비용을 피하려 &lt;strong&gt;3단계(Current/Previous/Next) 로테이션&lt;/strong&gt;으로 통째로 드롭합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;vminsert가 흩뿌린 데이터를 실제로 디스크에 눕히는 컴포넌트가 &lt;strong&gt;vmstorage&lt;/strong&gt;입니다. 여기서는 지표 하나가 TSID로 바뀌어 파티션에 저장되기까지의 경로를 따라갑니다. 이어서 VM의 메모리·스토리지 효율을 떠받치는 &lt;strong&gt;Gorilla 계열 차분 압축&lt;/strong&gt;을 다룹니다.&lt;/p&gt;</description></item><item><title>ClickHouse (self-hosted)</title><link>https://docs.makgol.com/logging/04-clickhouse/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/04-clickhouse/</guid><description>
&lt;h1&gt;ClickHouse를 로그 저장소로 운영한다면&lt;/h1&gt;&lt;p&gt;ClickHouse는 로그를 SQL로 검색하고 집계할 수 있는 컬럼형 OLAP 데이터베이스입니다. Yandex에서 시작한 Apache-2.0 프로젝트로, 로그·트레이스·이벤트를 함께 저장하는 용도로도 쓰입니다. 저장량을 줄이고 대규모 집계를 빠르게 처리할 여지가 있지만, 직접 운영하려면 스키마와 복제, 백업을 담당할 사람이 필요합니다.&lt;/p&gt;</description></item><item><title>Mimir</title><link>https://docs.makgol.com/monitoring/longterm-retention/04-mimir/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/longterm-retention/04-mimir/</guid><description>
&lt;h1&gt;Mimir — Grafana Mimir 장기 tier&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;Mimir는 &lt;strong&gt;다운샘플링이 OSS·GEM·3.0 어디에도 없어&lt;/strong&gt; &amp;ldquo;5m 해상도 400d&amp;rdquo; 요구를 원리적으로 충족할 수 없습니다 — 이 시나리오에서 탈락.&lt;/li&gt;
&lt;li&gt;유일한 실현 형태는 &lt;strong&gt;raw 400d 전부 S3&lt;/strong&gt; — 경제성이 시나리오 ①(전 구간 raw)로 되돌아가 월 &lt;strong&gt;~$740 + Kafka·컴퓨트&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;운영 footprint가 최대입니다 — distributor/ingester/compactor/store-gateway/querier/query-frontend에 3.0부터 Kafka 기본 의존까지 &lt;strong&gt;8~10종&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PromQL 전용&lt;/strong&gt;이라 MetricsQL을 잃는 건 Thanos안과 같습니다. 재검토는 대규모 멀티테넌시·Grafana 스택 표준화가 독립 목표일 때만.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;관련 문서: &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/01-problem-and-axes/"&gt;01 문제·2축&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/02-vm-archive/"&gt;02 VictoriaMetrics&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/03-thanos-s3/"&gt;03 Thanos&lt;/a&gt;, &lt;a href="https://docs.makgol.com/monitoring/longterm-retention/07-streamaggr-vs-downsampling/"&gt;07 핵심논점&lt;/a&gt; · PromQL vs MetricsQL은 &lt;a href="https://docs.makgol.com/monitoring/victoriametrics/concepts/05-query-and-ops-components/"&gt;VM 쿼리·컴포넌트&lt;/a&gt;&lt;/p&gt;</description></item><item><title>ClickHouse Keeper — 조정 계층이지 durable queue가 아니다</title><link>https://docs.makgol.com/hyperdx/05-keeper/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/hyperdx/05-keeper/</guid><description>
&lt;h1&gt;ClickHouse Keeper와 수집 데이터의 내구성&lt;/h1&gt;&lt;p&gt;ClickHouse에 이벤트를 보낸 직후 서버가 꺼졌다고 가정해 봅니다. Keeper 세 대가 모두 살아 있어도 수신 중이던 이벤트를 대신 보관해 주지는 않습니다. 이벤트 본문은 ClickHouse 서버로 직접 들어가고, Keeper에는 복제를 진행하는 데 필요한 메타데이터만 남기 때문입니다.&lt;/p&gt;</description></item><item><title>쿼리·운영 컴포넌트</title><link>https://docs.makgol.com/monitoring/victoriametrics/concepts/05-query-and-ops-components/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/monitoring/victoriametrics/concepts/05-query-and-ops-components/</guid><description>
&lt;h1&gt;05 · 쿼리·운영 컴포넌트 — vmselect / vmalert / vmauth&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;vmselect는 저장을 하지 않는 stateless 쿼리 엔진입니다. 모든 vmstorage에 Fanout으로 던지고 돌아온 결과를 Merge·Sort해 반환합니다.&lt;/li&gt;
&lt;li&gt;쿼리는 3-Prefix(태그→Metric ID→TSID→값·이름 복원)로 풀립니다. 쓰기 시점 정규화를 역방향으로 되짚는 대칭 구조입니다.&lt;/li&gt;
&lt;li&gt;메모리 관리 3포인트: 쿼리 시점 dedup, Rollup Result Cache(허용 메모리 12.5%, 최근 5분 제외), Query Latency Offset(기본 30초, 정확성↔실시간성 트레이드오프).&lt;/li&gt;
&lt;li&gt;vmalert는 Recording rules로 무거운 집계를 미리 계산해 조회 부하를 쓰기 시점으로 옮깁니다. vmauth는 멀티 클러스터 앞단 라우팅 게이트웨이로 사용자 배포 없이 장애 전환을 처리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;데이터가 들어가는 길(&lt;a href="https://docs.makgol.com/monitoring/victoriametrics/concepts/03-ingestion/"&gt;03 수집&lt;/a&gt;·&lt;a href="https://docs.makgol.com/monitoring/victoriametrics/concepts/04-storage-and-compression/"&gt;04 저장&lt;/a&gt;)은 이미 다뤘습니다. 이 문서는 데이터가 빠지는 길, 그리고 그 주변에 붙는 운영 컴포넌트를 봅니다. 쿼리 엔진 &lt;code&gt;vmselect&lt;/code&gt;, 지표를 미리 계산해 두는 &lt;code&gt;vmalert&lt;/code&gt;, 멀티 클러스터의 앞단을 지키는 라우팅 게이트웨이 &lt;code&gt;vmauth&lt;/code&gt; 셋입니다.&lt;/p&gt;</description></item><item><title>HyperDX / ClickStack</title><link>https://docs.makgol.com/logging/05-hyperdx-clickstack/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/logging/05-hyperdx-clickstack/</guid><description>
&lt;h1&gt;HyperDX / ClickStack으로 로그와 RUM을 함께 보기&lt;/h1&gt;&lt;p&gt;HyperDX는 로그를 찾다가 같은 요청의 트레이스와 브라우저 세션 리플레이까지 이어 보는 데 유용합니다. ClickHouse를 저장소로 쓰고, HyperDX UI·API, 전용 OTel Collector, 앱 설정용 MongoDB를 함께 운영합니다. ClickHouse Inc.가 2025-03에 HyperDX를 인수한 뒤 2025-05에 이 조합을 ClickStack으로 출시했습니다.&lt;/p&gt;</description></item></channel></rss>