الانتقال إلى المحتوى الرئيسي
يتكامل هذا الدليل مع:
✅ السجلات✅ المقاييس✅ التتبعات

تثبيت طبقات Lambda الخاصة بـ OpenTelemetry

يوفّر مشروع OpenTelemetry طبقات Lambda منفصلة من أجل:
  1. إضافة instrumentation تلقائيًا إلى شيفرة دالة Lambda الخاصة بك باستخدام auto-instrumentation من OpenTelemetry.
  2. إعادة توجيه السجلات والمقاييس وتتبع المجمّعة إلى ClickStack.

إضافة طبقة auto-instrumentation الخاصة باللغة

تقوم طبقات Lambda الخاصة باللغة والمخصّصة لـ auto-instrumentation بتجهيز شيفرة دالة Lambda لديك تلقائيًا بحزمة OpenTelemetry auto-instrumentation المناسبة للغتك. لكل لغة ولكل منطقة قيمة ARN خاصة بها. إذا كانت دالة Lambda لديك مجهّزة بالفعل باستخدام OpenTelemetry SDK، فيمكنك تخطي هذه الخطوة. للبدء:
  1. في قسم Layers، انقر على “Add a layer”
  2. اختر تحديد ARN وأدخل قيمة ARN الصحيحة بحسب اللغة، مع التأكد من استبدال <region> بمنطقتك (على سبيل المثال: us-east-2):
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-nodejs-0_7_0:1
يمكن العثور على أحدث إصدارات هذه الطبقات في مستودع OpenTelemetry Lambda Layers على GitHub.
  1. قم بتكوين متغيرات البيئة التالية في دالة Lambda لديك ضمن “Configuration” > “Environment variables”.
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on

تثبيت طبقة Lambda الخاصة بـ OpenTelemetry collector

تتيح لك طبقة Lambda الخاصة بـ collector إعادة توجيه السجلات والمقاييس والتتبعات من دالة Lambda إلى ClickStack دون التأثير في أوقات الاستجابة بسبب كمون المُصدِّر. لتثبيت طبقة collector:
  1. في قسم Layers، انقر على “Add a layer”
  2. حدِّد “specify an ARN” واختر ARN الصحيح بناءً على المعمارية، وتأكد من استبدال <region> بمنطقتك (على سبيل المثال: us-east-2):
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-collector-amd64-0_8_0:1
  1. أضف ملف collector.yaml التالي إلى مشروعك لتهيئة collector بحيث يرسل البيانات إلى ClickStack:
# collector.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 'localhost:4317'
      http:
        endpoint: 'localhost:4318'

processors:
  batch:
  decouple:

exporters:
  otlphttp:
    endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
    compression: gzip

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp]
    metrics:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp]
    logs:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp]
  1. أضف متغير البيئة التالي:
OPENTELEMETRY_COLLECTOR_CONFIG_FILE=/var/task/collector.yaml

التحقق من التثبيت

بعد نشر الطبقات، ينبغي أن ترى الآن التتبعات التي جُمعت تلقائيًا من دالة Lambda الخاصة بك في HyperDX. قد يتسبب المعالجان decouple وbatching في تأخير جمع بيانات القياس عن بُعد، لذا قد يتأخر ظهور التتبعات. ولإرسال سجلات أو مقاييس مخصّصة، ستحتاج إلى إضافة OpenTelemetry SDKs الخاصة بلغتك إلى تعليماتك البرمجية.

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

عدم إرسال التضمين البرمجي المخصّص

إذا لم تكن ترى التتبعات التي عرّفتها يدويًا أو أي بيانات قياس عن بُعد أخرى، فقد تكون تستخدم إصدارًا غير متوافق من حزمة واجهة برمجة تطبيقات OpenTelemetry. تأكد من أن إصدار حزمة واجهة برمجة تطبيقات OpenTelemetry لديك يساوي على الأقل إصدار الحزمة المضمَّنة في AWS Lambda أو يكون أقدم منه.

تمكين سجلات التصحيح الخاصة بـ SDK

عيّن متغير البيئة OTEL_LOG_LEVEL إلى DEBUG لتمكين سجلات التصحيح من OpenTelemetry SDK. سيساعد ذلك على التأكد من أن طبقة auto-instrumentation تقوم بأداتة تطبيقك بشكل صحيح.

تمكين سجلات التصحيح الخاصة بالـ collector

لاستكشاف مشكلات الـ collector وإصلاحها، يمكنك تمكين سجلات التصحيح عبر تعديل ملف تكوين الـ collector لإضافة المصدّر logging، وضبط مستوى سجلّات telemetry على debug لتمكين تسجيل أكثر تفصيلاً من طبقة Lambda الخاصة بالـ collector.
# collector.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 'localhost:4317'
      http:
        endpoint: 'localhost:4318'

exporters:
  logging:
    verbosity: detailed
  otlphttp:
    endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
    compression: gzip

service:
  telemetry:
    logs:
      level: "debug"
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp, logging]
    metrics:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp, logging]
    logs:
      receivers: [otlp]
      processors: [batch, decouple]
      exporters: [otlphttp, logging]
آخر تعديل في ٢٥ يونيو ٢٠٢٦