مراقبة .NET Core

مكتبات وأطر المدعمة للتتبع

يقوم Incasانه بدعم مراقبة التطبيقات الجاري تشغيلها على .NET Core Framework بدءا من النسخة 2.0.

وحدة خدمة HTTP النسخة
ASP.NET Core >= 2, >= 3
ServiceStack >= 5.0
HTTP-الوحدة التابعة النسخة
HttpClient >= 2, >= 3
طلب HttpWebRequest >= 2, >= 3
قواعد البيانات النسخة
مشغلات ADO
إيروسبايك 3.9.4, 3.8.0
كاسندرا 3.4.0
Couchbase 3.1.7
Elasticsearch >=7.0.0
Redis رصة الخدمة >= 5.0
Redis رصة التبادل 1.2.6 >= 2.0
PostgreSQL (NpgSql) >= 2
Azure Cosmos Client 3.1.1, 3.3.1, 3.4.1, 3.5.0, 3.5.1, 3.6.0
وثيقة Azure DocumentDB الأساسية 2.5.1, 2.9.0
MongoDB 2.4.4, 2.8.1
تخزين جوجل كلاود >=3.2.0
AWSSDK.DynamoDBv2 >=3.7.0
IBM DB2 >= 1.0.0.100
WS S3 >=3.7.0
Memcached >=2.16.0
برنامج الرسائل النسخة
تخزين Quure Queue Storage 12.8.0
RabbitMQ 5.0.1
gRPC >= 2.0
Google Cloud Pubb 2.1.0
Confluent Kafka >=1.5.0
SQSQK.SQSK >=3.7.0
AWSSDK.SimpleNotificationService >=3.7.0
تسجيل النسخة
حلول قائمة على Ilogger-حلول 2.0, 2.2, >= 3.0
elog >= 4
سيراج >=2.8.0
الشركة النسخة
إطار الكيان >= 2, >= 3
برامج الجدولة / المهمة-ادارة النسخة
شنقان 1.7.19

Sensor Data Collection (متاح حاليا على Windows)

توصيف متتبع القياسات
الاسم مهمة GC
النسخة استخدام الذاكرة
المتغيرات أقفال سلسلة العمليات
الاحتواء
الاستثناءات

توقيعات الصحة

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

الأحداث المتضمنة اصدار أو اصدار أحداث بناءا على فشل التوقيعات الصحية على أشكال الكيان ، و أحداث عادية يقوم باصدار مشاكل أو أحداث بناءا على الحدود الخاصة بأحد المقاييس المترية المتفردة لأي كيان محدد.

للحصول على معلومات عن الأحداث الضمنية لوحدة استشعار .NET Core ، ارجع الى مرجع أحداث Built-in.

تتبع

تقوم هذه الصفحة بشرح كيفية اعداد تتبع .NET الأساسي لبيئة التشغيل الخاصة بك وكيفية عملها.

Getting Metrics for .NET Core apps على Linux

يقوم Inpass بدعم الحصول على المقاييس المترية لتطبيقات .NET Core ps التي يتم تشغيلها على Linux، ولكن هذا يتطلب بعض المواصفات. ويتعين على وجه التحديد نشر التطبيق معInstana.Tracing.Coreحزمة معلومات-nget-package ، بدءا من النسخة 1.1.34.

تعد هذه هي نفس مجموعة البرامج التي يمكنك استخدامها في التتبع (أنظر أسفل).

بعد أن تقوم باضافة الحزمة ونشر التطبيق الخاص بك ، يمكنك تحديد محددات-بيئة التشغيل التالية للسماح لتطبيق المقاييس المترية بأن يقوم بتشغيل المقاييس المترية.

DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll

الآن أنت كل المجموعة وتطبيقك يجب أن تقرير المقاييس. عند تركيبها بنجاح ، ستشاهد مخرجات اضافية في التطبيق الخاص بالتطبيق الخاص بك :

INSTANA Agent for .NET Core applications installed. Running on 3.1.1

تختلف مجموعة حروف النسخة وفقا لنسخة .NET الأساسية الجاري تشغيلها.

كيفية تشغيل التتبع

