본문 바로가기

Observability13

[OTEL] OpenTelemetry의 Java Agent에서 FRAME_SIZE_ERROR 발생 문제 발생  쿠버네티스 클러스터에 OTel 오퍼레이터를 설치하고, Collector와 Java  Agent를 구축하는 과정에서 발생한 에러이다.   https://opentelemetry.io/docs/kubernetes/operator/automatic/ Injecting Auto-instrumentationAn implementation of auto-instrumentation using the OpenTelemetry Operator.opentelemetry.io    위 OpenTelemetry 레퍼런스를 참고하여 진행했었고, Operator를 설치 후 CRD를 활용하여 Collector를 설치하였다.   이후 Spring Boot 애플리케이션에 Annotation을 이용해서 Java Agent.. 2024. 11. 25.
[OTEL] OpenTelemetry란 OpenTelemetry  OpenTelemetry는 줄여서 OTel이라고도 많이 사용되며, OpenTracing과 OpenCensus라는 두 개의 프로젝트가 합쳐져서 탄생한 프로젝트이다.  다양한 모니터링 시스템과 함께 통합되어 사용되는 오픈소스 중 하나이며 Trace, Metric 및 Log를 수집하는 데 사용된다.  현재는 CNCF에서의 Incubating의 단계에 속해있으나, 많은 벤더사의 지원을 받으며, Shopify, eBay나 Github과 같은 대형 조직에서도 사용되고 있다는 것을 볼 수 있다.   Otel을 지원하는 벤더사는 아래 사이트에서 확인할 수 있는데, 굉장히 많은 업체가 나열되어 있는 것을 확인할 수 있다.  https://opentelemetry.io/ecosystem/vend.. 2024. 11. 23.
[Tempo] Tempo란 마이크로 서비스 아키텍처가 많은 기업에서 채택되어 사용되면서, 그에 따라 아키텍처의 복잡도도 함께 증가되었다.  복잡도로 인하여, 에러나 지연이 발생하면, 정확히 어떤 마이크로 서비스에서 문제가 발생하는지 파악하는 것도 어려워졌다.  이러한 문제를 해결하기 위하여 분산 추적의 필요성이 생겼고, 이번 글에서 소개하는 Tempo가 Grafana Labs에서 개발한 분산 추적 솔루션이다.Grafana Tempo  https://grafana.com/oss/tempo/ Grafana Tempo OSS | Distributed tracing backendIntroduction to Grafana Tempo Grafana Tempo is an open source, easy-to-use, and high-scale.. 2024. 11. 22.
[Grafana] 특정 파드 지속 장애 시 Slack Alert 제작 메트릭을 관측하고 얻는 자료들은 비즈니스 적으로 많은 가치가 있으나, 실시간으로 발생하는 특정 이벤트에 대한 대처(서버 다운 등)를 하기 위하여 수집되는 모든 데이터들을 24시간 동안 지켜본다는 것은 비현실적이고 불필요한 일이다.  그렇기 때문에 수집을 통하여 얻은 데이터가 특정 조건을 충족하면 이벤트가 발생했다는 알람을 만드는 것이 가장 효율적이라고 볼 수 있다.  Prometheus / Grafana Stack에서는 Alertmanager 또는 Grafana에서 알람을 만들어서 협업 툴을 통하여 받을 수 있는데, 이번 글은 특정 알람을 설정하고, 이를 Slack에서 받는 방법에 대하여 알아볼 것이다. 1. Slack Webhook Slack은 협업 툴로 많이 사용되고 다양한 오픈 소스들과 통합하기도 .. 2024. 10. 28.
[EFK] 쿠버네티스 환경 내 Fluent-Bit 사이드카로 엘라스틱 서치 로깅 이전 글에서는 로그 수집기의 종류와 아키텍처를 알아보았다.   [ELK/EFK] 로그 수집 - Filebeat / Logstash / Fluentd / Fluent-bit최근에는 많은 기업들이 Elastic 재단의 ELK stack(또는 EFK stack)을 활용하여 로그를 수집하고 이를 시각화하여 운영 상 발생하는 이슈를 잡아내고 비즈니스 의사결정에 참고를 한다. 저번의 글에서ssnotebook.tistory.com  이번 글에서는 Fluent-Bit을 쿠버네티스 파드 내에서 사이드카 형식으로 구축을 하고, 수집한 로그 정보를 엘라스틱 서치로 바로 전송하는 과정을 알아볼 것이다. 사이드카란 사이드카란 이륜차 옆에 좌석을 설치하여, 두 사람이 함께 같이 탈 수 있게 한 유형의 이륜차를 의미한다.아래 사진.. 2024. 9. 13.
[Fluent-Bit] Parser Timezone 적용 Fluent-bit에서 Parser를 이용할 때, 이는 기본적으로  UTC를 기준으로 Timezone을 사용한다.  https://docs.fluentbit.io/manual/v/dev-2.2/pipeline/parsers/configuring-parser Configuring Parser | Fluent Bit: Official ManualSpecify the data type of parsed field. The syntax is types : : ... . The supported types are string(default), integer, bool, float, hex. The option is supported by ltsv, logfmt and regex.docs.fluentbit.io  .. 2024. 9. 11.