الترحيل من OpenCensus Python SDK ومصدر Azure Monitor OpenCensus ل Python إلى Azure Monitor OpenTelemetry Python Distro

إشعار

تم إهمال OpenCensus Python SDK، ولكن Microsoft تدعمه حتى الإيقاف في 30 سبتمبر 2024. نوصي الآن بعرض Python المستند إلى OpenTelemetry وتقديم إرشادات الترحيل.

اتبع هذه الخطوات لترحيل تطبيقات Python إلى Azure MonitorApplication InsightsOpenTelemetry Distro.

تحذير

الخطوة 1: إلغاء تثبيت مكتبات OpenCensus

قم بإلغاء تثبيت جميع المكتبات المتعلقة ب OpenCensus، بما في ذلك جميع حزم Pypi التي تبدأ ب opencensus-*.

pip freeze | grep opencensus | xargs pip uninstall -y

الخطوة 2: إزالة OpenCensus من التعليمات البرمجية الخاصة بك

قم بإزالة جميع مثيلات OpenCensus SDK ومصدر Azure Monitor OpenCensus من التعليمات البرمجية الخاصة بك.

تحقق من بيانات الاستيراد بدءا opencensus من للعثور على جميع عمليات التكامل والمصدرين ومثيلات OpenCensus API/SDK التي يجب إزالتها.

فيما يلي أمثلة لعبارات الاستيراد التي يجب إزالتها.

from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation as aggregation_module
from opencensus.stats import measure as measure_module

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

from opencensus.ext.azure.log_exporter import AzureLogHandler

الخطوة 3: تعرف على واجهات برمجة التطبيقات/SDKs ل OpenTelemetry Python

توفر الوثائق التالية معرفة مسبقة بواجهات برمجة تطبيقات/SDKs ل OpenTelemetry Python.

إشعار

يحتوي OpenTelemetry Python وOpenCensus Python على أسطح واجهة برمجة تطبيقات مختلفة وإمكانيات تجميع تلقائي وتعليمات الإلحاق.

الخطوة 4: إعداد Azure Monitor OpenTelemetry Distro

اتبع صفحة البدء للإلحاق ب Azure Monitor OpenTelemetry Distro.

التغييرات والقيود

قد تتم مصادفة التغييرات والقيود التالية عند الترحيل من OpenCensus إلى OpenTelemetry.

دعم Python < 3.7

تدعم حلول المراقبة المستندة إلى Python في OpenTelemetry فقط Python 3.7 والإصدارات الأحدث، باستثناء إصدارات Python المدعومة سابقا 2.7 و3.4 و3.5 و3.6 من OpenCensus. نقترح الترقية للمستخدمين الذين يستخدمون الإصدارات القديمة من Python منذ أن وصلت هذه الإصدارات بالفعل إلى نهاية العمر الافتراضي حتى كتابة هذا المستند. قد يستمر المستخدمون الذين يصرون على عدم الترقية في استخدام حلول OpenTelemetry، ولكن قد يجدون سلوكا غير متوقع أو غير معتمد. على أي حال، آخر إصدار مدعوم من opencensus-ext-azure موجود دائما، ولا يزال يعمل لتلك الإصدارات، ولكن لا يتم إجراء إصدارات جديدة لهذا المشروع.

تكوينات

قدم OpenCensus Python بعض خيارات التكوين المتعلقة بجمع وتصدير بيانات تتبع الاستخدام. يمكنك تحقيق نفس التكوينات، وأكثر من ذلك، باستخدام واجهات برمجة تطبيقات OpenTelemetry Python وSDK. يعد OpenTelemetry Azure monitor Python Distro أكثر من متجر واحد لاحتياجات المراقبة الأكثر شيوعا لتطبيقات Python الخاصة بك. نظرا لأن Distro يغلف واجهات برمجة تطبيقات/SDk للقياس المفتوح، فقد لا يتم حاليا دعم بعض التكوين لحالات الاستخدام غير الشائعة ل Distro. بدلا من ذلك، يمكنك اختيار الإعداد على مصدر OpenTelemetry لمراقبة Azure، والذي، مع واجهات برمجة التطبيقات/SDKs الخاصة ب OpenTelemetry، يجب أن يكون قادرا على احتواء احتياجات المراقبة الخاصة بك. تتضمن بعض هذه التكوينات ما يلي:

  • نشرات مخصصة
  • عينات مخصصة
  • إضافة نطاق إضافي/معالجات السجل/قارئات المقاييس

التماسك مع وظائف Azure

من أجل توفير قدرات تتبع موزعة لتطبيقات Python التي تستدعي تطبيقات Python الأخرى داخل دالة Azure، تم توفير الحزمة opencensus-extension-azure-functions للسماح برسم بياني موزع متصل.

حاليا، لا تدعم حلول OpenTelemetry ل Azure Monitor هذا السيناريو. كحل بديل، يمكنك نشر سياق التتبع يدويا في تطبيق وظائف Azure كما هو موضح في المثال التالي.