قبل أن يتم بفعالية تجهيز وتتبع أي تطبيق بواسطة اللاحقة ، يجب أن تقوم باتاحة محددات البيئة التي يحتاجها .NET Core لتحميل مكون ملف المواصفات. اذا تم اتاحة وحدة الاستشعار والتتبع للنظام الرئيسي الخاص بك ، فان كل ما يجب عليك القيام به هو اضافة مجموعة برامج التعري للتطبيق الخاص بك وتتبع التطبيق الخاص بك واعداد محددات بيئة التشغيل المناسبة.

يقوم Incasانة بدعم تطبيقات .NET Core غير والتي تتضمن نفسها ذاتيا ، وذلك على الرغم من أن هذا الأخير يتطلبInstana.Tracing.Coreحزمة -get-package ، النسخة 1.1.34 أو أعلى ، ومتغير بيئة التشغيل التالي الذي سيتم تحديده :

DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll

للحصول على التطبيقات التي تعمل في Kubertenes

يعد AutoTrace AutoTrace WebHok عبارة عن تطبيق ل ـ Kubernetes Muating WebHok Admission Controller الذي يقوم بتحديد كل ما هو مطلوب لمراقبة تطبيقات .NET Core مع Intelera ، عبر نظام مجموعة Kbbertenes بالكامل.

اذا قمت باختيار تركيب Insten AutoTrace WebHok على مجموعات Kubernes الخاصة بك ، فلن يكون من الضروري تنفيذ أي خطوة يدوية لتتبع أي من تطبيقات .NET Core الخاصة بك التي يتم تشغيلها في هذه المجموعات.

اذا تم ادارة تطبيق .NET Core الخاص بك وتم ادارة Inttana Agent بواسطة Kubernetes ، برجاء التحقق من المطبوعات الفنية الموجودة في الوصول إلى شبكة (Kubernies) للحصول على معلومات عن المواصفات المطلوبة في هذا الاعداد.

للحصول على التطبيقات التي يتم تشغيلها على Linux (فيما عدا جبال الألب)

تركيب مجموعة البرامج Instana.Tracing.Core.rewriter.Linux. يمكنك اما اضافته الى المشروع الخاص بك أو اضافته مباشرة قبل النشر. عادة نقترح إضافته قبل النشر حتى لا يكون على المطورين التعامل مع الحزمة على الإطلاق

يجب أن تقوم بعد ذلك باتاحة محددات بيئة التشغيل هذه للعملية الخاصة بك قبل البدء فيها :

DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
CORECLR_PROFILER_PATH=[Path_to_your_app]/instana_tracing/CoreProfiler.so

بالاضافة الى ذلك ، اذا كان التطبيق الخاص بك يتم تشغيله داخل حاوية ، يجب أن تقوم بتحديد بيئة التشغيل التي تقوم باخبار العملية الخاصة بك كيف يمكنها الاتصال ب ـ Intas-Agent في وقت التشغيل :

INSTANA_AGENT_HOST=[address_where_the_agents_listens_and_is_reachable_from_inside_the_container]
INSTANA_AGENT_PORT=42699 (or any other port of configured differently)

للحصول على التطبيقات التي يتم تشغيلها على جبال الألب Linux

تركيب مجموعة البرامج Instana.Tracing.Core.Rewriter.Allepine. يمكنك اما اضافته الى المشروع الخاص بك أو اضافته مباشرة قبل النشر. عادة نقترح إضافته قبل النشر حتى لا يكون على المطورين التعامل مع الحزمة على الإطلاق

يجب أن تقوم بعد ذلك باتاحة محددات بيئة التشغيل هذه للعملية الخاصة بك قبل البدء فيها :

DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
CORECLR_PROFILER_PATH=[Path_to_your_app]/instana_tracing/CoreProfiler.so

بالاضافة الى ذلك ، اذا كان التطبيق الخاص بك يتم تشغيله داخل حاوية ، يجب أن تقوم بتحديد بيئة التشغيل التي تقوم باخبار العملية الخاصة بك كيف يمكنها الاتصال ب ـ Intas-Agent في وقت التشغيل :

INSTANA_AGENT_HOST=[address_where_the_agents_listens_and_is_reachable_from_inside_the_container]
INSTANA_AGENT_PORT=42699 (or any other port of configured differently)

للحصول على التطبيقات الجاري تشغيلها على Windows

تركيب مجموعة البرامج Instana.Tracing.Core.Rewriter.Windows. يمكنك اما اضافته الى المشروع الخاص بك أو اضافته مباشرة قبل النشر. عادة نقترح إضافته قبل النشر حتى لا يكون على المطورين التعامل مع الحزمة على الإطلاق

