Skip to main content
ثبّت حزمة LogBrew SDK الخاصة ببيئة التشغيل لديك. ينسّق الـ SDK الأحداث ويسلّمها. وتسرد إرشادات الحزمة أنواع الأحداث والحدود وسلوك إعادة المحاولة. نفّذ هذه الخطوات في كل عملية دمج:
  1. ثبّت حزمة SDK الخاصة ببيئة التشغيل لديك.
  2. أبقِ مفتاح الاستيعاب الخاص بالمشروع خارج نظام إدارة الشيفرة المصدرية.
  3. اضبط قيمًا ثابتة للخدمة والبيئة والإصدار.
  4. أرسل حدثًا تجريبيًا آمنًا واحدًا من التطبيق.
  5. اقرأ نتيجة التسليم. ثم ابحث عن الحدث في LogBrew.
الدفعة المقبولة وصلت إلى LogBrew API. لكن عوامل التصفية قد تُخفي أحداثها. اختر المشروع الصحيح والنطاق الزمني الصحيح. ثم طابِق الخدمة والبيئة والإصدار ونوع الإشارة. قبل أن تفعّل الالتقاط، اختر الحقول المعتمدة واختبرها. لملء «التحليلات»، اتبع التقاط أحداث المنتج.

الإشارات والسياق المشترك

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

log

رسالة منظّمة لها خطورة ومصدر ووقت وسياق آمن.

trace_span

عملية واحدة محددة التوقيت، مرتبطة بتتبّعها عبر معرّفَي التتبّع والـ Span.

issue

عطل ملتقَط، وخطورته، وتفاصيل الخطأ التي أرسلها التطبيق.

action

إجراء في تطبيقك، مع كيان وجلسة وخصائص آمنة اختيارية.

metric

قياس رقمي واحد له اسم ونوع وقيمة ووحدة ونمط زمني (temporality).

الإصدار والبيئة

نسخة الشيفرة والبيئة المرفقتان بالأحداث اللاحقة في نطاق الـ SDK نفسه.

قيم الخطورة

استخدم info أو warning أو error أو critical للسجلات والمشكلات. يمكن لحزم SDK وبيئات التشغيل إرسال أسماء بديلة مثل trace أو debug أو warn أو fatal. ويحوّل LogBrew الأسماء البديلة المقبولة إلى القيم المعيارية.

التثبيت عبر مدير الحزم

ثبّت حزمة SDK الخاصة ببيئة التشغيل التي ترسل بيانات القياس. استخدم إعدادات SDK أو إعدادات الاستيعاب الخاصة بالمشروع من LogBrew. لا تستخدم قيم تسجيل الدخول إلى الحساب في إعدادات الـ SDK.

تتبّع الطلبات في Node.js

لربط التتبّع بجذر الطلب، استخدم @logbrew/sdk بالنسخة 0.1.16 أو أحدث، و@logbrew/node بالنسخة 0.1.11 أو أحدث. يتطلب Express الحزمة @logbrew/express بالنسخة 0.1.5 أو أحدث. ويتطلب Fastify وNestJS حزمة LogBrew الخاصة بكل منهما بالنسخة 0.1.6 أو أحدث. تنشئ عمليات الدمج هذه Span طلب واحدًا أو تكمله. يستخدم اسم الـ Span قالب المسار المطابق. وترث السجلات والمشكلات والإجراءات والمقاييس داخل الطلب سياق التتبّع والـ Span الخاص به. الحزمة الأحدث لا تضيف سياقًا إلى الأحداث التي أُرسلت قبل الترقية. لا يلتقط دمج الطلبات الافتراضي نص الطلب أو الاستجابة، ولا سلاسل الاستعلام، ولا الترويسات العشوائية، ولا قيم traceparent الخام.

ASP.NET Core

تكتشف CLI بالنسخة v0.1.55 أو أحدث مشاريع .NET 10 التي تستخدم Microsoft.NET.Sdk.Web. اعرض خطة الإعداد مسبقًا من جذر المشروع. هذا الأمر لا يغيّر ملفاتك:
تثبّت الخطة المنشورة دمج المضيف:
اضبط LOGBREW_SERVER_API_KEY وLOGBREW_SERVICE_NAME وLOGBREW_ENVIRONMENT وLOGBREW_RELEASE خارج نظام إدارة الشيفرة المصدرية. سجّل LogBrew لدى المضيف، وضع الـ middleware الخاص به بعد التوجيه (routing):
من دون LOGBREW_SERVER_API_KEY، لا يفعل استدعاءا التسجيل شيئًا، وهما آمنان. تحدد حزمة NuGet لـ ASP.NET Core دمج المضيف المنشور. وتغطي إرشادات الحزمة العامة دورة حياة المضيف، والتقاط الطلبات، والتقاط المشكلات، وحدود الخصوصية، والتعافي.

Java مع Maven أو Gradle

تكتشف CLI بالنسخة v0.1.54 أو أحدث الملفات pom.xml وbuild.gradle وbuild.gradle.kts. اعرض خطة الإعداد مسبقًا من جذر المشروع. هذا الأمر لا يغيّر ملفاتك:
مع Maven، أضف الحزمة المنشورة:
مع Gradle Kotlin DSL، أضف ملف البناء نفسه من Maven Central:
استخدم Java 11 أو أحدث. يمكن لتطبيقات Spring Boot 3 و4 أن توفّر bean من نوع LogBrewClient يملكه التطبيق. ويفعّل هذا الـ bean عمليات دمج اختيارية للطلبات والاستثناءات وعميل HTTP وJDBC والذاكرة المؤقتة. التقاط Spring Kafka لا يعمل إلا إذا فعّلته صراحةً باستخدام logbrew.kafka.enabled=true. ويستخدم اعتمادية Spring Kafka وbean العميل الموجودين في التطبيق. يحدد ملف بناء Java SDK على Maven Central الحزمة المنشورة. وتغطي إرشاداتها العامة التسليم المحدود عبر HTTP، والإيقاف، والتسجيل، وإعدادات Spring، والربط مع Kafka، وحدود الخصوصية.

C++ مع CMake

يتطلب C++ SDK معيار C++17 وCMake 3.16 أو أحدث. تكتشف CLI بالنسخة v0.1.39 أو أحدث ملف CMakeLists.txt في الجذر. شغّل logbrew setup --json لعرض خطة الإعداد هذه مسبقًا دون تغيير ملفاتك:
الهدف الأساسي (core target) بلا اعتماديات. لإرسال الدفعات عبر ناقل libcurl الاختياري، استبدل استدعاء FetchContent_MakeAvailable الأخير وربط الهدف السابق بما يلي:
اضبط إعدادات التطبيق. ثم ابنِه لاختبار نسخة الـ SDK المختارة:
في عمليات البناء التي لا تستطيع جلب المستودع الموحّد للـ SDK، استخدم الملف logbrew-cpp-0.2.3.tar.gz المخصص لـ C++ من إصدار C++ 0.2.3. تدعم الحزمة بعد فك ضغطها cmake --install وfind_package(LogBrew 0.2.3 CONFIG REQUIRED). وتغطي إرشادات الحزمة السياق المحدد الأنواع، وأدلة المشكلات، وأحداث الـ Span، والمقاييس، والإجراءات، والتسليم عبر HTTP.

خرائط المصدر في JavaScript

لعمليات بناء Vite، اتبع خرائط المصدر لـ JavaScript. تغطي الإرشادات المكوّن الإضافي، ومفتاح ملفات البناء (artifact)، وفحوص الرفع، ومشكلة جديدة بمواضع المصدر الأصلية.

Apple وFlask وReact Native

استخدم منتج Swift المسمى LogBrew لبيانات القياس. أضف LogBrewCrash فقط لالتقاط أعطال Apple وحالات التجمّد. اتبع أعطال Apple والتجمّد لرفع ملفات dSYM وتحليل الرموز المستضاف. مع Flask، اتبع إعداد Flask. مع React Native وExpo، اتبع React Native. تغطي الإرشادات مفتاح المشروع، وسجلًا تجريبيًا آمنًا، وأخطاء التسليم، وإعدادات Expo Metro لخرائط المصدر في الإنتاج.

تتبّع الطوابير في JavaScript

