GH GambleHub

Paýlanan ýollar

Paýlanan ýollar

1) Näme üçin we näme

Paýlanan marşrut, ähli haýyş ýoly boýunça amallary baglanyşdyrmagyň usulydyr: öň → API-şlýuz → mikroservisler → DB/nagt pullar → brokerler → joblar/paýlar.
Netije - span (span) -dan trace (trace), bu ýerde her span komponentiň atributlar, wakalar we status bilen işleýşini ýazga alýar. Bu RCA çaltlaşdyrýar, SLO-ny saklamaga kömek edýär we MTTR-ni peseldýär.

Esasy maksatlar:
  • Möhüm ýoluň we "dar ýerleriň" görünmegi.
  • Alamatlaryň (metrikanyň) sebäpler (spanalar) we jikme-jiklikler (loglar) bilen baglanyşygy.
  • Retraýlaryň, nobatlaryň, DLQ-leriň, janköýerleriň, gizlinlik "teshikleriniň" seljermesi.

2) Yzarlaýyş maglumatlarynyň modeli

Trace - 'trace _ id' jaň grafigi.
Span — операция: `name`, `kind` (SERVER/CLIENT/PRODUCER/CONSUMER/INTERNAL), `start/end`, `status`, `attributes`, `events`, `links[]`.
Attributes - açar bahasy (route, db. system, messaging. system, cloud. region we ş.m.).
Events - spanyň içindäki dessine bellikler (mysal üçin 'retry', 'cache _ miss').
Span Links - "ene-ata-çaga" (batçi, retrai, fan-in/out).
Resource - prosesiň/hyzmatyň meta-maglumatlary ('service. name ', wersiýa, gurşaw).

3) Kontekst we çydamlylyk

3. 1 W3C Trace Context

Sözbaşylar:
  • 'traceparent': 'version-traceid-spanid-flags' (baýdaklara sampling girýär).
  • 'tracestate': wendor-aýratyn ýagdaý (iň az).
  • Baggage - işewür kontekst üçin açarlar (çäkli, PII/syrsyz).

3. 2 Konteksti zyňmak

HTTP: `traceparent`/`tracestate`; gRPC: meta-maglumatlar; WebSocket: täzelenende we habarlarda;

Habarlar: headers-de (Kafka/NATS/RabbitMQ) - asyl mazmuny PRODUCER-de saklaýarys we CONSUMER-de geçirýäris.
Maglumatlar bazalary: konteksti "götermeýär" - atributlary spana ýazýarys (query, rows, db. system), ýöne manysy ýok.

4) Semplemek: nädip bankrot bolmaly däl

Head sampling (girelgede): ähtimal/düzgünlere görä (route, tenant, endpoint).
Tail sampling (kollektorda): "gyzykly" söwdalary - ýalňyşlyklary, uzyn p95/p99, seýrek ýollary saklaýarys.
Exemplars: gistogramma metrikleri anyk 'trace _ id' salgylanmalaryny saklaýar.
Maslahat: birleşmek - head 5-20% + tail-düzgünler 100% 5xx/timeout/p99 üçin.

5) Atributlar we taksonomiýa (hökmany iň pes)

Umumy:
  • `service. name`, `service. version`, `deployment. environment`, `cloud. region`, `http. route`, `http. method`, `http. status_code`, `db. system`, `db. statement '(gysgaldylan/maglumatsyz),' messaging. system`, `messaging. operation`, `peer. service`, `net. peer. name`, `tenant. id`, `request. id`.

Işewür bellikler: PII bolmasa seresaplylyk bilen. Mysal: 'order. segment`, `plan. tier`.

6) Asinxron ssenariýalar, nobatlar we söweşler

PRODUCER → CONSUMER: kontekstli SPAN PRODUCER döredýäris; habarda - headers (traceparent, baggage). CONSUMER SERVER/CONSUMER-span PRODUCER linkinden başlaýar (eger berk iýerarhiýa bolmasa).
Fan-out: bir giriş - köp otput → golçur ýa-da links.
Batch: CONSUMER her bir messageId ýa-da aýry-aýry kontekstlerde 'links' -den 'events' -den bir paket N habarlary okaýar.
DLQ: aýratyn span 'messaging. dlq. publish` с reason и count.
Retraýlar: 'event: retry' + 'retry. count 'atribut; has gowusy synanyşmak üçin täze CHILD-span.