يجب أن تقوم بعد ذلك باتاحة محددات بيئة التشغيل هذه للعملية الخاصة بك قبل البدء فيها :

CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={FA8F1DFF-0B62-4F84-887F-ECAC69A65DD3}
CORECLR_PROFILER_PATH_64=[Path_to_your_app]/instana_tracing/CoreRewriter_x64.dll
CORECLR_PROFILER_PATH_32=[Path_to_your_app]/instana_tracing/CoreRewriter_x86.dll

عندما يتم استضافة التطبيق بواسطة آيس، فان أفضل الممارسات هي تحديد متغيرات بيئة التشغيل فيweb.configملف التطبيق بالطريقة التالية :

<aspNetCore ...>
  <environmentVariables>
    <environmentVariable name="CORECLR_ENABLE_PROFILING" value="1" />
    <environmentVariable name="CORECLR_PROFILER" value="{FA8F1DFF-0B62-4F84-887F-ECAC69A65DD3}" />
    <environmentVariable name="CORECLR_PROFILER_PATH_64" value="[Path_to_your_app]/instana_tracing/CoreRewriter_x64.dll" />
    <environmentVariable name="CORECLR_PROFILER_PATH_32" value="[Path_to_your_app]/instana_tracing/CoreRewriter_x32.dll" />
    <environmentVariable name="DOTNET_STARTUP_HOOKS" value="[Path_to_your_app]/Instana.Tracing.Core.dll" />
  </environmentVariables>
</aspNetCore>

للحصول على التطبيقات التي يتم تشغيلها على Cloud Fundry

ملحوظة: يفترض هذا القسم أنه يتم تشغيل Inttary Agent حاليا على خلايا Diago الخاصة بمؤسسة Cloud Fundry الأساسية. للحصول على مزيد من المعلومات عن اعداد Inttana Agents والخاصية Cloud Fundry أو الوظيفة Pvotal Platform ، ارجع الى مطبوعات منصة صاخب ومنصة بيفوتال الفنية الخاصة بنا.

على Cloud Fundry ، لمراقبة تطبيقات غير متضمن ذاتيا .NET Core ، اتبع هذه الخطوات :

للحصول على مزيد من المعلومات عن كيفية استخدامcf pushمع الأمر مع ملف التعريف ، ارجع الى وثائق نشر مع تطبيق App .

تتبع في الحاويات

اذا قمت باختيار تشغيل التطبيقات والخدمات الخاصة بك داخل الحاويات ، سيكون من الضروري أن تقوم باتاحة محددات بيئة التشغيل بأعلى كما تم مناقشتها. ولكن هناك المزيد من العمل الذي يتعين القيام به من أجل القيام بأعمال التعقب.

I-rewriter and Instrumentation libraries لحاويات Linux

يجب أن تقوم باضافة حزمة-pack-package كما هو موضح بأعلى ، للتأكد من أنك تقوم باضافة محددات-بيئة التشغيل الخاصة بالوصلة الى agent.

اعداد الحاوية الخاصة بك للتتبع الآلي

فيما يلي مثال لملف docker-file الذي يقوم بعرض هذه الخطوات :

### your docker-image and application-build/-publish here

# set CoreCLR tracing environment variables
ENV DOTNET_STARTUP_HOOKS=/app/Instana.Tracing.Core.dll
ENV CORECLR_ENABLE_PROFILING=1
ENV CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
ENV CORECLR_PROFILER_PATH=/app/instana_tracing/CoreProfiler.so

# provide agent-endpoint
ENV INSTANA_AGENT_HOST=host_or_other_container_name_or_ip
ENV INSTANA_AGENT_PORT=42699
ENTRYPOINT ["dotnet", "YourApp.dll","some","parameters"]

عدم اتاحة التتبع الى .NET Core

عندما تريد ايقاف تتبع تطبيقات .NET لأي سبب من الأسباب ، يمكنك ببساطة القيام بذلك عن طريق تغيير ملف المواصفات مرة أخرى الى الحالة المبدئية الخاصة به ، أو من خلال مجرد تحديد الشارة المقابلة الى "false".

configuration.yaml مع .NET-Tracing غير متاح

