Python 애플리케이션에서 OpenTelemetry 사용
효율적인 문서 생성과 관찰 가능성은 현대 소프트웨어 개발에서 확장 가능하고 탄력적인 시스템을 구축하는 데 필수적인 기반입니다. 개발자는 오픈 소스 관측 플랫폼인 OpenTelemetry를 사용하여 분산 시스템에서 관측 가능한 데이터를 계측, 수집 및 분석할 수 있습니다.
개발자는 강력한 .NET Framework 인 IronPDF 사용하여 PDF 문서를 쉽게 생성, 수정 및 출력할 수 있습니다. 이 글에서는 OpenTelemetry Python과 IronPDF 의 통합에 대해 논의하고, 이 두 기술이 어떻게 함께 작동하여 관찰 가능성과 문서 생성 잠재력을 향상시키는지 보여줍니다.
개발자는 OpenTelemetry API 및 SDK 패키지(Python으로 구현된 OpenTelemetry 프로젝트)를 통해 분산 시스템에서 공개 원격 측정 데이터 및 기타 데이터를 계측, 수집 및 내보내기 위한 광범위한 기능 세트에 액세스할 수 있습니다.

OpenTelemetry 기능
Python의 주요 기능을 위한 OpenTelemetry 계측 도구를 살펴보겠습니다.
분산 추적
- 분산 추적은 개발자가 분산된 시스템을 통해 요청 경로를 추적할 수 있도록 해주며, 이는 Python용 OpenTelemetry를 통해 가능해집니다.
- 추적 정보는 서비스 접속 날짜 및 시간을 포함하여 요청 순서에 대한 통찰력을 제공합니다.
- 개발자는 Python 프로그램에 계측 기능을 추가하여 분산 추적의 개별 작업 또는 일부를 기록할 수 있습니다.
지표 수집
- OpenTelemetry Python은 시스템의 동작과 성능에 관한 수치 데이터를 수집하는
MeterProvider메트릭 가져오기를 용이하게 합니다. - 개발자는 지연 시간, 처리량, 오류율 및 리소스 사용량과 같은 측정값을 수집하기 위해 애플리케이션에 계측 도구를 설치할 수 있습니다.
- 이러한 지표는 사용 패턴, 성능 추세 및 시스템 상태에 대한 통찰력을 제공함으로써 시스템 동작을 이해하는 데 도움이 됩니다.
컨텍스트 전파
- OpenTelemetry API 패키지를 사용하면 컨텍스트 전파가 더 쉬워지며, 이를 통해 추적 및 스팬 컨텍스트와 같은 분산 컨텍스트가 서비스 경계를 넘어 전파됩니다.
- 원격 측정 데이터는 컨텍스트 전파 덕분에 시스템을 통과하면서 상호 연관되고 맥락화될 수 있으므로 데이터의 연속성과 일관성이 유지됩니다.
계측 라이브러리
- OpenTelemetry Python은 널리 사용되는 프레임워크, 라이브러리 및 프로토콜용 계측 패키지를 제공하여 기존 Python 애플리케이션을 쉽게 계측할 수 있도록 합니다.
- 웹 프레임워크(Flask 및 Django 등), 데이터베이스 클라이언트(SQLAlchemy 및 Pymongo 등), 메시징 시스템(Kafka 및 RabbitMQ 등) 등과의 통합 기능은 계측 라이브러리에서 찾을 수 있습니다.
수출업체 생태계
- OpenTelemetry Python에서 제공하는 다양한 익스포터를 통해 개발자는 원격 측정 데이터를 다양한 관측 시스템 및 백엔드로 내보낼 수 있습니다.
- Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace 등과 같은 관찰 플랫폼과의 통합은 익스포터에서 지원됩니다.
- 개발자는 익스포터를 설정하여 원격 측정 데이터를 하나 이상의 백엔드로 전송하여 장기 저장, 분석 및 표시할 수 있습니다.
- OpenTelemetry Python은 수집되는 원격 측정 데이터의 양을 조절하기 위해 가변 샘플링 기법을 지원합니다.
- 개발자는 사용자 지정 샘플링 로직을 적용하거나, 특정 비율의 트레이스를 샘플링하도록 설정하거나, 사전 정의된 매개변수(예: 요청 헤더 또는 경로)에 따라 샘플링할 수 있는 옵션을 제공합니다.
맥락적 기록 관리
- 원격 측정 데이터 외에도 상황별 데이터를 기록하는 도구가 OpenTelemetry Python SDK에서 제공됩니다.
- 개발자는 컨텍스트 로깅을 통해 로그 메시지에 추적 및 범위 컨텍스트를 추가할 수 있으며, 이를 통해 문제 해결 및 디버깅에 더 많은 컨텍스트를 제공할 수 있습니다.
OpenTelemetry Python 생성 및 구성
OpenTelemetry 설정 구성
OpenTelemetry를 프로젝트에 설정하려면 필요한 패키지를 pip install opentelemetry-exporter-jaeger로 설치하는 것부터 시작할 수 있습니다.
pip install opentelemetry-exporter-jaegerpip install opentelemetry-exporter-jaeger다음으로 다음 명령어를 사용하여 OpenTelemetry Python SDK를 설치하십시오.
pip install opentelemetry-sdkpip install opentelemetry-sdkopentelemetry-api pip 패키지는 계측에 대한 종합적인 API를 제공하며 자동 계측을 제공하여 애플리케이션을 계측하기 쉽게 만듭니다. 효율적인 텔레메트리 데이터 내보내기를 보장하려면 export-import BatchSpanProcessor 방법을 사용할 수 있습니다.
OpenTelemetry SDK 매개변수를 정의하려면 구성 파일을 만드세요. 구성 파일 otel_config.py은 예시로 사용됩니다. resources import Resource 및 trace import TracerProvider 등의 모든 가져오기가 코드 예제를 오류 없이 설정하기 위해 존재하는지 확인합니다.
from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
agent_host_name="localhost",
agent_port=6831,
)
# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
agent_host_name="localhost",
agent_port=6831,
)
# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)이 설정 파일 내에서:
- Jaeger 익스포터는 로컬 호스트 Jaeger 에이전트로 추적 정보를 내보내도록 설정되어 있습니다.
- Jaeger 익스포터를 사용하여
TracerProvider을 생성하고 이를 글로벌 추적기 공급자로 설정합니다. - 저희는 Python 프로그램의 서비스 이름을 제공합니다.
애플리케이션에서 OpenTelemetry를 초기화하세요
Python 프로그램에 otel_config 모듈을 가져온 후 다음 예제 Python 코드로 OpenTelemetry를 초기화합니다:
from opentelemetry import trace
from otel_config import tracer_provider
# Initialize OpenTelemetry
trace.get_tracer(__name__)from opentelemetry import trace
from otel_config import tracer_provider
# Initialize OpenTelemetry
trace.get_tracer(__name__)이렇게 하면 otel_config.py에서 찾은 구성이 OpenTelemetry 계측을 위해 초기화됩니다.
지원서 작성 시 필요한 도구
OpenTelemetry를 사용하여 Python 프로그램에 계측 기능을 추가하면 추적 정보를 기록할 수 있습니다. 코드에 계측 기능을 추가하는 방법에는 수동으로 추가하거나 내장 라이브러리를 사용하는 두 가지 옵션이 있습니다. 다음은 몇 가지 수동 계측 호출 예시입니다.
from opentelemetry import trace
# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
# Your code here
passfrom opentelemetry import trace
# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
# Your code here
passJaeger UI에서 추적 보기
기록된 추적 정보를 확인하고 분석하려면 Jaeger 사용자 인터페이스로 이동하십시오. OpenTelemetry 수집기가 기록한 추적을 보려면 웹 브라우저에서 Jaeger UI를 열고(보통 http://localhost:16686에서) 서비스 이름을 선택합니다.
본 지침을 따라 OpenTelemetry Python을 애플리케이션에 성공적으로 설치 및 구성했습니다. 이제 OpenTelemetry를 사용하여 추적 데이터를 기록하고 Jaeger 백엔드로 내보내면 Python 프로그램의 동작 방식과 성능을 확인할 수 있습니다.
IronPDF 시작하기
IronPDF 란 무엇인가요?
Iron Software 의 강력한 .NET 라이브러리인 IronPDF 를 사용하면 개발자는 .NET 애플리케이션 내에서 PDF 문서를 생성, 편집 및 발표할 수 있습니다. 개발자는 IronPDF 사용하여 기존 PDF 파일, HTML 텍스트, URL 및 이미지와 같은 다양한 소스에서 PDF 문서를 프로그래밍 방식으로 생성할 수 있습니다. IronPDF의 기능을 좀 더 자세히 살펴보겠습니다.

HTML을 PDF로 변환
개발자는 IronPDF 사용하여 HTML 콘텐츠를 PDF 파일로 쉽게 변환할 수 있습니다. 개발자는 HTML 텍스트를 입력으로 사용하여 서식, 이미지 및 스타일이 포함된 시각적으로 풍부한 PDF 문서를 생성할 수 있습니다.
URL을 PDF로 변환
개발자는 IronPDF 사용하여 URL에서 직접 PDF 문서를 생성할 수 있습니다. 이 기능을 활용하는 훌륭한 사례 중 하나는 웹 페이지의 콘텐츠나 웹 앱에서 동적으로 생성된 콘텐츠를 캡처하는 것입니다.
이미지를 PDF로 변환
IronPDF 사용하면 PNG, JPEG 및 BMP 형식의 이미지를 PDF 문서로 변환할 수 있습니다. 이 기능은 앱 개발자가 사진을 PDF 문서로 만들 수 있도록 해주며, 사진 앨범 제작이나 사진을 PDF 파일에 삽입하는 등의 앱에 유용합니다.
IronPDF 설치 방법
컴퓨터에 Python이 설치되어 있는지 확인한 후 pip으로 IronPDF를 설치하세요.
pip install ironpdf
OpenTelemetry를 사용하여 IronPDF 로 PDF 문서 생성하기
IronPDF 사용하여 PDF 문서를 생성 하려면 OpenTelemetry 초기화 코드 아래에 다음 코드를 추가하십시오.
from ironpdf import ChromePdfRenderer
from opentelemetry import trace
# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
iron_pdf = ChromePdfRenderer()
html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
pdf_content = iron_pdf.render_html_as_pdf(html_content)
# Save or send the PDF content as needed
with open("output.pdf", "wb") as file:
file.write(pdf_content)from ironpdf import ChromePdfRenderer
from opentelemetry import trace
# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
iron_pdf = ChromePdfRenderer()
html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
pdf_content = iron_pdf.render_html_as_pdf(html_content)
# Save or send the PDF content as needed
with open("output.pdf", "wb") as file:
file.write(pdf_content)이 코드 구절에서:
- OpenTelemetry 추적기를 활용하여
pdf_generation라는 새로운 스팬을 시작합니다. - 이 기간 동안 HTML 자료를 PDF 문서로 변환하기 위해 IronPDF 사용합니다.
output.pdf라는 이름의 파일은 생성된 PDF 자료를 포함합니다.

결론
마지막으로, OpenTelemetry Python과 IronPDF 의 연동을 통해 Python 애플리케이션에서 관찰 가능성과 문서 생성 기능을 결합할 수 있습니다. 개발자는 분산 추적 및 메트릭 수집을 동적 PDF 생성과 통합함으로써 시스템 성능에 대한 더 나은 통찰력을 얻으면서 전문가 수준의 문서를 손쉽게 즉시 생성할 수 있습니다.
OpenTelemetry Python과 IronPDF 의 협력은 개발자들이 안정적이고 확장 가능하며 성능이 뛰어난 애플리케이션을 구축할 수 있도록 지원하는 강력한 도구로 부상하고 있으며, 이는 기업들이 소프트웨어 솔루션에서 효율성과 우수성을 추구하는 데 도움이 될 것입니다.
IronPDF 에는 평생 라이선스가 포함되어 있으며, 패키지로 구매할 경우 가격이 상당히 합리적입니다. 번들은 여러 시스템에 대해 한 번만 구매하면 되는 $799로 매우 좋은 거래입니다. 라이선스 소지자는 연중무휴 24시간 온라인 엔지니어링 지원을 받을 수 있습니다. 요금에 대한 자세한 내용은 웹사이트를 참조하십시오. Iron Software 에서 판매하는 제품에 대한 자세한 내용을 알아보려면 이 페이지를 방문하세요.










