Seonghyeon Cho

Seonghyeon Cho

Independent programmer.
Prometheus Operator, Memcached
prometheus

Prometheus operator를 이용한 Memcached 지표 수집 예제

이번 글에서는 prometheus에 대해 가볍게 소개하고, Prometheus operator를 이용해 memcached의 지표를 수집하는 예제를 만들어보겠다. Prometheus 소개 프로메테우스(Prometheus)는 모니터링 시스템으로, 메트릭 정보를 주기적으로 수집해 시계열 DB(TSDB, TimeSeries DB)에 저장하고, PromQL(Query Language)을 이용한 시각화 및 추출을 지원한다. 기본 구성은 이렇게 생겼고, 기본적으로는 메트릭을 긁어가는(scraping) 방식으로
7 min read
jenkins

[Jenkins] ws-cleanup_{timestamp} 폴더 지우기

Jenkins(젠킨스) slave worker 용량이 부족해 Offline 상태가 되었는데, 확인해보니 ws-cleanup_{timestamp} 형식의 폴더가 계속 쌓여서 용량이 가득 찬 것이었다 Workspace Cleanup 이라는 플러그인을 쓰고 있는데, 과거 버전에 삭제가 제대로 안되는 버그가 있다고 한다 (비슷한 현상이 나타나는 유저의 질문글: https://stackoverflow.com/q/44364044/4295499) 일단 아래처럼 crontab을 추가하는 식으로
1 min read
종이비행기 날리는 로봇
telegram

텔레그램으로 공탐지수 봇 만들기

BotFather(https://t.me/botfather)를 이용해 텔레그램 봇을 쉽게 만들 수 있다. 공탐지수를 매일 메시지로 보내주는 봇을 만들어보자 BotFather 친구추가 및 봇 추가 만드는건 쉬우니 넘어간다. HTTP API 토큰은 유출되면 안되니 조심하자. bot api는 https://core.telegram.org/bots/api 여기서 확인할 수 있고, 이중에서 sendMessage를 이용해보자 # 기본 형식
4 min read
파피루스 문서
C++

doxygen 사용법, github pages로 배포하기

doxygen(독시즌)은 소스코드 주석으로 문서를 만드는 프로그램이다. 설정은 Doxyfile(독시파일)로 관리가 가능하며, 옵션이 다양하지만 이번 포스트에서는 기본 설정으로 C++ 프로젝트를 github actions을 이용해 github pages에 배포하는 것까지만 해보도록 하겠다. Doxygen 설치 및 설정 brew install doxygen 설정 추가와 테스트를 위해 로컬에 doxygen을 설치한다 # 문서 만들기 doxygen # Doxyfile 생성
4 min read
grep 사용 예시
linux

grep 사용법

grep은 파일에서 패턴에 맞는 라인을 출력하는 유틸리티다. 사용법 grep [OPTION...] PATTERNS [FILE...] grep [OPTION...] -e PATTERNS ... [FILE...] grep [OPTION...] -f PATTERN_FILE ... [FILE...] 기본적으로 정규표현식을 사용하며, 옵션에 따라 확장 정규식(Extended Regular Expression), 펄 호환 정규식(PCRE, Perl-Compatible Regular Expression) 등을 쓸 수 있다. grep을 쉘에서 사용할 때, 패턴은 일반적으로
11 min read
kubernetes

[k8s] kind metrics-server 설치

metrics-server는 HPA, VPA 등의 Autoscale을 위한 메트릭 수집 서버다. 각 노드의 kubelet을 이용해 node, pod의 CPU, memory 메트릭을 수집하며, 이를 kube-apiserver로 전달한다. kind로 만든 클러스터에 metrics-server를 helm으로 설치해보자. 간단한 설치 및 사용법은 이전 글을 참고하자 * https://blog.joe-brothers.com/macos-local-kubernetes-cluster-with-kind/ YAML manifest 또는 공식 helm chart로 설치할 수 있다 helm을
2 min read
beaver with computer part
dbeaver

DBeaver에 저장된 커넥션 정보 확인 방법

DB 클라이언트중 하나인 디비버(dbeaver)를 사용하던 중 옛날에 저장해놓은 DB 커넥션 패스워드 정보가 기억이 안났다. 커넥션 정보는 로컬에 있으며, 암호화 키는 소스코드에 있기 때문에 복호화를 해서 저장된 정보를 확인할 수 있다. * https://github.com/dbeaver/dbeaver/blob/d69a75e63bf0a00e37f6b4ab9c9aa4fcaa0ded23/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/
1 min read
Illustration of cyberpunk style robot manager standing in front of several computers. Oil painting style.
jenkins

[Jenkins] slave offline 상태 확인하는 Job 만들기

우리 부서에서는 여러 용도로 젠킨스를 이용하고 있는데, jenkins slave agent가 여러 이유로 종종 offline이 되어서, 배치가 제대로 실행되지 않는 경우가 생겼다. 근본적인 해결책은 jenkins worker를 k8s pod로 동적 생성한다든가, k8s native cicd 툴을 쓴다든가, 아무튼 self healing이 되는 것으로 이전하는 것이다. 하지만 젠킨스의 수많은 plugin들과 groovy pipeline들을 타 플랫폼으로 옮기는
5 min read
insomnia

[Insomnia] Response 변수로 저장 및 재사용 하는 방법

Postman에는 request시 특정 스크립트를 실행할 수 있고, 그 중 pm.environment를 사용해 environment에 변수를 설정하고 Header, Body 등에서 템플릿을 이용해 이 값을 가져올 수 있다. 예를 들면 로그인 API를 호출하면 자동으로 응답을 파싱해서 리프레시 토큰(refresh token)과 액세스 토큰(access token)을 환경 변수에 넣고, 각종 API 호출 시에는
4 min read
dart

[Dart] analyzer에서 특정 파일 제외하기

플러터 개발을 하다 보면 build_runner 결과물로 생성되는 코드(generated code)를 많이 사용하는데, 이런 파일에는 사실 정적 분석이 필요하지는 않다. 약간의 스타일 불일치나 작은 warning이 있다고 해도, 수동으로 generated code를 변경하는 것은 권장되지 않는다. 또한 generated code를 배포 파이프라인에서만 만들고, 버전 관리에는 추가하지 않는 경우도 많다. include: package:flutter_
1 min read
OpenLens 실행 화면
lens Featured

Lens 오픈소스 대체, OpenLens

맥북 사용자라면 kubernetes GUI 클라이언트 중, Lens를 많이 사용할텐데, 2023년 1월 2일부터 기업 유저는 Pro 구독($199/1년)을 해야 사용 가능하다. 오픈소스 버전의 Lens 소스코드는 MIT 라이센스로 깃허브에 공개되어 있어 직접 빌드해서 써도 되고, 빌드한 바이너리를 올려둔 OpenLens 리파지토리에서 받아서 써도 된다. * Source: https://github.com/lensapp/lens * Binary
2 min read