# CLR Tracing
com.instana.plugin.clr:
  tracing:
    enabled: false

بعد تغيير توصيف للخلف ، سيكون من الضروري اعادة بدء Agent لكي تصبح التغييرات فعالة.

بسبب طبيعة كيفية عمل Profiling API ، فان عدم اتاحة التتبع في Agent لن يقوم بازالة / فصل profiler من العمليات التي تم بدءها مع اتاحة التتبع (على سبيل المثال ، عمليات العامل الخاصة بك). للتأكد من أنه لم يتم تحميل profiler في التطبيق ، يجب أن تقوم باعادة بدء عملية النظام الرئيسي.

تتبع الأخطاء

قد تكون هناك حالات لا يعمل فيها الاعداد الخاص بك في البداية. اذا كان قسم تصحيح الأخطاء هذا لا يجيب على الأسئلة التي لديك ، اتصل بفريق الدعم الخاص بنا وقمنا بمعرفة ذلك ، بحيث يمكننا مساعدتك وتعديل الوثائق الخاصة بنا وفقا لذلك.

لم يتم تعريف متغير بيئة تشغيل

نوع اصدار المراقبة : netcore_env_var_not_defined

لم يتم تحديد متغير بيئة واحد أو أكثر ، والذي يعد ضروريا لتشغيل عملية تتبع Inctana .NET Core ، على عملية .NET Core. برجاء الرجوع الى قسم كيفية تشغيل التتبع للحصول على كشف بمتغيرات بيئة التشغيل والقيم الخاصة بكل منها والمطلوب تحديدها لتتبع تطبيقات .NET Core الخاصة بك باستخدام Incasing.

متغير بيئة تشغيل له قيمة غير صحيحة

نوع اصدار المراقبة : netcore_env_var_invalid_value

يوجد متغير بيئة تشغيل واحد على الأقل يعد ضروريا لتشغيل عملية تتبع Inctana .NET Core ، ولا يكون له القيمة الصحيحة. (طبقا لمتغيرات بيئة تشغيل أي غير موجودة ، قد لا تزال تشاهد المقاييس المترية في واجهات تعامل Incass لتطبيق .NET Core الخاص بك ، ولكن بالتأكيد لا يتم تتبعها.) برجاء الرجوع الى قسم كيفية تشغيل التتبع للحصول على كشف بمتغيرات بيئة التشغيل والقيم الخاصة بكل منها والمطلوب تحديدها لتتبع تطبيقات .NET Core الخاصة بك باستخدام Incasing.

أيضا ، قد يكون السبب في أن سبب متغير البيئة الذي سيكون له قيمة غير صحيحة هو وجود أداة APM أخرى. (فيما يتعلق ب hoking في .NET Core runtime ، فان الآليات التي تقوم باستخدامها مختلف أنواع APM متشابهة جدا.) اذا قمنا بالتعرف على هذا الوضع ، سيتم عرضه في الرسالة في واجهة تعامل مستخدم Intana. قبل أن يقوم Inca بتتبع تطبيق .NET Core الخاص بك ، سيكون قد تم ايقاف تشغيل عميل APM الآخر ، على الأقل فيما يتعلق بمراقبة .NET Core ، لمعرفة كيفية القيام بذلك ، ارجع الى المطبوعات الفنية لأداة APM الأخرى.

جهاز الاستشعار غير متصل

نوع اصدار المراقبة : netcore_sensor_not_connected

لا يقوم Intreash host agent باستلام اشعار الاستلام من عملية .NET Core التي تقوم باستخدامها مع Intreast. المحددات تبدو صحيحة ، أو يجب أن تكون قد قمت باعادة تقييم اما متغير بيئة التشغيل له قيمة غير صحيحة أو لم يتم تعريف متغير بيئة التشغيل، ولا يقوم عميل النظام الرئيسي باكتشاف أي سبب واضح له.

وفيما يلي الخطوات التي اتخذت لتصحيح هذه المسألة :

  1. تحقق من تركيب وحدة التتبع
  2. تحقق من أن وحدة التتبع يمكنها الاتصال بالبرنامج الوسيط للنظام الرئيسي

تحقق من تركيب وحدة التتبع

قم بمراجعة سجلات التطبيق الخاصة بك للادخال التالي :

Error getting agent-info, make sure the agent is running and reachable:One or more errors occurred. (Connection refused)