عمليات دمج الطوابير في Node حزم npm مستقلة. ثبّت حزم LogBrew الأساسية لـ JavaScript، وحزمة الدمج، وعميل الطابور أو الوسيط (broker) الذي يستخدمه تطبيقك بالفعل. استخدم هذه الحزم لربط التتبّع بشكل صريح يملكه التطبيق حول استدعاءات الطابور التي تختارها. لا يملك LogBrew اتصالك بالوسيط، ولا ينشئ طوابير، ولا يعدّل كل العملاء تلقائيًا على مستوى التطبيق كله.
أبقِ محتوى رسائل الطابور، والترويسات العشوائية للرسائل، وعناوين URL الخاصة بالوسيط، وقيم Bearer الخاصة بالجلسة أو الحساب خارج إعدادات الـ SDK. استخدم إعدادات الاستيعاب الخاصة بالمشروع على جهة الخادم من LogBrew.

الغلاف الأصلي المباشر

استخدم POST /api/telemetry/ingest فقط لعميل مخصص لا تدعمه أي حزمة LogBrew SDK عامة. تستخدم حزم SDK العامة تنسيق الدفعات الخاص بها، ونقطة النهاية هذه لا تقبل ذلك التنسيق. أرسل من 1 إلى 512 عنصرًا في الغلاف الأصلي الواحد. تشترك كل عناصر الغلاف الواحد في المشروع والخدمة والإصدار والبيئة وسياق التتبّع الاختياري.

حقول العناصر

لكل عنصر type وكائن data. يستخدم عنصر السجل level، ويستخدم عنصر المشكلة severity. ويقبل كلاهما القيم الواردة في قيم الخطورة. أرسل id مع كل عنصر عندما يستطيع عميلك إعادة المحاولة. عندما تعيد محاولةٌ إرسال عنصر مقبول مرة أخرى بالقيمة id نفسها والمحتوى نفسه، لا يخزّنه LogBrew مرة ثانية. وتعدّ الاستجابة هذا العنصر ضمن already_accepted.

مثال على الطلب

احفظ JSON التالي باسم telemetry-envelope.json. استبدل معرّف المشروع في المثال بمعرّف المشروع الدقيق لمفتاح الاستيعاب. اضبط الطوابع الزمنية على الوقت الحالي بتوقيت UTC للحدث التجريبي. واستخدم قيم الخدمة والإصدار الخاصة بك.
telemetry-envelope.json
حمّل قيمة الاستيعاب الخاصة بالمشروع في LOGBREW_INGEST_BEARER من خلال إعداداتك المحمية. لا تطبعها، ولا تستخدم بيانات اعتماد الحساب. يرسل الأمر التالي الملف مرة واحدة، ويتطلب curl 7.76.0 أو أحدث:
اقرأ حالة HTTP ونص الاستجابة. يحافظ --fail-with-body على نص الخطأ، ويُرجع حالة خروج غير صفرية عند أخطاء HTTP. فشل الشبكة أو انتهاء المهلة لا يخبرك هل قبل LogBrew الطلب أم لا. لا ترسل الملف نفسه مرة أخرى إلا إذا كانت لعناصره قيم id. ومن دون قيم id، قد يؤدي الإرسال الثاني إلى تخزين العناصر مرتين.

الاستجابة

يُرجع الطلب الناجح 200 مع أعداد العناصر الجديدة حسب كل تدفق. ويعدّ already_accepted العناصر التي سلّمها طلب سابق بالفعل.

الأخطاء

مفتاح الاستيعاب غير الصالح أو المُبطل يُرجع 401. والمفتاح الخاص بمشروع آخر يُرجع 401 أيضًا:
استخدم مفتاح استيعاب خاصًا بالمشروع. لا تستبدله ببيانات اعتماد الحساب. لا يستطيع مفتاح ملفات البناء (artifact) إرسال بيانات القياس. الغلاف الذي يخالف قاعدة حقل يُرجع 422 مع الرمز validation_failed. يذكر الحقل error القاعدة. ويخبرك الحقل next بكيفية إصلاح الطلب. مثلًا، "items": [] يُرجع:
لا ترسل غلافًا عندما لا توجد أحداث. الغلاف الذي يحتوي على أكثر من 512 عنصرًا يُرجع 422 مع الخطأ native telemetry envelope exceeds the item limit. قسّمه إلى دفعات من 512 عنصرًا أو أقل. واحتفظ بالمشروع والسياق المشترك في كل دفعة. لحدود الاستخدام وحدود المعدّل وأعطال الخدمة، اتبع code المُرجَع في أخطاء API.
اضبط الإصدار والبيئة في إعداد الـ SDK. أنشئ سياق التتبّع أو أكمله لكل عملية. لا تُعِد استخدام معرّف تتبّع واحد لأعمال لا علاقة بينها.