LGTM
-
복원성 복원성 구현의 두 가지 접근 방법 복원성이란 시스템이 장애를 겪었을 때, 원래 상태로 복귀할 수 있는 능력을 의미합니다. 이를 구현하는 방법은 크게 애플리케이션 관점과 인프라 관점으로 나눌 수 있습니다. 1. 애플리케이션 관점에서의 복원성 구현 애플리케이션 내부에서 예외 처리, 재시도, 타임아웃 등을 구현하여 복원력을 강화하는 방법입니다. 에러 분류: 비즈니스 로직에서 발생할 수 있는 에러와 시스템 에러를 구분하여, 각 에러 유형에 맞는 적절한 처리 방법을 적용합니다. 재시도 정책: 일정 간격을 두고 오류 발생 시 재시도를 진행합니다. 이는 일시적인 문제로 인한 요청 실패에 효과적으로 대응할 수 있게 합니다. 2. 인프라 관점에서의 복원성 구현 서비스 메시와 메시징 시스템을 활용하여 인프라 수준에..
[Observability]기반기술 이해하기복원성 복원성 구현의 두 가지 접근 방법 복원성이란 시스템이 장애를 겪었을 때, 원래 상태로 복귀할 수 있는 능력을 의미합니다. 이를 구현하는 방법은 크게 애플리케이션 관점과 인프라 관점으로 나눌 수 있습니다. 1. 애플리케이션 관점에서의 복원성 구현 애플리케이션 내부에서 예외 처리, 재시도, 타임아웃 등을 구현하여 복원력을 강화하는 방법입니다. 에러 분류: 비즈니스 로직에서 발생할 수 있는 에러와 시스템 에러를 구분하여, 각 에러 유형에 맞는 적절한 처리 방법을 적용합니다. 재시도 정책: 일정 간격을 두고 오류 발생 시 재시도를 진행합니다. 이는 일시적인 문제로 인한 요청 실패에 효과적으로 대응할 수 있게 합니다. 2. 인프라 관점에서의 복원성 구현 서비스 메시와 메시징 시스템을 활용하여 인프라 수준에..
2024.03.30 -
Fetch promtail helm chart ➜ helm repo add grafana ➜ helm repo update ➜ helm fetch grafana/promtail ➜ tar zxvf promtail-6.15.5.tgz ➜ helm upgrade --install promtail . -f ./values.yaml --namespace loki --create-namespace Deploy helm chart Edit values.yaml daemonset: enabled: true # DaemonSet을 사용하여 Promtail을 배포할지 여부를 결정합니다. Kubernetes 클러스터의 모든 노드에 Promtail을 배포하려면 true로 설정합니다. serviceAccount: create..
[Promtail]Install promtail with helm chartFetch promtail helm chart ➜ helm repo add grafana ➜ helm repo update ➜ helm fetch grafana/promtail ➜ tar zxvf promtail-6.15.5.tgz ➜ helm upgrade --install promtail . -f ./values.yaml --namespace loki --create-namespace Deploy helm chart Edit values.yaml daemonset: enabled: true # DaemonSet을 사용하여 Promtail을 배포할지 여부를 결정합니다. Kubernetes 클러스터의 모든 노드에 Promtail을 배포하려면 true로 설정합니다. serviceAccount: create..
2024.03.03 -
Architecture Grafana Mimir는 개별적으로 또는 병렬로 실행할 수 있는 수평 확장 가능한 여러 개의 마이크로서비스로 구성됩니다. 그리고 이러한 마이크로서비스를 컴포넌트라고 합니다. Grafana Mimir 스토리지 format은 Prometheus TSDB 스토리지를 기반으로 합니다. 그리고 스토리지 format은 각 테넌트의 시계열을 자체 TSDB에 저장하여 온디스크 블록에 지속시킵니다. 기본적으로 각 블록의 범위는 2시간이며, 각 온디스크 블록 디렉터리에는 인덱스 파일, 메타데이터 파일, 시계열 청크가 포함되어 있습니다. TSDB 블록 파일에는 여러 시리즈에 대한 샘플이 포함되어 있습니다. 블록 내부의 시리즈는 블록별 인덱스로 색인되며, 이 인덱스는 메트릭 이름과 레이블을 모두 블록..
[Mimir]Grafana Mimir ArchitectureArchitecture Grafana Mimir는 개별적으로 또는 병렬로 실행할 수 있는 수평 확장 가능한 여러 개의 마이크로서비스로 구성됩니다. 그리고 이러한 마이크로서비스를 컴포넌트라고 합니다. Grafana Mimir 스토리지 format은 Prometheus TSDB 스토리지를 기반으로 합니다. 그리고 스토리지 format은 각 테넌트의 시계열을 자체 TSDB에 저장하여 온디스크 블록에 지속시킵니다. 기본적으로 각 블록의 범위는 2시간이며, 각 온디스크 블록 디렉터리에는 인덱스 파일, 메타데이터 파일, 시계열 청크가 포함되어 있습니다. TSDB 블록 파일에는 여러 시리즈에 대한 샘플이 포함되어 있습니다. 블록 내부의 시리즈는 블록별 인덱스로 색인되며, 이 인덱스는 메트릭 이름과 레이블을 모두 블록..
2023.06.04 -
Architecture Architecture에서는 아래의 핵심 개념에 대하여 자세히 설명합니다. 핵심 개념 Read Path와 Write Path: Loki는 로그 데이터 처리를 위한 읽기 경로(Read Path)와 쓰기 경로(Write Path)를 구분합니다. 이러한 분리는 데이터 처리의 효율성을 극대화하며, 각 경로는 특정 작업에 최적화된 컴포넌트로 구성됩니다. Consistent Hash Rings: 클러스터 내에서 데이터를 균등하게 분배하고 고가용성을 보장하는 메커니즘입니다. 이는 클러스터의 스케일링을 용이하게 하며, 데이터 샤딩과 복제를 통한 안정성을 제공합니다. Multi-tenancy: Loki는 다중 테넌시를 지원하여, 하나의 Loki 인스턴스를 여러 사용자나 팀이 공유할 수 있게 합니다..
[Loki]Grafana Loki ArchitectureArchitecture Architecture에서는 아래의 핵심 개념에 대하여 자세히 설명합니다. 핵심 개념 Read Path와 Write Path: Loki는 로그 데이터 처리를 위한 읽기 경로(Read Path)와 쓰기 경로(Write Path)를 구분합니다. 이러한 분리는 데이터 처리의 효율성을 극대화하며, 각 경로는 특정 작업에 최적화된 컴포넌트로 구성됩니다. Consistent Hash Rings: 클러스터 내에서 데이터를 균등하게 분배하고 고가용성을 보장하는 메커니즘입니다. 이는 클러스터의 스케일링을 용이하게 하며, 데이터 샤딩과 복제를 통한 안정성을 제공합니다. Multi-tenancy: Loki는 다중 테넌시를 지원하여, 하나의 Loki 인스턴스를 여러 사용자나 팀이 공유할 수 있게 합니다..
2023.06.02 -
Concept Grafana Loki는 로그 집계 도구로, 모든 기능을 갖춘 로깅 컴포넌트 집합입니다. Indexed Loki는 다른 로깅 시스템과 달리 아래와 같이 로그 스트림의 메타데이터인 레이블(Prometheus의 레이블과 같은)만 인덱싱한다는 개념에 기반해 구축되므로 원본 로그 메시지는 색인되지 않습니다. 그런 다음 로그 데이터 자체는 압축되어 S3나 GCS와 같은 object stores에 chunks로 저장되거나 파일 시스템에 저장됩니다. 작은 인덱스와 압축된 chunks는 간결하면서도 효율적인 쿼리 실행을 가능하게하고 Loki의 비용을 크게 낮추게 됩니다. Agent 에이전트(클라이언트)는 로그를 수집하고, 로그를 스트림으로 변환한 다음, HTTP API를 통해 스트림을 Loki로 푸시합니..
[Loki]What is Grafana Loki?Concept Grafana Loki는 로그 집계 도구로, 모든 기능을 갖춘 로깅 컴포넌트 집합입니다. Indexed Loki는 다른 로깅 시스템과 달리 아래와 같이 로그 스트림의 메타데이터인 레이블(Prometheus의 레이블과 같은)만 인덱싱한다는 개념에 기반해 구축되므로 원본 로그 메시지는 색인되지 않습니다. 그런 다음 로그 데이터 자체는 압축되어 S3나 GCS와 같은 object stores에 chunks로 저장되거나 파일 시스템에 저장됩니다. 작은 인덱스와 압축된 chunks는 간결하면서도 효율적인 쿼리 실행을 가능하게하고 Loki의 비용을 크게 낮추게 됩니다. Agent 에이전트(클라이언트)는 로그를 수집하고, 로그를 스트림으로 변환한 다음, HTTP API를 통해 스트림을 Loki로 푸시합니..
2023.06.01 -
Architecture Grafana Tempo는 Distributor, Ingester, Query Frontend, Querier, Compactor, Metrics Generator(option)를 포함합니다. 각 컴포넌트는 트레이스 수집, 처리, 조회, 그리고 메트릭스 생성 등의 역할을 담당하며, 이들은 전체 trace 데이터의 라이프사이클을 관리합니다. Distributor Distributor는 Jaeger, OpenTelemetry, Zipkin을 포함한 여러 형식의 스팬을 허용합니다. traceID를 해싱하고 분산되고 일관된 해시 링을 사용하여 스팬을 Ingester로 라우팅합니다. 최상의 성능을 위해 OTel Proto를 수집하는 것이 권장됩니다. 스팬(span): 시작 시간과 종료 시간..
[Tempo]What is Grafana Tempo?Architecture Grafana Tempo는 Distributor, Ingester, Query Frontend, Querier, Compactor, Metrics Generator(option)를 포함합니다. 각 컴포넌트는 트레이스 수집, 처리, 조회, 그리고 메트릭스 생성 등의 역할을 담당하며, 이들은 전체 trace 데이터의 라이프사이클을 관리합니다. Distributor Distributor는 Jaeger, OpenTelemetry, Zipkin을 포함한 여러 형식의 스팬을 허용합니다. traceID를 해싱하고 분산되고 일관된 해시 링을 사용하여 스팬을 Ingester로 라우팅합니다. 최상의 성능을 위해 OTel Proto를 수집하는 것이 권장됩니다. 스팬(span): 시작 시간과 종료 시간..
2023.06.01