هذا الخط يعني أنه قد تم تركيب وتشغيل وحدة التتبع ، وستشاهد أيضا عدة ادخالات باستخدام النص التالي :

Process Announcement:One or more errors occurred. (Connection refused)

اذا قمت بمشاهدة لا هذه الادخالات ، قم بالتحقق مما يلي :

  1. تم اتاحة تتبع .NET Core في النظام الوسيط للنظام الرئيسيconfiguration.yaml
  2. لقد قمت باتباع كل الخطوات المطلوبة في المطبوعات الفنية الى التتبع

كبديل ، اذا كان تطبيق .NET Core الخاص بك يعمل في Kubertenes ، يجب أن تقوم بتجربة AutoTrace AutoTrace WebHok، التي تقوم آليا وبشفافية باضافة أجهزة .NET Core الى pods الخاص بك.

وبخلاف ذلك ، فإنه من المرجح جدا أن تكون هناك مسائل للربط الشبكي ، يرد وصف لها في الفرع التالي.

تحقق من أن وحدة التتبع يمكنها الاتصال بالبرنامج الوسيط للنظام الرئيسي

اذا كان قد تم تركيب .NET Core traer (ارجع الى الجزء السابق) ، تأكد من أن .NET Core process يمكنه الاتصال بالبرنامج الوسيط للنظام الرئيسي على نفس النظام الرئيسي على المنفذ 42699. للحصول على مزيد من المعلومات عن امكانية رؤية شبكة الاتصالات المطلوبة ، ارجع الى المطبوعات الفنية الى متطلبات شبكة الاتصال agent for the Intana Host Agent.

وما نراه على نحو متزايد ، هو أنه في المنصات المعبأة ، إما أن تكون هناك مشاكل في رؤية الشبكة بين الحاوية مع التطبيق المراد تتبعه وحاوية وكيل المضيف ؛ وهي مسألة أخرى من نفس النوع ، وذلك بسبب بعض محددات نموذج الاحلال ، وحاوية التطبيق التي سيتم تتبعها لا تتصل بحاوية البرنامج الوسيط للاستدعاء على نفس النظام الرئيسي.

عادة ما تكون المشكلة هي أن .NET Core Tracter يستخدم عنوان خطأ ip أو اسم DNS للتحدث مع Intelasing Agent. يمكنك توجيه .NET Core tracter للمستخدم باستخدام عنوان شبكة اتصالات محدد من خلالINSTANA_AGENT_HOSTمتغير بيئة التشغيل.

في حالات قليلة جدا ، قمنا بمشاهدة العملاء الذي قام باعداد شبكات الاتصال الخاصة بهم بحيث لا تكون المشكلة عبارة عن عنوان شبكة الاتصالات ، ولكن منفذ يستخدمه traceer. في حالة أنك تحتاج الى مزيل للمنفذ ، لأن البرنامج الوسيط للنظام الرئيسي لا يقوم بالاستماع على المنفذ42699ولكن شيئا آخر ، يمكنك توجيه tracter لاستخدام منفذ مختلف من خلالINSTANA_AGENT_PORTمتغير بيئة التشغيل.

في حالة عدم وجود أي مما سبق يساعدك في حل المشكلة ، برجاء فتح دعم بطاقة طلب الخدمة.

Prolog الخاص بوحدة اعادة الكتابة

عندما يتم تحميل I-Rewriter في التطبيق الخاص بك ، ستقوم بكتابة ثلاثة أسطر من الخصائص المميزة الى-ouced الخاص بالتطبيق الخاص بك. اذا كان لديك الشعور بأن شيئا ما لا يعمل ، تأكد في البداية من أنك قد وجدت هذه السطور في سجل التطبيق الخاص بك :

Initializing Instana IL-Rewriter for .NET Core
Logging path is not set
Loading configuration-file /app/instana_tracing/instrumentation.json

قد تختلف المسارات بناءا على المحددات الخاصة بك ، ولكن يجب أن تكون هذه الخطوط في بداية مخرجات التطبيق الخاص بك (حيث أنه سيتم تحميل وحدة اعادة الكتابة قبل التطبيق الفعلي الخاص بك بواسطة التشغيل)

اذا لم تظهر هذه السطور :

* تأكد من كلCORECLRبيئة-متغيرات بيئة التشغيل متاحة للتطبيق الخاص بك