brunch

You can make anything
by writing

C.S.Lewis

by 디이프 Sep 29. 2023

디이프의 API 모니터링 지표

디이프의 기술과 콘텐츠는 B2B 서비스와 B2C 서비스로 제공됩니다. B2B 서비스는 식품-바이오 복잡계 데이터베이스 iF® Core와 개인 맞춤 식품 추천 알고리즘 iF® API가 있습니다. B2C는 iF® Core 와 iF® API를 이용한 과일궁합과 아이푸드 같은 앱 기반 서비스로 제공하고 있습니다. 이번 글에서는 B2B 서비스로 API 서비스를 운영하면서 갖게 된 고민을 정리하고 해결 방법을 찾아본 경험을 공유하고자 합니다.



I. 들어가며 

하나의 API 서비스는 여러 개의 method를 제공합니다. iF® API의 경우 token을 발급해 주는 ‘token’, 식품을 추천해 주는 ‘recommend/food’, 음식을 추천해 주는 ‘recommend/dish’, 식품 또는 음식의 상세 정보를 제공해 주는 ‘contents’ 같은 method로 구성됩니다.


II. API 모니터링 지표

각각의 API마다 단순하게 사용량과 오류 로그 정도를 파악하고 문제를 파악하여 대처하는 정도로 서비스를 운영할 수도 있지만, API 서비스의 전략적인 운영을 위해서 현재 운영 중인 API 서비스가 조직의 목표나 서비스 또는 팀의 KPI(Key Performance Indicators)를 달성하고 있는지 파악하는 것이 중요합니다. 


아래 글에서는 API 서비스의 운영 상태를 조직의 KPI와 연관 지어 파악하기 위해 측정해야 하는 API 지표를 크게 (1) 운영지표, (2) 채택지표, (3) Product지표 와 같이 세 가지 유형의 지표로 구분하고 있으며 각 유형별로 측정이 필요한 세부 API 지표를 소개하고 있습니다.



(1) 운영지표: API 가 안정성, 신뢰성, 충분한 성능을 제공하고 있는가?

(1-1) 인프라 운영 지표

Uptime: 서비스 운영 시간

Resource: CPU 또는 메모리 사용량

Error rate: 요청 별 정상과 그 외 코드를 반환하는 요청의 비율

(1-2) 애플리케이션 운영 지표

분당 요청 수: Requests per minute. 운영 환경 최적화를 위한 지표

평균 및 최대 지연 시간: Average and maximum latency. 요청 수신 후 응답까지의 시간

분당 오류 수: Errors per minute. 운영 지침 평가를 위한 지표


(2) 채택지표: API가 개발 친화적인가?

고객 수: 발행된 API key 또는 개발자 계정 또는 조직의 수

API 사용량: 시간, 일, 주간, 월간, 연간 API 이용 트래픽 변화량

Time to first call: API를 이용하는 조직 또는 개발자가 접근 권한을 받고 최초로 API 호출을 실행하는 데까지 걸린 시간


(3) Product 지표: API 사업적 목표를 달성하고 가치를 제공하는가?

직접 및 간접 수익: API를 통해 발생하는 직접 또는 간접적인 수익

API당 애플리케이션: 각 API를 사용하고 있는 애플리케이션의 수

파트너 수: API를 사용하는 기업 또는 조직의 수


III. 마치며

여기서 소개된 API 지표는 서비스 전체적으로 파악하는 것뿐만 아니라 세부 API, 버전, API-key, 고객 조직 또는 개발자 계정, 기간별로 측정하는 것이 필요합니다. 이렇게 측정된 지표를 바탕으로 문제를 진단하고 각 지표를 개선하기 위한 task를 도출하고 이행하여 얼마나 각 지표가 개선되었는지를 비교하여 조금 더 나은 경험을 제공할 수 있을 것입니다.


이렇게 API를 개발하고 배포한 후 운영과정을 모니터링하면서 개선사항을 도출하고 또 그 개선사항을 개발, 배포하는 과정을 반복하는 것을 ‘API life cycle’이라고 합니다. 다음 글에서는 API life cycle에 대해 알아보도록 하겠습니다.



Reference

https://nginxstore.com/blog/api-gateway/api-지표-어떻게-모니터링하고-관리하고-계신가요/
































브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari