Bosh sahifa Wiki Collector

Collector

Collector — telemetry ma’lumotlarini qabul qiladigan, qayta ishlaydigan va bir yoki bir nechta backendga eksport qiladigan komponentdir. Observability kontekstida OpenTelemetry Collector trace, metric va loglar uchun vendor-neutral pipeline beradi. U application ichidagi SDK bilan storage yoki monitoring xizmati o‘rtasida agent yoki gateway sifatida ishlashi mumkin.

Pipeline tuzilishi

Collector konfiguratsiyasi receiver, processor, exporter va extensionlardan tashkil topadi. Receiver OTLP, Prometheus, Jaeger, syslog yoki boshqa protokolda data qabul qiladi. Processor batch, filter, attribute o‘zgartirish, memory limit yoki samplingni bajaradi. Exporter natijani tracing, metric, log yoki message backendga yuboradi.

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp]

Komponent konfiguratsiyada yozilgani bilan ishlamaydi; u tegishli pipelinega ham ulanadi. Bir receiver bir nechta signal pipelineida ishlashi mumkin, lekin signal turi mos bo‘lishi kerak.

Agent va gateway

Agent har host yoki pod yonida ishlaydi. U local metadata, file log va host metriclarini yig‘ib, applicationga yaqin buffer beradi. Gateway markaziy deployment bo‘lib, tail sampling, tenant routing va backend credentiallarini bir joyda boshqaradi.

Ikki qatlam birga ishlashi mumkin: agent yengil preprocessing qilib gatewayga uzatadi. Gateway single point of failure bo‘lmasligi uchun bir nechta replica, load balancing va queue bilan ishlaydi. Stateful tail samplingda trace affinity talab qilinadi.

Backpressure va queue

Backend sekinlashsa exporter retry va sending queue ishlatadi. Memory queue process crashida yo‘qoladi; persistent queue durabilityni oshiradi, ammo disk lifecycle va encryption talab qiladi. Queue cheksiz bo‘lsa diskni to‘ldiradi, to‘lsa drop siyosati signal turiga qarab belgilanadi.

Memory limiter process OOM bo‘lishidan oldin backpressure yoki data rejection beradi. Upstream SDK har doim qayta urinmasligi mumkin. Dropped spans, failed export, queue size va refusal metriclari kuzatiladi.

Transformatsiya va xavfsizlik

Processor resource attribute qo‘shishi, service nomini normalizatsiya qilishi yoki sensitiveni olib tashlashi mumkin. Transform qoidasi noto‘g‘ri bo‘lsa barcha telemetryni jim drop qilishi ehtimol. Sample data va canary pipeline bilan tekshiriladi.

Collector ko‘p xizmat telemetrysini ko‘rgani uchun yuqori qiymatli infratuzilma hisoblanadi. OTLP endpoint TLS va authentication bilan himoyalanadi. Tenant identity client yuborgan oddiy attribute dan olinmaydi; ishonchli credential yoki network boundary bilan bog‘lanadi.

Deployment va yangilash

Collector versiyasi receiver va processor semantikasini o‘zgartirishi mumkin. Configuration validation syntaxni tekshiradi, ammo backend permission yoki real trafficni kafolatlamaydi. Rolling update queue drain, connection va duplicate deliveryga ta’sir qiladi.

Collectorning o‘z telemetrysi alohida monitoring qilinadi. Uni faqat o‘zi orqali yuborish pipeline butunlay yiqilganda signalni yo‘qotishi mumkin; critical health tashqi probe va mustaqil metric yo‘li bilan ham tekshiriladi.

Fan-out va delivery

Bitta pipeline ikki exporterga yuborsa ularning failure semantikasi mustaqil bo‘lishi kerak. Sekin arxiv backend real-time tracing eksportini to‘smasligi uchun alohida queue ishlatiladi. Collector distributed transaction qilmaydi; bir backend data ni olib, boshqasi olmasligi mumkin.

Retryable va permanent export xatolari ajratiladi. Invalid argumentni cheksiz retry qilish queue ni band qiladi. Failed item count, status code va destination metriclari signal yo‘qolishini ko‘rsatadi. Sensitive payloadni dead-letterga yozishdan oldin access nazorat qilinadi.

Bog‘liq tushunchalar

OpenTelemetry Collector, Receiver, Processor, Exporter, OTLP, Telemetry pipeline, Tail sampling