<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ops Insights – 잘 쓰는 방법</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/</link><description>Recent content in 잘 쓰는 방법 on Ops Insights</description><generator>Hugo -- gohugo.io</generator><language>ko-KR</language><copyright>© 2026 Mont</copyright><lastBuildDate>Sat, 18 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.makgol.com/monitoring/victoriametrics/practice/index.xml" rel="self" type="application/rss+xml"/><item><title>카디널리티</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/01-cardinality/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0000</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>초대규모 운영과 무중단 전환</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/02-operations-at-scale/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0000</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>쿼리 패턴</title><link>https://docs.makgol.com/monitoring/victoriametrics/practice/03-query-patterns/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</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></channel></rss>