7) Loglar we metrikler bilen integrasiýa

JSON-ny 'trace _ id '/' span _ id' → bilen ýazýarys.
RED/USE metrlerinde exemplars bar → p99-dan "erbet" ýatmaga gidýäris.
Ýollar wakalar arkaly tehniki signallary (garaşlylyk ýalňyşlyklaryny) we işewürlik signallaryny (öwrülişikleri) döredýär.

8) Öndürijiligi we bahasy

Wakalary semplemek we trottling.
Atributlaryň kardinallygyny azaltmak ('user _ id '/' session _ id' label!).
Eksportçy tarapyndan gysyş/batching; eksport wagtlarynyň çäkleri.
Saklamak: gyzgyn 1-7 gün, soňra - agregatlar/diňe "problemaly" söwdalar.
Çykdajy kategoriýalary: kollektorlar, indeksler, ammar, egress.

9) Howpsuzlyk we gizlinlik

In Transit: TLS 1. 3/mTLS ýygnamak agentleri; At Rest: şifrlemek, öz açarlary ("In Transit/At Rest şifrlemek").
PII we syrlar: atributlara/wakalara ýazmaýarys; önümçide tokenizasiýa/maskalama.
Köp kärendesi: 'tenant. id 'çeşme-bellik we giňişlikleriň izolýasiýasy, okamak syýasaty hökmünde; yzlara girmegi diňlemek ("Audit we üýtgemeýän magazinesurnallara" serediň).

10) Girizmegiň shemalary (salgylanma)

10. 1 OpenTelemetry SDK (psevdokod)

python from opentelemetry import trace from opentelemetry. sdk. trace import TracerProvider from opentelemetry. sdk. resources import Resource from opentelemetry. sdk. trace. export import BatchSpanProcessor from opentelemetry. exporter. otlp. proto. grpc. trace_exporter import OTLPSpanExporter

provider = TracerProvider(resource=Resource. create({
"service. name":"checkout","service. version":"1. 12. 0","deployment. environment":"prod"
}))
provider. add_span_processor(BatchSpanProcessor(OTLPSpanExporter(endpoint="otel-collector:4317", insecure=True)))
trace. set_tracer_provider(provider)
tr = trace. get_tracer("checkout")

with tr. start_as_current_span("POST /pay", attributes={
"http. route":"/pay","http. method":"POST","tenant. id":"t-42"
}):
business logic, external API call and pass DB

10. 2 OTel Collector - tail sampling (bölek)

yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_codes: [ERROR]
- type: latency threshold_ms: 900
- type: probabilistic sampling_percentage: 10 exporters:
otlphttp: { endpoint: http://trace-backend:4318 }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tailsampling]
exporters: [otlphttp]

10. 3 Kafka - kontekstiň geçirilmegi (düşünje)

PRODUCER: headers 'traceparent', 'baggage' goşýarys.
CONSUMER: Habar täze akymy başlasa - täze SERVER/CONSUMER-span c linkden headers-den kontekste.

11) Data/ETL и ML

Batch-payplaynlar üçin: batch/partition c 'dataset. urn`, `run. id`, `rows. in/out`, `freshness. lag`.
ML üçin: türgenleşik/ýürek, modeliň wersiýasy, latency, feature store.
Lineage: 'run. id` и `dataset. urn 'treysden maglumatlaryň gelip çykyşyna geçmäge mümkinçilik berýär.

12) SLO yzarlaýyş platformalary

Elýeterlilik ingestion: ≥ 99. 9%

Indekslemegiň gijä galmagy: ≤ 60 s p95

Head-sample örtügi: Esasy ugurlaryň 5-10% ≥

100% ERROR statusly we latency> "kritiki ýollar" katalogy boýunça bosagany saklamak

Platforma alertleri: damjalaryň ösüşi, eksport wagtlary, indeksator lag, kardinallygyň aşa gyzmagy.

13) Synag we barlamak

CI-de yzarlaýyş şertnamasy: esasy endpointlerde spanlaryň bolmagy, hökmany atributlar, dogry 'traceparent' şlýuzdan/proksiden geçýär.
Synthetic/rum-synaglar: daşary tarapdan treýsleri ýygnaýarlar.
Chaos/hadysalar: endikleri öçürmek, tail-sampleriň ýalňyşlyklary "saýlaýandygyny" barlamak.
Önümdäki smoke: goýberilenden soň - "ukusyzmy" we exemplar → trace.

14) Çek-listler

Önümden öň

  • W3C Trace Context hemme ýerde zyňylar; Habar üçin - headers.
  • Esasy head-sempleme goşuldy; 5xx/p99 üçin tail düzgünleri sazlandy.
  • Hökmany atributlar: route, method, status, service. version, tenant. id.
  • JSON logleri 'trace _ id '/' span _ id', exemplars bilen metrikler.
  • PII sanitizatorlary; ýolda/dynç alyşda şifrlemek; giriş syýasaty.
  • Daşbordlar: "möhüm ýol", "endikleriň ýalňyşlyklary", "retrailer/wagtlar".

Amal

  • Atributlaryň kardinallygynyň her aýda gözden geçirilmegi; kwotalar.
  • SLO boýunça tail-sampling sazlamak (az ses, ähli "gyzgyn" - nusgada).
  • Geçiş metrika → exemplar → trace → logi bilen RCA okuw.
  • Nobatlar, DLQ, ETL joblary üçin örtükleri barlamak.

15) Runbook’и

RCA: p99/pay

1. RED dashboard açyň; p99 binasyndan exemplar arkaly trasa geçmek.
2. "Dar" CLIENT-span tapyň (mysal üçin 'gateway. call '), barlamak' retry. count ', wagt.
3. Hyzmatyň/garaşlylygyň, sebitiň/zonanyň wersiýalaryny deňeşdiriň.
4. Pese gaçmagy açyň (kesişýän jogap/RPS çägi), garaşlylyk eýelerine habar beriň.
5. Fiksden soň - RCA we optimizasiýa üçin biletler.

DLQ

1. 'messaging' marşrutlaryny süzüň. dlq. publish`.
2. Sebäpleri barlaň (events), goýbermek bilen baglanyşdyryň.
3. Reprocess-i başla, CONSUMER-den wagtyny wagtlaýynça uzat, downstream eýelerine habar ber.

16) Ýygy-ýygydan ýalňyşlyklar

Şlýuzlar/brokerler arkaly kontekstiň ýaýramagy ýok. Çözgüt: middleware/interseptorlar, bitewi kitaphanalar.
Ähli söwdalar 100%. Gymmat we manysyz - tail-sempling ulanyň.
'trace _ id' -siz girelgeler. Korelýasiýa ýitýär → MTTR ↑.
Atributlarda PII. Gizläň/belläň; diňe tehniki mazmuny saklaň.
"Dilsiz" fon joblary. Spany batch/partition we 'run. id`.
Adyň tapawudy. Span atlary we atribut açarlary sözlügini giriziň.

17) FAQ

S: Head ýa-da tail sampling has gowudymy?
A: Kombinasiýa. Head esasy gatlagy berýär, tail anomaliýalaryň/ýalňyşlyklaryň saklanmagyny kepillendirýär.

S: Berk iýerarhiýa bolmazdan Kafka arkaly nädip yzarlamaly?
A: PRODUCER we CONSUMER arasynda span linklerini ulanyň; kontekst - headers.

S: Duýgur SQL bilen näme etmeli?
O: 'db. statement 'gysgaldylan/kadalaşdyrylan (manysyz) ýa-da' db. operation '+ ölçegleri/wagty.

S: Iş ölçegleri bilen nädip baglanyşmaly?
O: PII (plan/segment) bolmasa domen atributlaryny goşuň, spanyň içinde "iş tapgyrlary" wakalaryny ulanyň we exemplar boýunça öwrülişik metriklerinden geçiň.

Baglanyşykly materiallar:
  • "Syn edilişi: ýazgylary, metrikleri, yzarlamalary"
  • "Audit we üýtgemeýän žurnallar"
  • "In Transit/At Rest şifrlemek"
  • "Maglumatlaryň gelip çykyşy (Lineage)"
  • «Privacy by Design (GDPR)»
  • "Syr dolandyryşy"
Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.