PYTHON帮助

Python 应用程序中的 OpenTelemetry

发布 2024年七月1日
分享:

在当代软件开发中,有效的文档生成和可观察性是开发可扩展和弹性系统的重要基础。 开发人员可以使用开源可观测性平台 OpenTelemetry 对分布式系统中的可观测数据进行测量、收集和分析。

开发人员可以使用 IronPDF for .NET 这个强大的 .NET Framework 轻松创建、修改和输出 PDF 文档。 本文将讨论 OpenTelemetry Python 与 IronPDF 的集成,展示这两种技术如何共同提高可观察性和文档生成潜力。

开发人员可以使用 OpenTelemetry API 和 SDK 包(OpenTelemetry 项目在 Python 中的实现)访问广泛的功能集,以便从分布式系统中检测、收集和导出开放式遥测和数据。

OpenTelemetry Python(如何为开发人员工作):图 1 - OpenTelemetry 主页

OpenTelemetry 功能

我们来看看OpenTelemetry针对 Python 突出特点的工具:

分布式跟踪

  • OpenTelemetry for Python 使分布式跟踪成为可能,开发人员可以通过分布式系统跟踪请求的路径。
  • 跟踪可提供对请求顺序的深入了解,包括服务联系的日期和时间。
  • 开发人员可以利用 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-jaeger
PYTHON

然后,使用以下命令 "pip install opentelemetry-sdk "安装 OpenTelemetry Python SDK。

pip install opentelemetry-sdk
PYTHON

opentelemetry-apipip 包提供了全面的仪器 API,还提供了自动仪器,使您更容易对应用程序进行仪器分析。 另一种方法是使用导出-导入BatchSpanProcessor` 方法,以确保高效地导出遥测数据。

要定义 OpenTelemetry SDK 参数,请创建一个配置文件。配置文件 otel_config.py 就是一个例子。 确保您的所有导入(如 resources import Resourcetrace 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)
PYTHON

在该配置文件中

  • 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__)
PYTHON

这样,在 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
    pass
PYTHON

在 Jaeger 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 的功能:

OpenTelemetry Python(如何为开发人员工作):图 2 - IronPDF 主页

将HTML转换为PDF

开发人员可以使用 IronPDF 轻松地将 HTML 内容转换为 PDF 文件。 通过使用 HTML 文本作为输入,开发人员可以生成具有格式、图像和样式的视觉丰富的 PDF 文档。

将网址转换为PDF

开发人员可以通过 IronPDF 直接从 URL 生成 PDF 文档。 该功能的一个出色应用是从网页或网络应用程序动态创建的内容中捕获内容。

将图像转换为 PDF

使用 IronPDF,可以将 PNG、JPEG 和 BMP 格式的图像转换为 PDF 文档。 该功能可让应用程序开发人员通过照片创建 PDF 文档,这对于制作相册或将照片合并到 PDF 文件等应用程序非常有用。

如何安装 IronPDF

确保计算机上安装了 Python 后,使用 pip 安装 IronPDF。

pip install ironpdf
PYTHON

使用 OpenTelemetry 与 IronPDF 一起生成 PDF 文档

在 OpenTelemetry 的初始化下面添加以下代码,使用 IronPDF 来创建 PDF文件

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)
PYTHON

在这段代码中

  • 利用 OpenTelemetry 跟踪器,我们开始了一个名为 "pdf_generation "的新跨度。
  • 在此期间,我们使用 IronPdf 将 HTML 资料转化为 PDF 文档。
  • 名为 output.pdf 的文件包含生成的 PDF 资料。

    OpenTelemetry Python(如何为开发人员工作):图 3 - 上述代码生成的输出示例

结论

最后,OpenTelemetry Python 和 IronPDF 的连接提供了 Python 应用程序中可观察性和文档生成功能的结合。 开发人员可以轻松地即时创建外观专业的文档,同时通过将分布式跟踪和指标收集与动态 PDF 生成集成在一起,更好地了解系统性能。

OpenTelemetry Python 和 IronPDF 之间的合作是一种强有力的推动力,使开发人员能够创建可靠、可扩展和高性能的应用程序,而企业则努力提高其软件解决方案的效率和卓越性。

IronPdf 附带终身许可,捆绑购买时价格公道。 该捆绑包的价格仅为 749 美元,而且只需购买一次即可用于多个系统,非常划算。 许可证持有人可全天候获得在线工程帮助。请访问网站了解收费详情。 访问本页面,了解 Iron Software 销售产品的更多信息。

< 前一页
Matplotlib Python 入门指南
下一步 >
用 Python 中的顽强重试函数

准备开始了吗? 版本: 2024.11.1 刚刚发布

免费 pip 安装 查看许可证 >