بنية ملحق المسجل
Audience: Engineers implementing or operating
recorder-sidecaras the خدمة تسجيل الأدلة القابلة للوصول عبر الشبكة.
جدول المحتويات
- نظرة عامة تنفيذية
- تركيب وقت التشغيل
- HTTP السطح والتوجيه
- أمان وموارد التحكم
- الاستقلالية وأمان إعادة المحاولة
- النقل ودورة الحياة
- تغليف الحاويات وعمليات Docker
- التحقق وتغطية الاختبار
- مرجع متقاطع ملف بملف
نظرة عامة تنفيذية
recorder-sidecar هو وقت تشغيل خدمة HTTP/JSON الخاصة بالمسجل التي تعرض مسارات التسجيل، والاستعلام، والحزم عبر مقبس Unix و/أو مستمعي TCP.
يتكون الجانبي من RecorderEngine و BundleBuilder و Verifier ونسخة واحدة من SqliteStore تحت بوابات وسيطة صريحة لهوية الترابط، والمصادقة، وهوية المؤسسة/السياسة، وإنفاذ الحدود، والتحكم في المهلة. الآن يتدفق إدخال الظرف المتغير عبر قائمة محدودة ووقت تشغيل كاتب موثوق واحد.
F:crates/recorder-sidecar/src/server.rs L42-L133 F:crates/recorder-sidecar/src/state.rs L29-L56 F:crates/recorder-sidecar-config/src/config.rs
تركيب وقت التشغيل
تدفق بدء التشغيل:
- Load and validate TOML config (
config_version,api.major_version, تحميل والتحقق من صحة إعدادات TOML (config_version,api.major_version, recorder, transport, security, signer, و limits). - قم بتهيئة التتبع وفتح
SqliteStore. - بناء مكونات وقت تشغيل المسجل.
- تهيئة بوابة الإدخال المحدودة + مهمة وقت تشغيل كاتب مخصصة.
- بناء جهاز توجيه
axumمع مجموعة من البرمجيات الوسيطة. - ربط مستمعي النقل المكونين وتقديم الخدمة حتى الإلغاء.
F:crates/recorder-sidecar-config/src/config.rs F:crates/recorder-sidecar-config/src/validation.rs F:crates/recorder-sidecar/src/server.rs L43-L247 F:crates/recorder-sidecar/src/ingest.rs
HTTP السطح والتوجيه
الموجه الحالي يعرض:
- الاستعلامات:
GET /health,GET /startup,GET /ready - مراقبة القطاعات:
GET /v1/segments,GET /v1/segments/active - Envelope ingest:
POST /v1/envelopes, استلام الظرف:POST /v1/envelopes,POST /v1/envelopes/with-attachments - الاستعلام:
POST /v1/query/envelopes - Bundle workflows:
POST /v1/bundles/build,POST /v1/bundles/verify, تجميع سير العمل:POST /v1/bundles/build,POST /v1/bundles/verify,POST /v1/bundles/inspect - توافق الاستيعاب:
POST /v1/ingest/otel(تصدير OTel JSON v1) - فحص وقت التشغيل:
GET /v1/config
F:crates/recorder-sidecar/src/server.rs L135-L160 F:crates/recorder-sidecar/src/handlers/otel.rs
ملاحظات عقد مراقبة الشريحة:
GET /v1/segments/activenow returns the same paginated list shape asGET /v1/segments(ليس موردًا فرديًا)، مصفاة إلىstatus=open.- Segment response objects now include stream identity
(
stream_key.tenant_id,stream_key.recorder_id) to make per-stream roll حدد صراحة عند حدود API.
F:crates/recorder-sidecar/src/handlers/segment.rs
تسليط الضوء على عقد الطلب المتغير:
Idempotency-Keyمطلوب لنقاط النهاية المتغيرة.- تتطلب مسارات الظرف
tenant_idوrecorder_idفي أجسام الطلبات. recorder_idيجب أن يتطابق مع هوية مسجل الجانب المكونة.- In enterprise-enabled modes, mutating envelope routes require
تجميع رأس/جسم
x-tenant-id.
سلوك الصحة:
GET /healthهو اختبار خفة للحياة يعيد بيانات وصفية عن العملية.GET /startupis a startup-completion probe returning startup metadata,GET /startupهو استعلام للتحقق من بدء التشغيل يعيد بيانات التعريف الخاصة بالبدء، بما في ذلكstartup_verification_depthالمكونة.GET /readyreturns readiness state with dependency-aware fail-closed semantics:- 503 مع السبب=storage_unavailable عندما يفشل الوصول إلى المتجر.
- Optional
503withreason=request_capacity_exhaustedwhenprobes.ready_fail_on_admission_saturation=trueand admission/execution اختياري503معreason=request_capacity_exhaustedعندماprobes.ready_fail_on_admission_saturation=trueوتكون إشارات القبول/التنفيذ مستنفدة. - Optional
503withreason=enterprise_control_unavailablewhenprobes.readiness_mode=storage_and_enterprise, enterprise mode is enabled, اختياري503معreason=enterprise_control_unavailableعندما يكونprobes.readiness_mode=storage_and_enterpriseمفعلًا، وضع المؤسسة مفعل، وتف checks جاهزية control-plane تفشل. - 200 مع ready=true في حالة مستقرة.
F:crates/recorder-sidecar/src/handlers/health.rs L42-L94
أمان وموارد التحكم
بوابة التكوين
تحقق التكوين يكون مغلقًا عند الفشل ويفرض:
- تخطيط صارم وإصدار API
- معرف المسجل وصلاحية الإغلاق التلقائي،
- قيود نقل المضيف/المنفذ،
- non-loopback transport requires
security.mode=tokenand keeps يتطلب النقل غير الدائريsecurity.mode=tokenويحتفظ بـrequire_token_for_non_loopback=true(فشل مغلق)، - token file hardening (
security.token_filecannot be a symlink, must be a تقوية ملف الرمز (security.token_fileلا يمكن أن يكون رابطًا رمزيًا، يجب أن يكون ملفًا عاديًا، وعلى أنظمة Unix يجب ألا يمنح أذونات للمجموعة/الآخرين)، - Secret token paths are opened with descriptor-bound hardening
(
O_NOFOLLOWon Unix,FILE_FLAG_OPEN_REPARSE_POINTon Windows) and تم التحقق من المقابض المفتوحة لإغلاق سباقات التحقق/الاستخدام، - bounded hostile file reads (sidecar config <= 1 MiB, token/control-plane ملفات التوكن <= 4096 بايت، ملف مفتاح الموقّع <= 65536 بايت،
- قابلية تحليل مفتاح الموقّع،
- حدود الأرقام لطلب/رأس/التماثل والتحقق من السقف الصلب،
- probe config fail-closed semantics:
probes.enterprise_health_pathmust be absolute/safe andprobes.readiness_mode=storage_and_enterpriserequires enterprise mode not معطل.
F:crates/recorder-sidecar-config/src/config.rs F:crates/recorder-sidecar-config/src/validation.rs
مكدس البرمجيات الوسيطة
أوامر و تحكمات الوسيط:
- حد حجم جسم الطلب (
max_request_body_bytes). - طبقة تتبع.
- Correlation middleware (server correlation IDs, sanitized client
وسيط الترابط (معرفات الترابط على الخادم،
x-correlation-idالمنقحة، التوافق معx-request-idالقديم). - Auth middleware (
Bearertoken mode with constant-time compare and RFC 6750 وسيط المصادقة (Bearertoken mode مع مقارنة زمن ثابت وبيانات تحدي RFC 6750 في استجابات401). - Enterprise identity middleware (
x-tenant-id,x-principal-id,x-authn-method, optionalx-namespace-id, optional writer lease assertion) وسيط هوية المؤسسات (x-tenant-id,x-principal-id,x-authn-method,x-namespace-idالاختياري، تأكيد عقد الإيجار الاختياري للكتابة) لوضعيات المؤسسات الممكّنة. - Enterprise policy middleware (control-plane ingress checks for protected
routes plus sidecar boundary hook emission at
admissionandresultوسيط سياسة المؤسسة (تحقق من إدخال خطة التحكم للطرق المحمية بالإضافة إلى إصدار خطاف حدود الحاوية في مراحلadmissionوresult). - Bounds middleware (header bytes, content negotiation, content-length checks, وسيط الحدود (بايتات الرأس، تفاوض المحتوى، فحوصات طول المحتوى، قائمة القبول المحدودة، التزام نشط محدود، مهلة الطلب).
سلوك أولوية الاستقصاء:
/health,/startup, and/readyare exempted from auth, enterprise policy, and bounds gating so liveness/startup/readiness state remains observable under/healthو/startupو/readyمعفاة من المصادقة، سياسة المؤسسة، وحدود التحكم، بحيث تظل حالة النشاط/البدء/الجاهزية قابلة للرصد تحت الضغط أو فشل السياسات.
F:crates/recorder-sidecar/src/server.rs L155-L160 F:crates/recorder-sidecar/src/middleware/request_id.rs L15-L30 F:crates/recorder-sidecar/src/middleware/auth.rs L21-L84 F:crates/recorder-sidecar/src/control_plane_bridge.rs F:crates/recorder-sidecar/src/middleware/enterprise.rs F:crates/recorder-sidecar/src/middleware/bounds.rs L21-L172 F:crates/recorder-sidecar-config/src/media_types.rs
سياسة نوع الوسائط الصارمة المصدر:
- request-body routes use a centralized allowlist from
recorder-sidecar-config::sidecar_request_media_type_policies Content-Typeparsing is strict fail-closed (application/jsonwith اختياريcharset=utf-8فقط)،Acceptتحليل صارم يغلق الفشل (application/jsonأو*/*فقط)،- generated sidecar OpenAPI/compat artifacts and CI gates consume the same سياسة نوع الوسائط المصدر لمنع انحراف وقت التشغيل/العقد.
ضوابط حدود المؤسسة
عند تمكين enterprise.mode، يضيف الجانب الجانبي تنفيذًا صريحًا لحدود التحكم مع الحفاظ على دلالات المسجل/الأدلة:
-
crates/recorder-sidecar/src/control_plane_bridge.rsis a boundary adapter only. It translates sidecar ingress identities/operations into control-plane قبول المكالمات والتوصيلات؛ لا يقوم بتنفيذ أو تعديل رياضيات أدلة المسجل. -
Enterprise config is fail-closed: enabled mode requires token security mode, تكوين المؤسسة هو فشل مغلق: يتطلب وضع التمكين وضع أمان الرمز، وتكوين عنوان URL/الرمز الخاص بالطائرة التحكم، وفحوصات ملف الرمز المقوى.
-
Enterprise policy gate calls مكالمات بوابة سياسة المؤسسة
POST /v1/enterprise/ingress/checkقبل عمليات السايدكار المحمية. -
Sidecar ingress operation vocabulary exported to enterprise control-plane is restricted to active v1 routes:
recorder.record_envelope,recorder.record_envelope_with_attachments,recorder.ingest_otel,recorder.query_envelopes,recorder.build_bundle,recorder.verify_bundle, andrecorder.inspect_bundle. تمت إزالة مسارات القطاعات المتغيرة ولا تُدرج في هذه المفردات. -
Managed-cloud mode enforces writer-lease assertion for mutating operations يفرض وضع السحابة المُدارة تأكيد استئجار الكتاب للعمليات المتغيرة عندما
require_writer_lease_header=true. -
Sidecar emits deterministic enterprise boundary hooks to
POST /v1/enterprise/sidecar/hooksat:- القبول (السماح/الرفض/خطأ قبل تنفيذ المعالج)،
- نتيجة (السماح/الرفض/خطأ بعد حالة استجابة المعالج).
-
Hook emission is fail-closed for successful protected operations: if enterprise hook export fails, the sidecar returns an error instead of silently accepting انبعاث الخطاف مغلق في حالة الفشل للعمليات المحمية الناجحة: إذا فشل تصدير الخطاف المؤسسي، فإن الجانب الجانبي يعيد خطأ بدلاً من قبول مسار نجاح غير مدقق بصمت.
-
Enterprise readiness dependency checks use
probes.enterprise_health_path(default/health) against the configured enterprise control-plane base URL when تستخدم فحوصات اعتماد جاهزية المؤسسةprobes.enterprise_health_path(افتراضي/health) مقابل عنوان URL الأساسي لواجهة التحكم في المؤسسة المكونة عندprobes.readiness_mode=storage_and_enterprise.
F:crates/recorder-sidecar-config/src/validation.rs F:crates/recorder-sidecar/src/control_plane_bridge.rs F:crates/recorder-sidecar/src/middleware/enterprise.rs
عقد الخطأ
تُعاد الأخطاء كـ RFC 9457 تفاصيل المشكلة (application/problem+json) مع رموز خطأ مستقرة، وبيانات إعادة المحاولة، وحقول ارتباط الخادم/العميل.
تفاصيل وضع الأمان:
- malformed JSON rejections are normalized to typed
bad_requestproblem details يتم تطبيع رفضات JSON غير الصحيحة إلى تفاصيل مشكلة من نوعbad_requestبدلاً من تسرب إخفاقات إطار العمل / مستخرج النص العادي، - server-side (
5xx) responses suppress internaldetailfields to avoid leaking storage/runtime internals while preserving diagnostics in service استجابات جانب الخادم (5xx) تخفي حقولdetailالداخلية لتجنب تسرب تفاصيل التخزين/التشغيل مع الحفاظ على التشخيصات في سجلات الخدمة، 401 unauthorizedresponses include RFC 6750WWW-Authenticatechallenges.
F:crates/recorder-sidecar/src/error.rs L13-L229 F:crates/recorder-sidecar/src/extract.rs
التماثل وأمان إعادة المحاولة
POST /v1/envelopes و POST /v1/envelopes/with-attachments الآن ترسل أوامر موحدة إلى قائمة انتظار محدودة في الذاكرة (IngestGateway) ويتم معالجتها بواسطة وقت تشغيل مخصص لكاتب واحد (IngestWriterRuntime).
تستمر ملكية الكتاب للثبات في idempotency_entries، مع نطاق محدد بواسطة: (stream_tenant_id, stream_recorder_id, endpoint, idempotency_key) بالإضافة إلى هاش الطلب القياسي.
سلوك كاتب المسار الساخن:
- تقوم معالجات التحويل بإضافة أوامر موحدة فقط،
- writer-native sealing computes deterministic attachment refs, content hash, سلسلة التجزئة، تسلسل التدفق، والإيصالات،
- one SQLite transaction per micro-batch persists envelopes, projection rows, إدخالات التماثل، حالة التدفق، وانتقالات القطاعات بشكل ذري.
- stream state load/create is performed once per stream per transaction so segment roll paths cannot open orphan zero-envelope segments before stream استمرارية المؤشر؛ هذا يحافظ على ثبات إعادة التشغيل للجزء المفتوح الواحد.
السلوك:
- نفس المفتاح + نفس الهاش: إعادة تشغيل الإيصال الدائم السابق (
idempotency_outcome=replayed), - نفس المفتاح + تجزئة مختلفة:
409 idempotency_conflict, - تشبع الطابور: فشل سريع
429 too_many_requests, - فشل التخزين: فشل مغلق
idempotency_unavailable/storage_unavailable.
تكون مدة الاحتفاظ محدودة بـ ingest.idempotency_ttl_seconds و ingest.idempotency_max_entries_per_stream. يتم تطبيق تنظيف احتفاظ الكتاب في مرحلتين داخل نفس المعاملة:
- تنظيف انتهاء الصلاحية بواسطة
expires_at_unix، - overflow cleanup by ordered offset delete over
created_at_unix DESC. This path relies onSQLitestream-scope ordering indexidx_idempotency_stream_created(stream_tenant_id, stream_recorder_id, created_at_unix DESC)لتجنب ارتفاعات تأخير القص الناتجة عن عمق التاريخ.
F:crates/recorder-sidecar/src/ingest.rs F:crates/recorder-sidecar/src/handlers/envelope.rs
مسار توافق استيعاب OTel:
POST /v1/ingest/otelingests OTel JSON export payloads throughrecorder-otel-adapterwith deterministic mapping and strict-fail record التحقق.- Route behavior is additive under
/v1, requiresIdempotency-Key, and يعيد استخدام ضوابط المصادقة/المؤسسة/الحدود/الوقت/التوافق. - تتضمن استجابة وقت التشغيل إصدار التعيين وعدد الإدخالات الحتمية.
F:crates/recorder-otel-adapter/src/adapter.rs
النقل ودورة الحياة
وسائل النقل:
- مقبس نطاق يونكس،
- مستمع TCP،
- كلاهما في نفس الوقت.
دورة حياة وقت التشغيل:
- تنظيف مقبس Unix القديم قبل الربط (فشل مغلق تم التحقق من نوع المقبس)،
- رمز إلغاء مدفوع بالإشارة،
- إيقاف تشغيل سلس لكل مستمع مع فرض مهلة
shutdown_drain_seconds - إزالة مقبس Unix في مسار الإيقاف.
F:crates/recorder-sidecar/src/server.rs L163-L262 F:crates/recorder-sidecar/src/shutdown.rs L8-L34
سطح الأمر التشغيلي في ثنائي:
- بدء الخدمة العادية مع
--config/RECORDER_SIDECAR_CONFIG, healthcheckأمر يدعم أوضاع استكشاف TCP URL و Unix-socket.
F:crates/recorder-sidecar/src/main.rs L18-L175
تغليف الحاويات وعمليات Docker
المستودع الآن يرسل ملف تعريف حاوية جانبية من الطرف الأول تحت docker/sidecar/:
Dockerfile: بناء متعدد المراحل بلغة Rust لصورة تشغيل غير جذرية بدون توزيعة.docker-compose.yml: local operator profile with explicit UID/GID mapping, bind-mounted config/data/run paths, tmpfs-backed token target path, Docker مسار المصدر السري، فحص الصحة، وتعيين المنفذ المحدود.config/sidecar.toml: container-oriented baseline config with token-modeconfig/sidecar.toml: تكوين أساسي موجه للحاويات يتطلب مصادقة بنمط الرمز لوسائل النقل غير المتكررة..env.example: canonical environment variable contract for image/tag/paths ورسم خرائط مصدر UID/GID + token-secret.
عقد المشغل:
- supply token material through a Docker secret source file
(
RECORDER_SIDECAR_TOKEN_SECRET_FILE), - bootstrap writes token material to
/work/secrets/tokenin tmpfs with أذونات خاصة بالمالك فقط (0600على Unix) قبل بدء تشغيل sidecar، - run non-root with host UID/GID mapping so strict token checks remain readable تشغيل غير الجذر مع تعيين UID/GID للمضيف بحيث تظل فحوصات الرموز الصارمة قابلة للقراءة مع تجنب تنفيذ الجذر،
- treat
docker/sidecar/secrets/tokenas secret material and keep it out of نظام التحكم في الإصدارات.
F:docker/sidecar/Dockerfile F:docker/sidecar/docker-compose.yml F:docker/sidecar/config/sidecar.toml F:docker/sidecar/README.md
التحقق وتغطية الاختبار
تتضمن مجموعة التحقق الحالية للسيارة الجانبية:
- config fail-closed validation assertions (port, header hard cap, تأكيدات التحقق من الفشل المغلق في التكوين (المنفذ، الحد الأقصى للرأس، حدود الإغلاق التلقائي)،
- سلوك واجهة برمجة التطبيقات للحدود الخاصة بطول المحتوى،
- سلوك تطهير معرف الارتباط،
- فحوصات حتمية تجزئة طلبات الإيديمبوتنسي القياسية.
- generated error-registry compatibility assertions (Docs/generated/recorder/apis/sidecar.errors.json مقابل خط الأساس في وقت التشغيل).
- restart-boundary idempotency replay/conflict integration checks over real إعادة تشغيل حدود التكرار/التكامل للتحقق من الصراعات على الجانب الحقيقي subprocess + استمرارية SQLite.
- parallel rolled-load restart correctness test coverage asserting exactly one استمرار الجزء المفتوح وإعادة التشغيل الناجحة بعد التحميل.
- contract hardening checks for RFC 9457 payload shape, RFC 6750 auth challenge فحوصات تعزيز العقد لشكل الحمولة RFC 9457، ورؤوس تحدي المصادقة RFC 6750، وانتشار رؤوس الترابط.
- strict media-type matrix checks for content-type/accept fail-closed behavior
مع رموز الأخطاء الثابتة
unsupported_media_typeوnot_acceptable. - probe hardening checks for unauthenticated probe routes and startup probe فحص تقوية المسارات غير المعتمدة لفحص البروبي والاستجابة لعقد بدء التشغيل.
- readiness hardening checks for admission saturation fail-closed behavior and فحوصات تعزيز الجاهزية لسلوك الفشل المغلق عند تشبع القبول وانتقالات وضع الاعتماد على مستوى التحكم المؤسسي.
- enterprise outage mutation checks proving write paths fail closed with service-unavailable عندما تكون اعتماديات دخول التحكم في الطائرة معطلة.
- generated sidecar contract compatibility gates (
openapi/errors/enums/examples/compat) تم فرض بوابات التوافق لعقد الجانب المولد (openapi/errors/enums/examples/compat) في تنسيقgenerate/check. - profile-matrix perf orchestration (
RECORDER_PERF_MATRIX=1) that executes debug/test and release regression lanes, emitstarget/perf-matrix/latest.json, and applies release-gated threshold + regression policy using committed baseline contracts (system-tests/perf_baselines/*.json); capacity lane execution is optional (--include-capacity) ومخصصة للوظائف الليلية/ما قبل الإصدار المثبتة. - sidecar perf architecture split:
- regression lane artifact:
target/sidecar-perf/latest.json(lane=regression، إشارة مضادة للتراجع بعبء عمل ثابت)، - capacity lane artifact:
target/sidecar-capacity/latest.json(lane=capacity, saturation sweep withmax_sustainable_rpsand knee المقاييس).
- regression lane artifact:
- system-test sidecar suites for end-to-end HTTP record/query/build/verify and استمرارية إعادة التشغيل غير المتغيرة.
- system-test Docker suite validating Dockerfile/Compose/config hardening plus Docker Compose build/up/down with containerized startup/readiness probes plus سجل/استعلام سير العمل.
- system-test sidecar perf suite for write/read latency, throughput, memory
growth, and overload-429 report fields used by the perf gate; throughput and
latency lanes now use a persistent keep-alive HTTP client pool for
production-representative write-path measurements. As of 2026-02-16, memory
reporting distinguishes hot-path/high-water RSS growth from quiesced retained
RSS growth and emits reclaim ratio context. As of the same date, durability
characterization records live
wal_size_bytes, post-stopwal_size_post_stop_bytes, and coupledwal_checkpoint_noopstate per case, and emits an explicit comparability signal (durability_wal_ratio_vs_1000_comparable) قبل تفسير نسب WAL. - ignored informational retained-memory attribution lane
(
sidecar_perf_rss_retained_memory_attribution_characterization) emittingtarget/sidecar-perf/rss_attribution_latest.jsonwith fixed-volume sequential/parallel quiesce-window checkpoints andsmaps_rollupclass دلتا (Rss,Anonymous,Private_Dirty,Shared_Clean,Shared_Dirty). - ignored informational ingest-tuning characterization lane
(
sidecar_perf_rss_ingest_tuning_characterization) emittingtarget/sidecar-perf/rss_ingest_tuning_latest.jsonwith ingest queue/batch matrix sweeps (queue_capacity,batch_max_commands,batch_max_bytes) across sequential and parallel workers, including data-derived decision fields لتصنيف الآليات وتوصية التخفيف. - ingest batching byte-estimation path now avoids per-command
Vec<u8>allocation churn inwriter_command_estimated_bytesby counting serialized بايتات JSON عبرserde_json::to_writerضد حوض عد. - system-test sidecar capacity suite for release-only concurrency sweep points
(
32..512), deterministic correctness sampling, and pinned-runnermax_sustainable_rps/مقياس انبعاثات الركبة.
F:crates/recorder-sidecar-config/src/config/tests.rs F:crates/recorder-sidecar/tests/unit/middleware/bounds/tests.rs F:crates/recorder-sidecar/src/idempotency.rs F:crates/recorder-sidecar/tests/error_registry_contract.rs F:crates/recorder-sidecar/tests/idempotency_restart.rs F:crates/recorder-sidecar/tests/http_contract_hardening.rs F:crates/recorder-sidecar/tests/enterprise_control_plane_e2e.rs F:scripts/ci/sidecar_contract_gates.py F:scripts/ci/perf_matrix.py F:scripts/ci/perf_gate.py F:scripts/ci/perf_threshold_policy.py F:scripts/ci/generate_all.sh F:system-tests/tests/suites/sidecar.rs F:system-tests/tests/suites/sidecar_enterprise.rs F:system-tests/tests/suites/sidecar_docker.rs F:system-tests/tests/suites/sidecar_perf.rs F:system-tests/tests/suites/sidecar_capacity.rs F:system-tests/tests/helpers/perf_sidecar.rs
مرجع متقاطع لكل ملف
| المنطقة | الملف | الملاحظات |
|---|---|---|
| حدود الصندوق | crates/recorder-sidecar/src/lib.rs | نقاط دخول الصندوق العامة وتركيب الوحدات. |
| وقت التشغيل الثنائي | crates/recorder-sidecar/src/main.rs | سطر الأوامر، بدء الخدمة، وسلوك فحص الصحة. |
| ثنائي تمهيد الحاوية | crates/recorder-sidecar/src/bin/docker_bootstrap.rs | إدخال مصدر الرمز المغلق وفشل التحقق من وجود الرمز قبل بدء تشغيل الحاوية. |
| التكوين + التحقق | crates/recorder-sidecar-config/src/config.rs, crates/recorder-sidecar-config/src/validation.rs, crates/recorder-sidecar-config/src/schema.rs, crates/recorder-sidecar-config/src/compat.rs | نموذج تكوين الحاوية القياسي، تحقق من بدء التشغيل المغلق، وقطع عرض التكوين الحتمي. |
| سياسة نوع الوسائط | crates/recorder-sidecar-config/src/media_types.rs | سياسة نوع الوسائط الصارمة المشتركة لسلوك محلل وقت التشغيل وقطع العقد الناتجة عن الحاوية. |
| تمهيد الخادم | crates/recorder-sidecar/src/server.rs | توصيل التخزين/وقت التشغيل، بناء الموجه، دورة حياة النقل. |
| الحالة المشتركة | crates/recorder-sidecar/src/state.rs | مقبضات وقت التشغيل وبوابات التزامن. |
| سطح الخطأ | crates/recorder-sidecar/src/error.rs | نموذج خطأ API المنظم. |
| مستخلصات JSON | crates/recorder-sidecar/src/extract.rs | تطبيع حدود JSON الصارمة لفشل التحليل المطبوع. |
| خط الأساس لعقد وقت التشغيل | crates/recorder-sidecar/src/contract.rs | إصدار API المصدر وثوابت سجل الأخطاء المستخدمة في اختبارات العقد. |
| إدخال كاتب واحد | crates/recorder-sidecar/src/ingest.rs | قبول قائمة محدودة، توليد إيصالات دائمة، تسلسل نطاق التدفق، وحالة عدم التكرار المستمرة. |
| بوابة سياسة المؤسسة | crates/recorder-sidecar/src/control_plane_bridge.rs | محول حدود المؤسسة فقط: فحوصات دخول مستوى التحكم وإصدار خطاف الحاوية. |
| وسيط المصادقة | crates/recorder-sidecar/src/middleware/auth.rs | فحوصات رمز الحامل مع مقارنة زمن ثابت. |
| وسيط المؤسسة | crates/recorder-sidecar/src/middleware/enterprise.rs | استخراج هوية المؤسسة وفرض الحدود/تسلسل الخطافات. |
| وسيط الحدود | crates/recorder-sidecar/src/middleware/bounds.rs | ضوابط الرأس/المحتوى/قائمة الانتظار/التزامن/الوقت المستغرق. |
| معالج إدخال OTel | crates/recorder-sidecar/src/handlers/otel.rs | مسار إدخال JSON OTel، اقتران عدم التكرار، واستدعاء المحول. |
| محول OTel | crates/recorder-otel-adapter/src/adapter.rs | تنفيذ خريطة/حذف/حدود OTel الحتمي المستخدم من قبل الحاوية وعمليات إدخال سطر الأوامر. |
| تعبئة Docker | docker/sidecar/Dockerfile, docker/sidecar/docker-compose.yml, docker/sidecar/config/sidecar.toml, docker/sidecar/.env.example, docker/sidecar/README.md | ملف تعريف بناء/وقت تشغيل الحاوية من الطرف الأول ودليل استخدام المشغل، بما في ذلك تدفق تمهيد الرمز السري + tmpfs. |
| وحدات اختبار وحدة الحاوية | crates/recorder-sidecar-config/src/config/tests.rs, crates/recorder-sidecar/src/idempotency.rs, crates/recorder-sidecar/tests/unit/middleware/bounds/tests.rs | تم استخراج اختبارات الوحدة من ملفات المصدر الإنتاجية لتنظيم الملفات بشكل أنظف. |
| اختبارات نظام Docker للحاوية | system-tests/tests/suites/sidecar_docker.rs | تعزيز Dockerfile/Compose والتحقق من صحة سير العمل للحاوية المعبأة. |
| معالجات الاستطلاع | crates/recorder-sidecar/src/handlers/health.rs | سلوك الحضور/البدء/الجاهزية، بما في ذلك التشبع ووضع جاهزية الاعتماد المؤسسي. |
| اختبارات التوافق للعقد | crates/recorder-sidecar/tests/error_registry_contract.rs, crates/recorder-sidecar/tests/idempotency_restart.rs, crates/recorder-sidecar/tests/http_contract_hardening.rs | فحوصات السجل، عدم التكرار عند إعادة التشغيل، وتعزيز حدود HTTP. |
| اختبارات تكامل المؤسسة | crates/recorder-sidecar/tests/enterprise_control_plane_e2e.rs | فحوصات نهاية إلى نهاية لحدود قبول/نتائج المؤسسة بما في ذلك سلوك التحول المغلق عند انقطاع مستوى التحكم. |
| بوابات CI للعقد | scripts/ci/sidecar_contract_gates.py, scripts/ci/perf_matrix.py, scripts/ci/perf_gate.py, scripts/ci/perf_threshold_policy.py, scripts/ci/generate_all.sh | بوابات العقد v1 قبل كسر الإصدار بالإضافة إلى تنسيق أداء مصفوفة الملف الشخصي وإدارة عتبة مكافحة التلاعب. |
| اختبارات نظام الحاوية | system-tests/tests/suites/sidecar.rs, system-tests/tests/suites/sidecar_enterprise.rs, system-tests/tests/suites/sidecar_perf.rs, system-tests/tests/suites/sidecar_capacity.rs | تغطية دورة حياة HTTP من النهاية إلى النهاية، مسارات اعتماد مستوى التحكم المغلق للمؤسسة، وتوليد تقارير أداء الانقسام/السعة لـ SLO وعتبة التشبع. |
| توافق الأمان | Docs/security/threat_model.md | رسم خرائط التهديدات الموثوقة والمخاطر المتبقية. |