Datadog으로 metric 보내는 python 예제 코드
Python에서 dataddog_api_client 패키지를 이용해 datadog으로 metric 정보를 보내고 이를 Dashbaord 같은 곳에서 볼 수 있다. 아래는 TimeSerise 형태로 데이터를 보내는 예제다. """ Submit metrics returns "Payload accepted" response """ from…
Python에서 dataddog_api_client 패키지를 이용해 datadog으로 metric 정보를 보내고 이를 Dashbaord 같은 곳에서 볼 수 있다. 아래는 TimeSerise 형태로 데이터를 보내는 예제다. """ Submit metrics returns "Payload accepted" response """ from…
ImportError: cannot import name 'Celery' from 'celery' (/usr/local/lib/python3.7/site-packages/celery/init.py) python에서 flask를 실행하려는데 import하는 celery 쪽에서 오류가 발생했다. 위와 같은 오류인데 디펜던시 패키지의 버전 문제로 발생한 오류다. 아래 패키지를 설치해주면 해결된다. pip…
Docker 이미지 빌드를 하는데 poetry install 사용 시 'does not contain any element'에러가 출력 됐습니다. 사용했던 Dockerfile은 대략 아래와 같은 내용이었는데요. FROM nikolaik/python-nodejs:python3.10-nodejs16-alpine RUN apk --no-cache add wget gcc python3-dev…
conn = await connect(echo=self._echo, loop=self._loop, File "/home/ubuntu/.pyenv/versions/3.9.13/envs/auction_39/lib/python3.9/site-packages/aiomysql/connection.py", line 75, in _connect await conn._connect() File "/home/ubuntu/.pyenv/versions/3.9.13/envs/auction_39/lib/python3.9/site-packages/aiomysql/connection.py", line 558, in _connect raise OperationalError(2003, pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost'")…
Flask에서 생성되는 로그를 datadog으로 보내려는데 ddtrace-run으로 flask 앱을 실행하면 로그가 중복으로 나오는 경우입니다. ddtrace-run 실행 시 제가 설정한 로그와 ddtrace-run에서 생성되는 로그가 같이 나오더라구요. 아래와 같이 환경변수 옵션을 주면 해결됩니다.…
OrderedDict 타입 변수의 제일 앞에 키-값을 추가하려는 경우입니다. log_record라는 변수가 기존에 있던 변수이고 log_status라는 새로운 키-값 변수를 log_record에 추가하는데 뒤 쪽이 아니라 앞쪽에 넣으려는 경우입니다. log_status = {"level":record.levelname} log_record.update(log_status) log_record.move_to_end('level',…
시스템 시간은 UST인데 Python 프로그램에서만 timezone을 변경하여 log를 출력할 일이 있습니다. 시스템 시간 변경 시 영향을 주는 곳이 많기 때문에 특정 프로그램 사용에만 timezone 변경하려는 의도였는데요. 간단하게 바꾸는 방법은 찾지…
poetry로 Python 프로젝트를 세팅하고 FastAPI의 비동기 API를 pytest로 테스트 해보겠습니다. 보통 Database transaction이 있는 동작의 경우 DB 연결을 비동기 형태로 해서 API를 구현하는 경우가 있을텐데 이런 경우 sync 형태로 pytest를…
FastAPI에서 Celery를 사용하여 비동기 태스크를 실행하는 예제를 정리해보겠습니다. 참고로 localhost에 redis가 동작중이어야합니다. main.py from fastapi import FastAPI from celery_worker import divide app = FastAPI() @app.get("/") async def root(): return {"message":…
pyenv 설치 pyenv 설치하기 전에 의존성 패키지들을 설치한다. sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev 의존성 패키지…