본문 바로가기

전체 글110

Victoria Metrics 알아보기 Victoria Metrics Victoria Metrics는 Prometheus 호환 TSDB(Time Series Database, 시계열데이터베이스) 및 모니터링 솔루션 이다. KISS(Keep It Simple, Stupid)의 설계원칙을 갖고 있어, 단순한 코드와 아키텍처를 지향하고 복잡한 추상화와 큰 외부 의존성을 지양한다. 특징 고효율의 솔루션으로 적은 리소스 사용량으로 높은 처리량을 갖는다. PromQL과 비슷한 MetricsQL이라는 쿼리 언어를 제공한다. series limiter를 통해 높은 카디널리티 문제와 high churn rate를 처리할 수 있다. 고성능의 single-node를 지원하므로 간단한 설치와 운영이 가능하다. 빠른 속도로 발전하고 있어, 주기적으로 upgrade가.. 2024. 2. 25.
Kafka - S3 Sink Connector Rotation Strategy(Flush 설정) MSK 클러스터에 S3 sink connector 연결해서 S3에 데이터 적재하기 MSK 클러스터에 S3 sink connector 연결해서 S3에 데이터 적재하기 💡 MSK Connector는 연결하고자 하는 MSK Cluster의 인증방식으로 인증없음이나 IAM 인증만 지원한다. MSK에서 S3 Sink Connector를 사용해서 S3에 접근하기 위해서는 Connector 생성 전에 아래 두개의 리소스가 devpongi.tistory.com 이전에 작성했던 블로그 글처럼 커넥터를 설정해서 사용 중 이었는데, 연속적으로 데이터가 들어오지 않는 토픽의 경우에는 Flush size가 매번 채워지지 않아 S3에 데이터가 업로드 되는데 지연이 발생하였다. 그래서 이번에 S3 업로드 설정을 추가하면서, S3 .. 2024. 2. 18.
Python에서 비동기 프로그래밍 코루틴(Coroutine) 코루틴은 함수 실행의 지연과 재개를 허용하는 함수이다. 여러 작업을 동시에 처리하는 비동기 프로그래밍에 유용하다. 파이썬에서 코루틴은 일반적으로 async/await 문법이 선호된다. async 키워드를 사용하여 코루틴을 정의하며, await를 통해 다른 작업이 완료될 때까지 대기할 수 있다. 기본 사용법 asyncio 라이브러리를 사용해서 구현한다. 함수를 선언할때, def 앞에 async 를 추가해서 코루틴을 정의하며, 코루틴을 단순히 호출하는것이 아닌 aysncio.run() 을 이용해서 실행한다. import asyncio async def async_function(name, delay): print(f"Start {name}") await asyncio.sleep(d.. 2024. 2. 11.
SQLAlchemy에서 Transaction사용하기 SQLAlchemy에서는 Transaction을 사용하여 with 구문이 정상 실행시에 commit되고 구문내에서 예외 발생시에 rollback 되도록 할 수 있다. Commit As You Go SQLAlchemy 2.0 이상부터 제공되는 기능. 공식문서에 아래와 같이 안내되어 있다. 1.4 버전에서 테스트 해보니, commit()실행과 상관없이 각 실행이 autocommit되며 connection에서 commit()을 지원하지 않는다. New in version 2.0: “commit as you go” style is a new feature of SQLAlchemy 2.0. It is also available in SQLAlchemy 1.4’s “transitional” mode when usi.. 2024. 1. 21.