PYTHON 幫助

Opentelemetry Python(開發人員的工作原理)

發佈 2024年7月1日
分享:

有效的文件生成和可觀察性是在當代軟體開發中開發可擴展且有韌性的系統的基本基礎。開發人員可以使用 OpenTelemetry,一個開源可觀察平台,來檢測、收集和分析來自分散式系統的可觀察數據。

開發人員可以輕鬆地使用 IronPDF,一個強大的 .NET 框架,來創建、修改和輸出 PDF 文件。本文將討論 OpenTelemetry Python 與 IronPDF 的整合,展示這兩種技術如何協同工作以改善可觀察性和文件生成能力。

開發人員可以使用 OpenTelemetry API 和 SDK 套件(即 OpenTelemetry 與 Python 的專案實現)來訪問廣泛的功能集,用於檢測、收集和導出來自分散式系統的開放式遙測數據。

OpenTelemetry Python(對開發人員的運作方式):圖1 - OpenTelemetry首頁

OpenTelemetry 功能

讓我們來檢視 開放遙測 Python 的儀器特色:

分佈式追蹤

  • 分佈式追蹤,讓開發人員可以跟蹤請求在分散系統中的路徑,是通過 OpenTelemetry for Python 實現的。
  • 追蹤提供了對請求序列的洞察,包括服務接觸的日期和時間。

  • 開發人員可以對 Python 程式進行儀器化,以記錄跨度,這些跨度是分佈式追蹤中的離散動作或部分。

指標收集

  • OpenTelemetry Python 促進指標導入 MeterProvider,收集有關系統行為和性能的數據。
  • 開發者可以對應用程序進行檢測,以收集如延遲、吞吐量、錯誤率和資源使用情況等測量數據。

  • 通過提供使用模式、性能趨勢和系統健康狀況的洞察。

上下文傳播

  • 上下文傳播由 OpenTelemetry API 套件變得更簡單,該套件確保分佈式上下文(例如追蹤和跨度上下文)在服務邊界之間傳播。
  • 由於上下文傳播,遙測數據在系統中移動時可以相關並進行上下文化,從而保持數據的連續性和一致性。

儀器庫

  • OpenTelemetry Python 通過為廣泛使用的框架、庫和協議提供儀器包,使現有 Python 應用程式的儀器化變得簡單。
  • Web 框架的整合 (如 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

之後,請使用以下命令安裝 OpenTelemetry Python SDK pip install opentelemetry-sdk

pip install opentelemetry-sdk
PYTHON

opentelemetry-api pip 套件提供了全面的儀器API,並且還提供自動儀器,使儀器化您的應用程式變得更容易。另一種做法是使用導入導出 BatchSpanProcessor 方法,以確保高效的遙測數據導出。

要定義 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 Exporter被設置為向本地主機的Jaeger代理導出追踪。
  • 使用Jaeger Exporter,我們構建了一個 TracerProvider,並將其配置為全局追踪提供者。

  • 對於我們的Python程序,我們提供了服務名稱。

在您的應用程式中初始化 OpenTelemetry

otel_config 模組匯入您的 Python 程式中,然後使用以下範例 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 用戶介面中檢視追踪

要查看和檢查記錄的追踪,請轉至 Jaeger 用戶介面。要查看 OpenTelemetry 收集器記錄的追踪,請在網頁瀏覽器中打開 Jaeger 用戶介面。 (通常在 http://localhost:16686) 並選擇您的服務名稱。

您已成功按照這些說明在您的應用程式中建立並配置了 OpenTelemetry Python。現在,您可以使用 OpenTelemetry 記錄跟踪並將它們匯出到 Jaeger 後端,以查看您的 Python 程序的行為和性能。

入門 IronPDF

什麼是 IronPDF?

使用來自 Iron Software 的強大 .NET 庫 IronPDF,開發人員可以在 .NET 應用程序中創建、編輯和展示 PDF 文件。開發人員可以使用 IronPDF 以程式化方式從多種來源創建 PDF 文件,如現有的 PDF 文件、HTML 文本、URL 和圖像。讓我們仔細看看 IronPDF 的功能:

OpenTelemetry Python(如何為開發者運作):圖 2 - IronPDF 首頁

將HTML轉換為PDF

開發者可以輕鬆地使用IronPDF將HTML內容轉換成PDF文件。通過使用HTML文本作為輸入,開發者可以生成帶有格式、圖片和樣式的視覺上豐富的PDF文檔。

将 URL 转换为 PDF

開發者可以使用 IronPDF 直接從 URL 生成 PDF 文件。這項功能的一個絕佳應用是捕捉網頁上的內容或動態創建的 web 應用程式內容。

將圖片轉換為 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 的新 span。
  • 在此期間,我們使用 IronPDF 將 HTML 資料轉換成 PDF 檔案。

  • 產生的 PDF 資料包含在名為 output.pdf 的檔案中。

OpenTelemetry Python(其對開發者的運作方式):圖3 - 由上面的代碼生成的範例輸出

結論

最後,Python 應用程式中可觀察性與文件生成能力的結合是由 OpenTelemetry Python 和 IronPDF 連接所提供的。開發人員可以通過集成分佈式跟蹤和指標收集與動態 PDF 生成來輕鬆地即時創建專業外觀的文件,同時獲得更好的系統性能洞察。

OpenTelemetry Python 和 IronPDF 之間的合作被視為一個強大的助推器,使開發人員能夠創建可靠、可擴展且高性能的應用程式,在企業追求效率和卓越的軟件解決方案時尤為有利。

IronPDF 包含一個終身許可證,捆綁購買時價格合理。捆綁套裝僅售 749 美元,且只需一次購買即可在多個系統上使用。許可證持有人可隨時獲得在線工程幫助。請訪問網站了解更多費用資訊。參觀此頁面以了解更多有關 Iron Software 銷售的產品。

< 上一頁
Matplotlib Python(給開發人員如何使用)
下一個 >
Tenacity Python(對開發者的運作方式)

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 pip 安裝 查看許可證 >