PYTHON 幫助

在 Python 應用程式中的 OpenTelemetry

發佈 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 匯出器設置為將跟蹤資料匯出到本地主機的 Jaeger 代理。
  • 使用 Jaeger 導出器,我們構建了一個 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 UI 中查看追蹤

要查看和檢查記錄的追蹤,請前往 Jaeger 使用者介面。 要查看 OpenTelemetry 收集器記錄的追蹤,請在您的網絡瀏覽器中打開 Jaeger UI。(通常在 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 文件。

將網址轉換成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 的新 span。
  • 我們使用IronPDF在此期間將HTML材料轉換為PDF文件。
  • 一個名為 output.pdf 的檔案包含生成的 PDF 資料。

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

結論

最後,透過OpenTelemetry Python和IronPDF的連接,為Python應用程式提供了可觀察性和文件生成功能的結合。 開發人員可以輕鬆地即時創建專業外觀的文檔,同時通過將分散追蹤和度量收集與動態 PDF 生成整合,獲得更好的系統性能洞察。

OpenTelemetry Python 和 IronPDF 之間的合作成為強大的推動力,使開發者能夠創建可靠、可擴展且高效的應用程式,隨著企業在其軟體解決方案中追求效率和卓越。

IronPDF 包含永久許可證,當以套裝形式購買時,價格相當合理。 這個套裝組合只需 $749,是個超值的交易,只需購買一次即可在多個系統上使用。 持有許可證的用戶可全天候獲得線上工程幫助。請訪問網站以了解更多關於收費的信息。 請訪問此頁面以了解有關Iron Software銷售產品的更多信息。

< 上一頁
Matplotlib Python 初學者指南
下一個 >
在 Python 中使用 Tenacity 重试功能

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

免費 pip 安裝 查看許可證 >