Bosh sahifa Wiki Output plugin

Output plugin

Output plugin — pipeline qayta ishlagan recordlarni tashqi destinationga yuboradigan kengaytma komponentidir. Log tizimida u Elasticsearch, Loki, object storage, message broker, stdout yoki HTTP endpointga batch yozishi mumkin. Output ichki formatni destination protokoli va schema siga mos serialize qiladi.

Batch va flush

Har recordni alohida network requestda yuborish overheadni oshiradi. Output size yoki vaqt bo‘yicha batch yig‘adi. Katta batch throughputni oshiradi, ammo memory, latency va failed retry hajmini ko‘paytiradi.

Flush interval past trafikda recordning bufferda qancha turishini cheklaydi. Shutdown paytida buffer deadline ichida flush qilinadi. Process force kill qilinsa memory batch yo‘qolishi mumkin.

Retry

Connection timeout, 429 va 503 vaqtinchalik xato bo‘lishi mumkin. Exponential backoff va jitter destinationni retry stormdan himoya qiladi. Authentication yoki invalid schema kabi permanent xato cheksiz qayta urinilmaydi.

Partial successda batchning faqat ayrim recordlari rad etilishi mumkin. Output muvaffaqiyatli elementni yana yubormasdan failed qismini ajratadi. API faqat umumiy status qaytarsa duplicate ehtimoli delivery modelining qismidir.

Queue va durability

Sending queue outputni pipeline inputidan ajratadi. Memory queue tez, restartda yo‘qoladi. Persistent queue recordni diskka yozib, ack olingach o‘chiradi. Disk to‘lishi uchun maksimal hajm va overflow siyosati bor.

Destination uzoq ishlamasa queue backlog yoshi oshadi. Faqat byte hajmi emas, eng eski record va tiklanish throughputi kuzatiladi. Qayta ulanishda birdan barcha backlogni yuborish backendni yana yiqitmasligi uchun drain rate cheklanadi.

Serialization va mapping

Output timestamp, label va fieldni backend modeliga aylantiradi. Noto‘g‘ri type Elasticsearch mapping conflict, Loki label cardinalitysi yoki database constraint xatosi keltirishi mumkin. Dynamic fieldlarni indeksga ko‘r-ko‘rona chiqarish xavfli.

Compression networkni kamaytiradi, CPU va batch bufferingni oshiradi. Payload limitidan katta record bo‘lsa split qilish semantik jihatdan mumkin bo‘lmasligi mumkin; alohida dead-letter yoki truncate policy ishlatiladi.

Xavfsizlik va ko‘p destination

Credential secret store dan olinadi, config va logda ko‘rinmaydi. TLS server identitysini tekshiradi. Output tenantni record ichidagi ishonchsiz fieldga qarab boshqa accountga yo‘naltirmaydi.

Bitta pipeline ikki outputga fan-out qilsa atomik commit odatda yo‘q. Bir destination qabul qilib, boshqasi rad etishi mumkin. Har outputning queue va failure metriclari mustaqil yuritiladi. Audit arxiv va tez qidiruv backendining retentioni farq qilishi mumkin.

Yetkazish va batch chegarasi

Output plugin eventlarni bitta-bitta yoki batch qilib jo‘natadi. Batch throughputni oshiradi, biroq xato qaytganda qaysi element qabul qilinganini aniqlash zarur. Destination partial success qaytarsa, faqat rad etilgan elementlar retry qilinadi; butun batchni takrorlash duplicate yaratishi mumkin. Timeout so‘rovning serverda bajarilmaganini isbotlamaydi, shu bois idempotency key yoki barqaror event ID foydali. Plugin shutdown paytida yangi batch qabul qilishni to‘xtatib, belgilangan muddat ichida mavjud buffer va acknowledgment holatini yakunlaydi.

Kuzatuv ko‘rsatkichlari

Plugin accepted, sent, retried, rejected va dropped eventlar sonini alohida beradi. Queue depth va eng eski event yoshi destination sekinlashuvini ko‘rsatadi. Faqat umumiy throughput kuzatilsa, yangi eventlar kelmay qolishi bilan tiqilib qolish bir xil ko‘rinishi mumkin. Latency histogrami batch kutish va network vaqtini ajratib o‘lchasa sozlash aniqroq bo‘ladi.

Bog‘liq tushunchalar

Log collector, Input plugin, Persistent queue, Batch processing, Retry, Dead letter queue, Data sink