AWS Lambda+python에서 datag로 사용자 지정 지표 전송
소개
AWS Lambda 함수에서 datag로 커스텀 메트릭을 제출하는 방법의 메모입니다. 이번 구현에는 파이썬을 이용했습니다.
참고한 기사
실제로 한 일
함수 만들기
우선 함수를 작성. 런타임은 python3.8을 만듭니다.

레이어 추가
온프레 서버에서 파이썬으로 커스텀 메트릭을 보낼 때는 pip 명령으로 datag 라이브러리를 추가하지만 Lambda이므로 레이어를 추가해 라이브러리를 사용할 수 있도록 합니다.
datadog 자신이 레이어를 준비하고 있기 때문에 그것을 사용하기로 결정합니다.
함수 개요 화면 하단으로 스크롤하여 레이어 추가를 클릭합니다.

중략

레이어 추가는 ARN을 지정하여 추가합니다.
datadog가 레이어를 공개하기 때문에 여기에서 최신 버전을 선택해야합니다.
htps : // 기주 b. 코 m / 그냥 g / 그냥 g ぁ
이번 함수는 python3.8에서 구현하기 위해 다음 ARN을 사용합니다.
- arn:aws:lambda::464622532012:layer:Datadog-Python38:42
나는 도쿄 지역 (ap-northeast-1)에서 함수를 구현했으므로 다음 ARN을 설정하기로 결정한다.
arn:aws:lambda:ap-northeast-1:464622532012:layer:Datadog-Python38:42

Lambda에서 환경 변수 설정
datadog를 이용하기 위해서는 환경 변수의 설정도 필요하므로, 설정해 둡니다.
datadog측에서 API 키를 발행해 두고, 아래와 같은 환경 변수를 설정합니다.
- DD_API_KEY: API 키
함수 구현
나머지는 함수를 파이썬으로 구현하기 만하면됩니다.
다음은 lambda.test_metrics라는 이름으로 99.99라는 메트릭 값을 보내는 프로그램입니다.
lambda_function.pyimport json
from datadog_lambda.metric import lambda_metric
from datadog_lambda.wrapper import datadog_lambda_wrapper
@datadog_lambda_wrapper
def lambda_handler(event, context):
tags = ['name:testapp']
metric = "lambda.test_metrics"
value = 99.99
lambda_metric(metric, value, tags=tags)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
결과
datadog의 메트릭스 익스플로러에서 탐색해 보면 전송되고 있음을 알 수 있습니다.
datadog에 익숙한 사람이라면 알고 싶습니다만, 메트릭스가 반영되기까지 조금 걸리므로 함수 실행 직후에 보러 가면 빠집니다.

도전
공식은 비동기 메트릭을 사용하도록 권장합니다 (환경 변수 : DD_FLUSH_TO_LOG 참조). 그러나 Datadog Forwarder를 사용해야하는 것 같습니다. 여기 편은 시도하면 다시 기사를 쓰기로 결정합니다.
Reference
이 문제에 관하여(AWS Lambda+python에서 datag로 사용자 지정 지표 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nyaoki_board/items/8d5ce236cda3d54decae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import json
from datadog_lambda.metric import lambda_metric
from datadog_lambda.wrapper import datadog_lambda_wrapper
@datadog_lambda_wrapper
def lambda_handler(event, context):
tags = ['name:testapp']
metric = "lambda.test_metrics"
value = 99.99
lambda_metric(metric, value, tags=tags)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
datadog의 메트릭스 익스플로러에서 탐색해 보면 전송되고 있음을 알 수 있습니다.
datadog에 익숙한 사람이라면 알고 싶습니다만, 메트릭스가 반영되기까지 조금 걸리므로 함수 실행 직후에 보러 가면 빠집니다.

도전
공식은 비동기 메트릭을 사용하도록 권장합니다 (환경 변수 : DD_FLUSH_TO_LOG 참조). 그러나 Datadog Forwarder를 사용해야하는 것 같습니다. 여기 편은 시도하면 다시 기사를 쓰기로 결정합니다.
Reference
이 문제에 관하여(AWS Lambda+python에서 datag로 사용자 지정 지표 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nyaoki_board/items/8d5ce236cda3d54decae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS Lambda+python에서 datag로 사용자 지정 지표 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nyaoki_board/items/8d5ce236cda3d54decae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)