Observability
-
복원성 복원성 구현의 두 가지 접근 방법 복원성이란 시스템이 장애를 겪었을 때, 원래 상태로 복귀할 수 있는 능력을 의미합니다. 이를 구현하는 방법은 크게 애플리케이션 관점과 인프라 관점으로 나눌 수 있습니다. 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 -
"Buffer Cache Hit Ratio"는 데이터베이스에서 캐시된 데이터를 얼마나 효율적으로 활용하는지를 나타내는 중요한 지표입니다. 이 비율이 감소하는 것은 여러 원인에 의해 발생할 수 있으며, 각 원인에 따라 적절한 해결 방법을 적용해야 합니다. 다음은 Buffer Cache Hit Ratio 감소의 일반적인 원인과 해결책입니다. 캐시 크기 부족: 데이터베이스 시스템이 캐시에 저장할 데이터의 양보다 더 많은 데이터를 요청할 때 발생합니다. 이 경우 일부 데이터는 디스크에서 직접 로드해야 하므로 캐시 히트 비율이 낮아집니다. 해결 방법: 이 문제는 캐시 크기를 늘리거나 효율적으로 관리하여 해결할 수 있습니다. 인덱스 부재: 적절한 인덱스가 없거나 올바르게 작성되지 않은 경우 데이터를 검색할 때 더 ..
[Database]Buffer Cache Hit Ratio 감소"Buffer Cache Hit Ratio"는 데이터베이스에서 캐시된 데이터를 얼마나 효율적으로 활용하는지를 나타내는 중요한 지표입니다. 이 비율이 감소하는 것은 여러 원인에 의해 발생할 수 있으며, 각 원인에 따라 적절한 해결 방법을 적용해야 합니다. 다음은 Buffer Cache Hit Ratio 감소의 일반적인 원인과 해결책입니다. 캐시 크기 부족: 데이터베이스 시스템이 캐시에 저장할 데이터의 양보다 더 많은 데이터를 요청할 때 발생합니다. 이 경우 일부 데이터는 디스크에서 직접 로드해야 하므로 캐시 히트 비율이 낮아집니다. 해결 방법: 이 문제는 캐시 크기를 늘리거나 효율적으로 관리하여 해결할 수 있습니다. 인덱스 부재: 적절한 인덱스가 없거나 올바르게 작성되지 않은 경우 데이터를 검색할 때 더 ..
2023.12.10 -
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 -
Service Account 설정 AWS EKS에서 S3를 사용할 수 있도록 Kubernetes의 Service Account 생성하고 AWS IAM Role을 설정하여 Kubernetes Service Account + AWS IAM Policy + Trust Relationship를 연결합니다. 아래 설명에 따라 Role을 생성한 뒤 helm chart의 `serviceAccount.annotations` 에 내용을 작성하여 사용할 수 있습니다. IAM Policy 생성 cat >Loki-S3-policy.json trust-relationship.json
[Loki]Install Grafana loki-distributed with helm chartService Account 설정 AWS EKS에서 S3를 사용할 수 있도록 Kubernetes의 Service Account 생성하고 AWS IAM Role을 설정하여 Kubernetes Service Account + AWS IAM Policy + Trust Relationship를 연결합니다. 아래 설명에 따라 Role을 생성한 뒤 helm chart의 `serviceAccount.annotations` 에 내용을 작성하여 사용할 수 있습니다. IAM Policy 생성 cat >Loki-S3-policy.json trust-relationship.json
2023.06.03 -
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