요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도
입문
AWS X-Ray를 사용하여 애플리케이션에서 처리하는 다양한 요청을 추적합니다.
요청 처리에 사용되는 라이브러리에서 X-Ray SDK는 기본적으로 AWS SDK를 포함한 여러 라이브러리를 지원하므로 어플리케이션 패치를 간단히 추적하여 처리할 수 있습니다.
이번에는 Python에서 DB를 조작하는 프로그램을 가정합니다. X-ray SDK for Python에서 지원하는 mysql-connector-python 프로그램 패치를 시도합니다.
AWS X-Ray 구현 - 라이브러리를 다운스트림으로 패치하여 호출
환경
검증은 로컬에서 이루어집니다.
OS: macOS High Sierra
Python: 3.6.5
MySQL: 5.6
실행
ySQL 서버
적당히 준비하다.이번에는 Docker에서 mysql:5.6 이미지를 추출하여 실행합니다.
데이터베이스 및 테이블 준비
다음 질의를 수행합니다.# データベース
create database xray_test;
# テーブル
create table user (id char(10), name char(20));
X선 데몬
추적된 정보를 AWS의 X-Ray 서비스에 버리려면 X-Ray 데몬 프로세스를 실행해야 합니다.
이번에는 로컬에서 검증했기 때문에macOS에서 실행할 수 있는 스크립트를 삭제하고 -o
옵션을 실행합니다.
AWS X-Ray - 로컬에서 X-Ray 데몬 실행 ./xray_mac -o
Python 스크립트 실행
이번에는 SELECT·INSERT·DELETE를 추적해 보자.
import mysql.connector
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch
# パッチ適用 patch_allでも可
libraries = ('mysql',)
patch(libraries)
# X Ray の設定
xray_recorder.configure(service='mysql-connector',
daemon_address="127.0.0.1:2000")
# mysql セグメント開始
segment = xray_recorder.begin_segment('mysql')
# 接続
conn = mysql.connector.connect(user='root', password='password', host='127.0.0.1', database='xray_test')
cur = conn.cursor()
# INSERT
cur.execute("insert into user values ('01', 'hoge');")
conn.commit()
# SELECT
cur.execute("select * from user;")
for row in cur.fetchall():
print(row[0],row[1])
# DELETE
cur.execute("delete from user where id = '01';")
conn.commit()
cur.close()
conn.close()
# mysql セグメント終了
xray_recorder.end_segment()
결과
AWS 콘솔에서 확인합니다.
상세한 추적, 이렇게 세 가지 요구가 있습니다.
색상 띠 세그먼트를 선택하면 SQL 레이블이 나타납니다.데이터베이스 유형, 버전 및 연결된 사용자 이름이 열립니다.
이 정보는 SELECT, INSERT, DELETE와 같습니다.
주의사항
X-Ray 추적을 위해서는 mysql.connector.connect
함수를 사용하여 연결을 설정해야 합니다.
당초 연결 탱크 조작을 위해 사용mysql.connector.pooling.MySQLConnectionPool
했지만 추적이 전혀 없었다
일괄 처리 라이브러리에도 지원되는 함수/지원되지 않는 함수가 있는 것 같습니다. 주의하십시오.
총결산
이렇게 하면 MySQL 서버에 대한 요청을 추적할 수 있지만 기본적으로 연결부와 처리 시간 정도만 추적하기 때문에 더 자세한 정보를 얻으려면 SQLalchemy ORM을 사용해야 한다.나는 다시 한 번 별도로 검증하고 싶다.
참고 자료
MySQL Connector/Python Developer Guide
aws/aws-xray-sdk-python - GitHub
Python에서 MySQL로 연결
Reference
이 문제에 관하여(요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mmclsntr/items/981711f17db5c4604c75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
검증은 로컬에서 이루어집니다.
OS: macOS High Sierra
Python: 3.6.5
MySQL: 5.6
실행
ySQL 서버
적당히 준비하다.이번에는 Docker에서 mysql:5.6 이미지를 추출하여 실행합니다.
데이터베이스 및 테이블 준비
다음 질의를 수행합니다.# データベース
create database xray_test;
# テーブル
create table user (id char(10), name char(20));
X선 데몬
추적된 정보를 AWS의 X-Ray 서비스에 버리려면 X-Ray 데몬 프로세스를 실행해야 합니다.
이번에는 로컬에서 검증했기 때문에macOS에서 실행할 수 있는 스크립트를 삭제하고 -o
옵션을 실행합니다.
AWS X-Ray - 로컬에서 X-Ray 데몬 실행 ./xray_mac -o
Python 스크립트 실행
이번에는 SELECT·INSERT·DELETE를 추적해 보자.
import mysql.connector
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch
# パッチ適用 patch_allでも可
libraries = ('mysql',)
patch(libraries)
# X Ray の設定
xray_recorder.configure(service='mysql-connector',
daemon_address="127.0.0.1:2000")
# mysql セグメント開始
segment = xray_recorder.begin_segment('mysql')
# 接続
conn = mysql.connector.connect(user='root', password='password', host='127.0.0.1', database='xray_test')
cur = conn.cursor()
# INSERT
cur.execute("insert into user values ('01', 'hoge');")
conn.commit()
# SELECT
cur.execute("select * from user;")
for row in cur.fetchall():
print(row[0],row[1])
# DELETE
cur.execute("delete from user where id = '01';")
conn.commit()
cur.close()
conn.close()
# mysql セグメント終了
xray_recorder.end_segment()
결과
AWS 콘솔에서 확인합니다.
상세한 추적, 이렇게 세 가지 요구가 있습니다.
색상 띠 세그먼트를 선택하면 SQL 레이블이 나타납니다.데이터베이스 유형, 버전 및 연결된 사용자 이름이 열립니다.
이 정보는 SELECT, INSERT, DELETE와 같습니다.
주의사항
X-Ray 추적을 위해서는 mysql.connector.connect
함수를 사용하여 연결을 설정해야 합니다.
당초 연결 탱크 조작을 위해 사용mysql.connector.pooling.MySQLConnectionPool
했지만 추적이 전혀 없었다
일괄 처리 라이브러리에도 지원되는 함수/지원되지 않는 함수가 있는 것 같습니다. 주의하십시오.
총결산
이렇게 하면 MySQL 서버에 대한 요청을 추적할 수 있지만 기본적으로 연결부와 처리 시간 정도만 추적하기 때문에 더 자세한 정보를 얻으려면 SQLalchemy ORM을 사용해야 한다.나는 다시 한 번 별도로 검증하고 싶다.
참고 자료
MySQL Connector/Python Developer Guide
aws/aws-xray-sdk-python - GitHub
Python에서 MySQL로 연결
Reference
이 문제에 관하여(요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mmclsntr/items/981711f17db5c4604c75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# データベース
create database xray_test;
# テーブル
create table user (id char(10), name char(20));
./xray_mac -o
import mysql.connector
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch
# パッチ適用 patch_allでも可
libraries = ('mysql',)
patch(libraries)
# X Ray の設定
xray_recorder.configure(service='mysql-connector',
daemon_address="127.0.0.1:2000")
# mysql セグメント開始
segment = xray_recorder.begin_segment('mysql')
# 接続
conn = mysql.connector.connect(user='root', password='password', host='127.0.0.1', database='xray_test')
cur = conn.cursor()
# INSERT
cur.execute("insert into user values ('01', 'hoge');")
conn.commit()
# SELECT
cur.execute("select * from user;")
for row in cur.fetchall():
print(row[0],row[1])
# DELETE
cur.execute("delete from user where id = '01';")
conn.commit()
cur.close()
conn.close()
# mysql セグメント終了
xray_recorder.end_segment()
AWS 콘솔에서 확인합니다.
상세한 추적, 이렇게 세 가지 요구가 있습니다.
색상 띠 세그먼트를 선택하면 SQL 레이블이 나타납니다.데이터베이스 유형, 버전 및 연결된 사용자 이름이 열립니다.
이 정보는 SELECT, INSERT, DELETE와 같습니다.
주의사항
X-Ray 추적을 위해서는 mysql.connector.connect
함수를 사용하여 연결을 설정해야 합니다.
당초 연결 탱크 조작을 위해 사용mysql.connector.pooling.MySQLConnectionPool
했지만 추적이 전혀 없었다
일괄 처리 라이브러리에도 지원되는 함수/지원되지 않는 함수가 있는 것 같습니다. 주의하십시오.
총결산
이렇게 하면 MySQL 서버에 대한 요청을 추적할 수 있지만 기본적으로 연결부와 처리 시간 정도만 추적하기 때문에 더 자세한 정보를 얻으려면 SQLalchemy ORM을 사용해야 한다.나는 다시 한 번 별도로 검증하고 싶다.
참고 자료
MySQL Connector/Python Developer Guide
aws/aws-xray-sdk-python - GitHub
Python에서 MySQL로 연결
Reference
이 문제에 관하여(요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mmclsntr/items/981711f17db5c4604c75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이렇게 하면 MySQL 서버에 대한 요청을 추적할 수 있지만 기본적으로 연결부와 처리 시간 정도만 추적하기 때문에 더 자세한 정보를 얻으려면 SQLalchemy ORM을 사용해야 한다.나는 다시 한 번 별도로 검증하고 싶다.
참고 자료
MySQL Connector/Python Developer Guide
aws/aws-xray-sdk-python - GitHub
Python에서 MySQL로 연결
Reference
이 문제에 관하여(요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mmclsntr/items/981711f17db5c4604c75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(요청을 추적하기 위해 AWS X-Ray에서 mysql-connector-python 일괄 처리 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mmclsntr/items/981711f17db5c4604c75텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)