JENNIFER, JenniferSoft APM, python agent.
Project description
JENNIFER 5, JenniferSoft APM Python agent
jennifer-python이란?
jennifer-python은 Python 환경에서 운영 중인 시스템을 실시간 모니터링(Monitoring) 할 수 있는 APM 프로그램입니다. Python 환경에서의 모든 트랜잭션과 인프라 전반에 대한 정확하고 심층적인 상세 정보를 통해 운영 중인 시스템을 최소한의 부하로 모니터링해 보세요.
제니퍼 Python agent 설치 방법
JENNIFER Python 에이전트는 공개된 PyPI(pip)를 통해서 설치한다.
지원 범위
OS: Linux 배포판과 macOS를 지원한다
Python: CPython의 2.x 버전은 2.7 이상, 3.x 버전은 3.3 이상을 지원한다.
Web framework 지원 범위
DB driver
MySQL or MariaDB
sqlite3
PostgreSQL
Oracle
mongodb
redis
pyodbc
pip를 이용한 설치 방법
pip를 통해서 jennifer-python을 설치한다.
$ pip install jennifer-python $ cat jennifer.ini [JENNIFER] server_address = 127.0.0.1 server_port = 5000 domain_id = 1000 inst_id = -1 # log_dir = /tmp # service_dump_dir = /tmp
설정 방법
위의 명령어를 수행하면 jennifer-admin이라는 도구가 함께 설치된다. 그리고 이 명령어를 통해 jennifer-python 모듈이 제니퍼 데이터 서버로 연결을 하기 위해 필요한 정보를 담은 설정 파일을 만들 수 있다.
$ jennifer-admin generate-config
해당 명령어를 실행하면 jennifer.ini파일이 생성된다. 생성된 파일의 각 필드는 다음의 의미를 갖는다.
Field
Description
server_address
data server의 IP
server_port
data server의 port
domain_id
도메인 ID, 테스트를 신청하면 제니퍼에서 제공한다.
inst_id
인스턴스의 아이디
inst_id의 설정 방법
인스턴스 ID는 Data server가 agent를 식별하기 uint16 범위의 숫자 값이다. 만약 이 값을 -1로 설정하면 Data server 측에서 자동으로 생성한 고유 ID를 할당한다.
실행
위 과정에서 생성한 설정 파일을 가지고 이제 JENNIFER를 실행할 수 있다.
$ JENNIFER_CONFIG_FILE=<설정 파일 경로> jennifer-admin run <python 실행 코드> $ JENNIFER_CONFIG_FILE=<설정 파일 경로> jennifer-admin runasync <python 실행 코드>
<설정 파일 경로>는 위에서 생성한 설정 파일의 경로를 의미한다. <python 실행 코드>는 기존에 파이썬 웹 애플리케이션 서버를 실행하던 커맨드(예: python manage.py runserver, uwsgi -i uwsgi.ini, …)를 의미한다.
예를 들어, jennifer.ini 파일이 /home/user/jennifer 디렉터리에 위치하고, 기존에 파이썬 응용 프로그램을 “uwsgi -i uwsgi.ini”로 실행했다면 다음과 같이 실행한다.
$ JENNIFER_CONFIG_FILE=/home/user/jennifer/jennifer.ini jennifer-admin run uwsgi -i uwsgi.ini
반면, uvicorn과 같은 비동기 기반의 호스팅 환경이라면 “runasync” 옵션을 이용해 다음과 같이 실행한다.
$ JENNIFER_CONFIG_FILE=/home/user/jennifer/jennifer.ini jennifer-admin runasync uvicorn --loop asyncio main:app
pip 설치 없이 에이전트에 적용하는 방법
5.6.3.0 버전 이후부터 pip를 이용한 설치 과정을 거치지 않고도 에이전트를 적용하는 방법을 제공한다. (설치하지 않은 경우에는 위에서 설명한 jennifer-admin 명령어를 사용할 수 없다.)
pypi에서 WHL 파일을 다운로드해 압축을 해제한다.
$ pwd /tmp $ unzip jennifer_python-5.6.3.0-py3-none-any.whl
위와 같이 압축을 해제하면 /tmp/jennifer 디렉터리가 생성된다. 해당 설치 경로를 기준으로 다음과 같이 PYTHONPATH 환경 변수를 추가하면,
$ export PYTHONPATH=/tmp/jennifer/admin $ export JENNIFER_CONFIG_FILE=/home/user/jennifer/jennifer.ini
이후 wsgi/asgi 응용 프로그램을 실행하면 제니퍼 에이전트가 적용된다.
# 동기(wsgi) 웹 앱인 경우 $ uwsgi -i uwsgi.ini
# 비동기(asgi) 웹 앱인 경우 $ export JENNIFER_IS_ASYNC=true $ uvicorn --loop asyncio main:app
유의 사항
일부 웹 애플리케이션 서버의 경우 jennifer-python의 적절한 데이터 수집을 위해 아래와 같은 옵션을 추가해야 한다.
호스팅 서버
옵션
uwsgi
–enable-threads
License
© Copyright 2024 JenniferSoft, All right reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file jennifer_python-5.6.3.7-py3-none-any.whl
.
File metadata
- Download URL: jennifer_python-5.6.3.7-py3-none-any.whl
- Upload date:
- Size: 6.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57af69bf06e75a6cc73060b8f94b9d934b545975ffafc4192bd1898e6d1fa99d |
|
MD5 | ab798a1f27441ad82824d0666b4c73f1 |
|
BLAKE2b-256 | bc4bf8ca0dcc9993bfc68649efeaba33dabfd9d7df87fd6d7d105f8fc6876224 |
File details
Details for the file jennifer_python-5.6.3.7-py2-none-any.whl
.
File metadata
- Download URL: jennifer_python-5.6.3.7-py2-none-any.whl
- Upload date:
- Size: 4.1 MB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.0 requests-toolbelt/1.0.0 tqdm/4.64.1 CPython/2.7.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa227ec5e3b4a50433e15c6019317657dda1f9f774269001723173938942a537 |
|
MD5 | 57a58674982fcf9059ee789481a597fc |
|
BLAKE2b-256 | f14bbc83fee327d4413e501aa93804b75057283e4464b66241b20dcf90411cc3 |