يتكامل هذا الدليل مع:
| ✅ السجلات | ✅ المقاييس | ✅ التتبعات |
تثبيت طبقات Lambda الخاصة بـ OpenTelemetry
يوفّر مشروع OpenTelemetry طبقات Lambda منفصلة من أجل:
- إضافة instrumentation تلقائيًا إلى شيفرة دالة Lambda الخاصة بك باستخدام auto-instrumentation من OpenTelemetry.
- إعادة توجيه السجلات والمقاييس وتتبع المجمّعة إلى ClickStack.
إضافة طبقة auto-instrumentation الخاصة باللغة
تقوم طبقات Lambda الخاصة باللغة والمخصّصة لـ auto-instrumentation بتجهيز شيفرة دالة Lambda لديك تلقائيًا بحزمة OpenTelemetry auto-instrumentation المناسبة للغتك.
لكل لغة ولكل منطقة قيمة ARN خاصة بها.
إذا كانت دالة Lambda لديك مجهّزة بالفعل باستخدام OpenTelemetry SDK، فيمكنك تخطي هذه الخطوة.
للبدء:
- في قسم Layers، انقر على “Add a layer”
- اختر تحديد ARN وأدخل قيمة ARN الصحيحة بحسب اللغة، مع التأكد من استبدال
<region> بمنطقتك (على سبيل المثال: us-east-2):
Javascript
بايثون
Java
Ruby
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-nodejs-0_7_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-python-0_7_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-javaagent-0_6_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-ruby-0_1_0:1
يمكن العثور على أحدث إصدارات هذه الطبقات في مستودع OpenTelemetry Lambda Layers على GitHub.
- قم بتكوين متغيرات البيئة التالية في دالة Lambda لديك ضمن “Configuration” > “Environment variables”.
Javascript
بايثون
Java
Ruby
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
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:
- في قسم Layers، انقر على “Add a layer”
- حدِّد “specify an ARN” واختر ARN الصحيح بناءً على المعمارية، وتأكد من استبدال
<region> بمنطقتك (على سبيل المثال: us-east-2):
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-collector-amd64-0_8_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-collector-arm64-0_8_0:1
- أضف ملف
collector.yaml التالي إلى مشروعك لتهيئة collector بحيث يرسل البيانات إلى ClickStack:
Managed ClickStack
ClickStack Open Source
# 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]
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
processors:
batch:
decouple:
exporters:
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
headers:
authorization: <YOUR_INGESTION_API_KEY>
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]
- أضف متغير البيئة التالي:
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.
Managed ClickStack
ClickStack Open Source
# 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]
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
exporters:
logging:
verbosity: detailed
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
headers:
authorization: <YOUR_INGESTION_API_KEY>
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]
آخر تعديل في ٢٥ يونيو ٢٠٢٦