익스포터와 통합
익스포터와 통합
모든 시스템이 처음부터 Prometheus 메트릭을 노출하진 않죠. HAProxy나 리눅스 시스템 상태처럼, 직접 계측하기 어려운 서비스의 기존 메트릭을 Prometheus 형식으로 끌어오는 역할을 하는 게 바로 **익스포터(exporter)**예요. 이 글에서는 익스포터가 무엇인지, 세부 목록보다는 어떤 종류가 있는지와 선택 기준을 잡아드릴게요.
익스포터란?
익스포터는 서드파티 시스템의 기존 메트릭을 Prometheus 메트릭으로 내보내는 데 도움을 주는 라이브러리·서버들을 말해요. 주어진 시스템에 Prometheus 메트릭을 직접 계측하는 게 현실적이지 않은 경우(예: HAProxy, 리눅스 시스템 통계)에 유용해요.
서드파티 익스포터
일부 익스포터는 공식 Prometheus GitHub 조직에서 유지 관리되는데, 이들은 **공식(official)**으로 표시돼요. 나머지는 외부에서 기여하고 유지 관리되는 것들이에요.
데이터베이스 익스포터
- Aerospike exporter
- AWS RDS exporter
- ClickHouse exporter
- Consul exporter (공식)
- Couchbase exporter
- CouchDB exporter
- Druid Exporter
- Elasticsearch exporter
- IoTDB exporter
- Memcached exporter (공식)
- MongoDB exporter
- MSSQL server exporter
- MySQL server exporter (공식)
- Redis exporter
메시징 시스템 익스포터
JMX 익스포터
JMX exporter는 Kafka, Cassandra 같은 다양한 JVM 기반 애플리케이션에서 메트릭을 내보낼 수 있어요.
Prometheus 메트릭을 노출하는 소프트웨어
어떤 소프트웨어는 익스포터를 거치지 않고 자체적으로 Prometheus 메트릭을 노출해요. 예를 들어 Kubernetes는 직접 노출(direct)하며, Linkerd, MinIO, RabbitMQ, Traefik 같은 도구들도 자체 노출을 지원해요. syslog 메트릭 수집 도구인 Netdata도 목록에 있어요.
기타 써드파티 유틸리티
- Java/JVM: Micrometer Prometheus Registry
- Python-Django: django-prometheus
- Node.js: swagger-stats
익스포터를 만들 때
새 익스포터를 개발한다면 writing exporters 지침을 따르는 게 좋아요. 익스포터가 최대한 유용하고 일관되게 만들 수 있도록 조언을 아끼지 않는 개발 메일링 리스트도 있으니 참고하면 돼요.
더 알아보기
- Writing exporters — 익스포터 작성 가이드
- Exposition formats — 노출 형식
- Pushing metrics — Push 사용 시점