ClickStack & HyperDX HOLs
GitHub

ClickStack & HyperDX Hands-on LabsClickStack·HyperDX 실습

Observability on ClickHouse: OpenTelemetry ingestion, the ClickStack/HyperDX UI, and ClickHouse watching itself. Every lab brings up what it needs, generates its own data, and can be run on its own.ClickHouse 기반 관측성 실습입니다. OpenTelemetry 수집, ClickStack/HyperDX UI, 그리고 ClickHouse가 스스로를 관측하는 방법을 다룹니다. 각 랩은 필요한 환경을 스스로 띄우고 테스트 데이터를 생성하므로 독립적으로 실행됩니다.

19labs실습
4areas영역

Labs실습

ClickStack/HyperDX labs, workshops, composable OTel Collector profiles and Terraform-managed ClickStack config.ClickStack/HyperDX 실습, 워크숍, 조합 가능한 OTel Collector 프로파일, Terraform으로 관리하는 ClickStack 설정입니다.

🔭 Labs (`labs/`)🔭 실습 (`labs/`)

  • labs/ch2otel

    ClickHouse system metrics to OpenTelemetry, viewed in HyperDXClickHouse 시스템 지표를 OpenTelemetry로 변환해 HyperDX에서 조회

  • labs/elastic-migration

    Migrating from Elastic: ingest, data, dashboardsElastic에서 이전: 입수, 데이터, 대시보드

  • labs/apm-workflows

    The workflows an APM team relies on, on Managed ClickStack: slow transaction → the SQL behind it, with an in-database telemetry generatorAPM 팀이 매일 쓰는 업무 흐름을 Managed ClickStack에서: 느린 트랜잭션 → 그 뒤의 SQL, DB 안에서 도는 텔레메트리 생성기

  • labs/privatelink-gateway

    Validation plan, Terraform and checks, run end to end on 2026-10-14 (V1–V9, K1–K6): OTel from many VPCs across accounts through one gateway collector and one PrivateLink endpoint to a Cloud service closed to the internet, with an optional Kafka buffer검증 계획, Terraform, 검증 스크립트. 2026-10-14에 처음부터 끝까지 실행(V1–V9, K1–K6): 여러 계정의 여러 VPC에서 보낸 OTel을 gateway Collector 하나와 PrivateLink endpoint 하나로, 인터넷에 닫힌 Cloud 서비스에 보냄, Kafka 버퍼 선택지 포함

  • labs/korean-log-search

    Korean log search in ClickStack: why 결제 finds nothing on the default body index, the two settings that fix it (an ngrams(2) index and Use Text Index → Force enable) and their measured cost, run on Managed ClickStack on 2026-11-02 (K1–K9)ClickStack 한국어 로그 검색: 기본 Body 색인에서 결제가 0건인 이유, 고치는 설정 두 가지(ngrams(2) 색인, Use Text Index → Force enable)와 측정한 대가. 2026-11-02 Managed ClickStack에서 실행(K1–K9)

  • labs/log-pattern-exclusion

    Kibana's *Filter out pattern* in ClickStack: what Lucene exclusions become in SQL, why stacked phrases also remove patterns you meant to keep, and one regex per Event Patterns template, kept in a noise list (verified on 2.39.1, 2026-11-02)ClickStack에서 Kibana의 *Filter out pattern* 대신: Lucene 제외가 어떤 SQL이 되는지, 문구를 겹치면 남겨야 할 패턴까지 왜 지워지는지, Event Patterns 템플릿마다 정규식 하나와 노이즈 목록 테이블 (2.39.1에서 검증, 2026-11-02)

  • labs/promql

    PromQL in HyperDX on a local ClickStack 2.42.0: turn on ClickHouse's TimeSeries engine and Prometheus HTTP API, fill the table from a refreshable MV, register a PromQL source, check rate and histogram_quantile with SQL and HTTP로컬 ClickStack 2.42.0에서 HyperDX로 PromQL: ClickHouse TimeSeries 엔진과 Prometheus HTTP API를 켜고, 리프레시 MV로 테이블을 채우고, PromQL 소스를 등록해 rate와 histogram_quantile을 SQL과 HTTP로 확인

  • labs/process-down-alerts

    Does a ClickStack alert fire when one host's process series stops? Five tile alerts on local 2.42.0: a group-by alert stays silent, a SQL tile against an expected host list fires in 76 s (verified 2026-11-06)호스트 하나의 프로세스 시계열이 끊기면 ClickStack 알림이 울리는가: 로컬 2.42.0에서 타일 알림 다섯 가지 — group by 알림은 울리지 않고, 기대 호스트 목록 대비 SQL 타일은 76초 뒤 울림 (2026-11-06 검증)

  • labs/common-fields

    Adoption guide for the common fields (service taxonomy, host, environment): where apps and hosts set them, a gateway rename from EC2 tags, and ClickStack tables with them as columns in the sort key; schema tested in clickhouse local, rename in otelcol-contrib 0.155.0, demo on Managed ClickStack (2026-11-06)공통 필드(서비스 분류, 호스트, 환경) 적용 가이드: 앱과 호스트가 넣는 곳, EC2 태그를 gateway에서 표준 이름으로, 그 필드를 컬럼으로 정렬 키에 둔 ClickStack 테이블. 스키마는 clickhouse local, 이름 바꾸기는 otelcol-contrib 0.155.0, 데모는 Managed ClickStack에서 확인 (2026-11-06)

  • labs/threshold-alerts

    Host-metric threshold alerts in the chart builder: one rule for every host (a notification per host) and one for a server group only, plus consecutive windows; step-by-step with screens, verified on Managed ClickStack (2026-11-11)차트 빌더로 만드는 호스트 메트릭 임계치 알림: 규칙 하나로 전체 호스트(호스트마다 알림), 특정 서버군만, 연속 구간까지. 화면과 함께 단계별로, Managed ClickStack에서 확인 (2026-11-11)

  • labs/hostmetrics-volume

    Linux and Windows EC2: data points and wire bytes per host at 1-minute hostmetrics, four ways to watch a Windows game-server process stop (process scraper, perfcounters, windows_service, a check script) and one gateway behind an endpoint service (verified 2026-11-06)Linux·Windows EC2: 1분 hostmetrics의 호스트당 data point와 전송 바이트, Windows 게임 서버 프로세스 중지를 보는 네 방법(process scraper, perfcounters, windows_service, 확인 스크립트), endpoint service 뒤의 gateway 하나 (2026-11-06 검증)

  • labs/llm-serving-observability

    Self-hosted LLM serving (vLLM behind LiteLLM) observed with ClickStack, runnable without a GPU: the OTel Collector configuration, an nvidia-smi → OTLP pusher, LiteLLM gateway-metric cardinality with and without the attribute allowlist, and the 32-tile HyperDX dashboard imported onto hand-made sourcesLiteLLM 뒤의 vLLM을 ClickStack으로 관측, GPU 없이 실행: OTel Collector 설정, nvidia-smi → OTLP 푸셔, 속성 허용 목록 유무에 따른 LiteLLM 게이트웨이 메트릭 카디널리티, 손으로 만든 소스에 가져온 HyperDX 대시보드(타일 32개)

  • labs/vault-audit

    HashiCorp Vault OSS audit trail and HA metrics in ClickStack: a three-node Raft cluster's audit files (written by whichever node is active) through file_log and OTTL into OTel logs — TraceId per request, issuance joined to later use on HMAC'd accessors, no secret in clear — plus per-node metrics with unauthenticated_metrics_access; failover checked (verified locally and on Managed ClickStack, 2026-11-06)HashiCorp Vault OSS 감사 기록과 HA 메트릭을 ClickStack에서: Raft 3노드 클러스터의 감사 파일(그때 active인 노드가 씀)을 file_log와 OTTL로 OTel 로그로 — 요청마다 TraceId, HMAC 처리된 accessor로 발급과 이후 사용 연결, 평문 시크릿 없음 — 그리고 unauthenticated_metrics_access로 노드별 메트릭, 장애 전환 검사(2026-11-06 로컬과 Managed ClickStack에서 검증)

  • labs/managed-rbac

    How finely Managed ClickStack splits access per game, user and column: ClickStack roles (resource, name/tag/ID, the API's beta row conditions), the per-user JWT identity search uses and the one shared identity alerts use, row and masking policies on each — and where alerts and Map keys leak (verified on Managed ClickStack with an Admin and a test user, 2026-11-07)Managed ClickStack 접근 권한을 게임·사용자·열 단위로 어디까지 나눌 수 있나: ClickStack 역할(리소스, 이름·태그·ID, API의 beta 행 조건), 검색이 쓰는 사용자별 JWT 신원과 알림이 쓰는 공용 신원 하나, 각각에 대한 row·masking policy, 그리고 알림과 Map 키로 새는 지점 (Admin과 시험 사용자로 Managed ClickStack에서 검증, 2026-11-07)

  • labs/vector-route-dual-write

    Vector already ships every Kubernetes log to Loki: route two Kong gateways and one API into their own ClickHouse tables from the same Vector, leave Loki as it is, and see what each sink buffer does to Loki while ClickHouse is down (block stalls the whole source, drop_newest drops ClickHouse rows, a disk buffer keeps both); one bad row drops a whole batch (verified on local k3d, Vector 0.61.0, ClickStack 2.44.0, 2026-11-13)이미 모든 Kubernetes 로그를 Loki로 보내는 Vector에서 Kong gateway 둘과 API 하나만 ClickHouse 전용 테이블로 분기하고, Loki는 그대로 두며, ClickHouse가 내려가 있을 때 sink 버퍼별로 Loki가 어떻게 되는지 확인(block은 source 전체를 멈추고, drop_newest는 ClickHouse 행을 버리고, 디스크 버퍼는 둘 다 지킴). 잘못된 행 하나가 배치 전체를 버리게 함 (로컬 k3d, Vector 0.61.0, ClickStack 2.44.0에서 검증, 2026-11-13)

🎓 Workshops (`workshops/`)🎓 워크숍 (`workshops/`)

🧩 OTel profiles (`otel-profiles/`)🧩 OTel 프로파일 (`otel-profiles/`)

  • otel-profiles

    linux-host · windows-host · gpu-nvidia · baremetal-node · virt-kvm · virt-vsphere · mysql · aws-rds-mysqllinux-host · windows-host · gpu-nvidia · baremetal-node · virt-kvm · virt-vsphere · mysql · aws-rds-mysql

🧰 ClickStack config (`clickstack-config/`)🧰 ClickStack 설정 (`clickstack-config/`)

  • clickstack-config

    log/trace/metric sources, a dashboard, an alert and a webhooklog/trace/metric source, 대시보드, 알림, 웹훅

Getting started시작하기

git clone https://github.com/litkhai/clickstack-hyperdx-hols.git
cd clickstack-hyperdx-hols

Then follow the setup and teardown steps in each lab's own README; nothing here is global.이후 각 실습의 README에 있는 설정·정리 방법을 따르세요. 전역 설정은 없습니다.