Datadog으로 metric 보내는 python 예제 코드

Python에서 dataddog_api_client 패키지를 이용해 datadog으로 metric 정보를 보내고 이를 Dashbaord 같은 곳에서 볼 수 있다. 아래는 TimeSerise 형태로 데이터를 보내는 예제다. """ Submit metrics returns "Payload accepted" response """ from…

0 Comments

poetry does not contain any element 에러

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…

0 Comments

Python encode/databases 사용 시 connection 안되는 에러

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'")…

0 Comments

Python OrderedDict 앞에 키,값 추가하기

OrderedDict 타입 변수의 제일 앞에 키-값을 추가하려는 경우입니다. log_record라는 변수가 기존에 있던 변수이고 log_status라는 새로운 키-값 변수를 log_record에 추가하는데 뒤 쪽이 아니라 앞쪽에 넣으려는 경우입니다. log_status = {"level":record.levelname} log_record.update(log_status) log_record.move_to_end('level',…

0 Comments

python logging timezone 변경 하기

시스템 시간은 UST인데 Python 프로그램에서만 timezone을 변경하여 log를 출력할 일이 있습니다. 시스템 시간 변경 시 영향을 주는 곳이 많기 때문에 특정 프로그램 사용에만 timezone 변경하려는 의도였는데요. 간단하게 바꾸는 방법은 찾지…

0 Comments

FastAPI 비동기 API를 pytest로 테스트 하기

poetry로 Python 프로젝트를 세팅하고 FastAPI의 비동기 API를 pytest로 테스트 해보겠습니다. 보통 Database transaction이 있는 동작의 경우 DB 연결을 비동기 형태로 해서 API를 구현하는 경우가 있을텐데 이런 경우 sync 형태로 pytest를…

0 Comments

FastAPI + Celery 연동 예제(FastAPI with Celery example)

FastAPI에서 Celery를 사용하여 비동기 태스크를 실행하는 예제를 정리해보겠습니다. 참고로 localhost에 redis가 동작중이어야합니다. main.py from fastapi import FastAPI from celery_worker import divide app = FastAPI() @app.get("/") async def root(): return {"message":…

0 Comments

Ubuntu pyenv 설치와 기본 사용 방법

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 의존성 패키지…

0 Comments