from opentelemetry.context import attach, detach
from opentelemetry.trace.propagation.tracecontext import \
  TraceContextTextMapPropagator

# Context parameter is provided for the body of the function
def main(req, context):
  functions_current_context = {
    "traceparent": context.trace_context.Traceparent,
    "tracestate": context.trace_context.Tracestate
  }
  parent_context = TraceContextTextMapPropagator().extract(
      carrier=functions_current_context
  )
  token = attach(parent_context)

  ...
  # Function logic
  ...
  detach(token)

الملحقات والمصدرون

عرضت OpenCensus SDK طرقا لجمع وتصدير بيانات تتبع الاستخدام من خلال عمليات تكامل OpenCensus والمصدرين على التوالي. في OpenTelemetry، يشار إلى عمليات التكامل الآن باسم الأجهزة، في حين ظل المصدرون بنفس المصطلحات. تعد أجهزة OpenTelemetry Python والمصدرون مجموعة فائقة مما تم توفيره في OpenCensus، لذلك من حيث تغطية المكتبة ووظائفها، تعد مكتبات OpenTelemetry ترقية مباشرة. أما بالنسبة إلى Azure Monitor OpenTelemetry Distro، فإنه يأتي مع بعض أجهزة OpenTelemetry Python الشائعة خارج الصندوق حتى لا تكون هناك تعليمات برمجية إضافية ضرورية. تدعم Microsoft هذه الأجهزة بشكل كامل.

أما بالنسبة لأدوات OpenTelemetry Python الأخرى غير المضمنة في هذه القائمة، فقد لا يزال بإمكان المستخدمين الأدوات يدويا معهم. ومع ذلك، من المهم ملاحظة أن الاستقرار والسلوك غير مضمونين أو مدعومين في هذه الحالات. لذلك، استخدمها وفقا لتقديرك الخاص.

إذا كنت ترغب في اقتراح مكتبة أدوات مجتمعية إلينا لتضمين فكرة في توزيعتنا أو نشرها أو التصويت عليها في مجتمع الملاحظات لدينا. بالنسبة للمصدرين، تأتي توزيعة القياس المفتوح ل Azure Monitor مجمعة مع مصدر بيانات تتبع الاستخدام المفتوح ل Azure Monitor. إذا كنت ترغب في استخدام مصدرين آخرين أيضا، يمكنك استخدامها مع توزيعة، كما هو الحال في هذا المثال.

معالجات التتبع

تعد معالجات بيانات تتبع الاستخدام OpenCensus Python آلية قوية تسمح للمستخدمين بتعديل بيانات تتبع الاستخدام الخاصة بهم قبل إرسالها إلى المصدر. لا يوجد مفهوم لمعالجات القياس عن بعد في عالم OpenTelemetry، ولكن هناك واجهات برمجة التطبيقات والفئات التي يمكنك استخدامها لنسخ نفس السلوك.

تعيين اسم دور السحابة ومثيل دور السحابة

اتبع الإرشادات هنا لكيفية تعيين اسم دور السحابة ومثيل دور السحابة لبيانات تتبع الاستخدام الخاصة بك. يقوم OpenTelemetry Azure Monitor Distro تلقائيا بإحضار القيم من متغيرات البيئة وتعبئة الحقول المعنية.

تعديل الامتدادات باستخدام SpanProcessors

قريبًا.

تعديل المقاييس باستخدام طرق العرض

قريبًا.

عدادات الأداء

يقوم مصدر OpenCensus Python Azure Monitor تلقائيا بجمع النظام والمقاييس المتعلقة بالأداء تسمى عدادات الأداء. تظهر هذه المقاييس في performanceCounters مثيل Application Insights. في OpenTelemetry، لم نعد نرسل هذه المقاييس بشكل صريح إلى performanceCounters. يمكن العثور على المقاييس المتعلقة بالطلبات الواردة/الصادرة ضمن المقاييس القياسية. إذا كنت ترغب في OpenTelemetry في مقاييس النظام ذات الصلة بالترميز التلقائي، يمكنك استخدام أدوات مقاييس النظام التجريبية، التي يساهم بها مجتمع OpenTelemetry Python. هذه الحزمة تجريبية ولا تدعمها Microsoft رسميا.

استكشاف الأخطاء وإصلاحها

ألا تعمل؟ تحقق من صفحة استكشاف الأخطاء وإصلاحها ل ASP.NET Core.

يدعم

حدد علامة تبويب للغة التي تختارها لاكتشاف خيارات الدعم.

  • بالنسبة إلى مشكلات دعم Azure، افتح تذكرة دعم Azure.
  • بالنسبة إلى مشكلات القياس عن بُعد المفتوح، اتصل بمجتمع القياس عن بُعد المفتوح مباشرة.
  • للحصول على قائمة بالمشكلات المفتوحة المتعلقة بمصدر Azure Monitor، راجع صفحة مشكلات GitHub.

ردود فعل القياس عن بُعد المفتوح

لتقديم التعليقات: