PYTHON帮助

Opentelemetry Python(开发人员如何使用)

发布 2024年七月1日
分享:

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

开发人员可以使用强大的 .NET 框架 IronPDF 轻松创建、修改和输出 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,它还提供自动仪表化功能,使您更容易对应用程序进行仪表化。另一种方法是使用 export-importBatchSpanProcessor` 方法,以确保高效地导出遥测数据。

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

Instrument Your Application

使用 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 用户界面 (通常在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 文档。

将 URL 转换为 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 文档 创建 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(开发人员如何使用)
下一步 >
Tenacity Python(开发者如何使用)

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

免费 pip 安装 查看许可证 >