αα ααααααααΎαααααΆααααααΌαααΈαααααα·ααΈ monolithic αα microservice ααααΆαααααααα ααΎαααααααα»αααΉααααα αΆαααααααααΈα
αα αααα»ααααααα·ααΈ monolithic ααΆααααααΆααΆααΆααααα½ααααα»αααΆααααααααΆααΎαααααααΆαα½ααααααααααααααααΆαααα α»αααΎαα‘αΎαα ααΆαα αααΎαααααααΆαααα αΆααΊαα αααα»αααΌααα monolith αααα½αααΆααααΆααα¬αα αααα»αααΌαααααΆααα·ααααααα ααα»αααααα ααααααααΎαα αΆααααααΎαααααααααααα αΆαα αααα»αααααΆααααααααααΈααααΌααααΆ α’αααΈαααΆααα’αααααααΆαααΆαααΆααααααααααα αΎαα ααΎαααααΌααααααααααααΌαααΆααααΌααααααααΎααΆαααααΈααΎααααα αα α αΎαααααΎαααΎαααΆααΈααααΆααααααΈααααΌααΆααααα ααΎαααΈααααα ααα αα½αααααΆα αααΎαααααΆααααααααααα»αααααΆαααααα½αααααα αααα’αΆα αααααΆαα±ααααΆαααα α»αα‘αΌααΈαα ααααΌα ααΆαααα αΆααΆαα½αααΉαααΆαα’αα»αααα αα·αααΆαα’ααα±αα ααααααα α»αα
αααα»αβααΆαβαααααβααβααΆβααΌαβααβα αΎαβαααααΆααβα§αααααβαααβα’αΆα
βαα½αβαααβααααΆαβαααα αΆβαααβααα (αααα»αβααΆαβαααααβα’αααΈβααΏαβαααβαα
βααΎ Habre:
ααΆαααΆαααΆααααααΆαα ααα αΆαααΊααΆαααααααααΆαααΌαα α αααααααα αΆααααΆααααααααααα α»ααα αααα»αααααααααα ααα αΆαα ααα»ααααα α»ααααΆαααΆααΎαα·ααΈααΆαααααααααααα»αααΆααααααΌαααααααΆαα’αααΈα’αααααααααααααΆααα·αααΆααααααΌαααΆαα’αα»αααααα αααα»ααααααααα α¬α’αΆαααααααΆαααααα ααααα αααα»ααααααααααααααααααΆααααΎαααΆαααΆαααααΉαααααΌααα½α α αΎα ααα»αααααα½ααααααααΆαα·αααααΎαααΆααα αααααΆαααΆαα·αααααΌαααΆααααα αΌααα αααα»αααααΆααααα αΆααα ? ααΎααααΈαααααααΈααΌαα ααα»αα·αααααΆαααααααα αΆ α αΆαααΆα αααααΌαααΆαααΌαααΆαααααααααα’αααΈααααααα»αααΎαα‘αΎααα αααα»αααααααααα ααΆααΆαααΆααααααΆααααΆαα·ααααααα»αααΆαααααααααααΆααΎααααΆααΈααααΌαα½αααΆαααααΆααααααααα αααα»αααααΌαααααΆαααααα’αΆααΈαααααα
αα ααΈααα αα·ααΈααΆαααααααααΆααααααΆα’αΆα αααααααα½αααααααΎα αααααΉααααααααΆαααΆαα½αααΉαααααΏααααΆαααΈαααΆααα’αααααααΆααααΆααααααΌαααααααΆααααααΆααα ααααα·αααΆαααΆαααααΆααααααα½αααααΎαααΆαα αα·ααΈααΆααααααααα’αα»ααααΆαα±ααααΎαααααΆααα αΆααα ααΆα αααααΆααα’αα α αΎααα·ααΆαααΆααααΆααα ααΎαααΈααααα ααα αααααα·ααΈαα·αα αΆαααΆα αααΉαα’αααΈααΆααα’ααα’αααΈααΆααα
αα·ααΈααΆαααααααααΆααααααΆαααα
αααα·αα αααααααα·ααΈααΆαααααααααΆααααααΆααΊααΎααααΈαααααααααααΆααα αααααΆαα ααΆαααααααααα½ααααααααααα ααΎαααααΆααααααΉαα’αα»ααααΆαα±ααααΎαααααΎαα·α αα ααΆαααΆαα½αααΆαα½αα’ααααααααΆααααα ααΆαα’αα»ααααααΆαα αααΎαααααΎαααΆαααΌα ααΆααααααα αα»αααΊαααααααααα αα αααααααααααααΆαααααΌααααΈαααααΆααΆαααααΌαααΆααααα αΌααα αααα»αααααΆααΈααααΌααΈαα½αα αααααΆαααααααα ααΆα αααα αΌα αα·αα ααααΆααα’ααααααααΆααααααααΌαααΆαααααααΆααα α αΎααααααΊααΆαααααααααααΎαα’αΆα ααααΎαααα»αααα’αα·αα·αα α’αα»ααααααααααααΆααα»ααααα·ααΆα ααΆαααΆααααααα·αααΎα ααα½αααααΎ αα·ααααααΌαααααααΆαααααΆαααααααΈααΈα’ααααααααααααααΆαααααα αααα»αααα·αααααα
αααααααααΆα
ααΆαααΆαα’αα»ααααααΆα
αααΎααααα·ααΈααΆαααααααααα½α
α αΎαα
ααΆαααααα ααΎαααΆααα·αα·αααααΎααααααααΆαα’αααΈαααααΎαααααΌαααΆααα αααααα α αΎαααΆααααααα α α·αααααΆ ααΌαα ααα»α αααααααααΎαα αΆααααααΎαα’αα»αααααααααααααΆααααααα ααΊαααααααΆααααα»αααΆααααααΌαααααααΆαααΆαααΆαααΈααααααααααΆααααΌααααααααααααααΆααΆαα ααΎαααα ααααΆαααΆααααααααααααΎα’ααααααααααααααΆαααα αα·αααααΎα§ααΆαααααααααααΆαα½αααΉαααααααΆαααααααΌαααΆαααααααααΆαααααΆααααα
ααΆααααααααΎαααΆαααΆααααααΆααααααα
α
α·αααααααααΎααβ
ααααααΆαααα
ααααα α αααααααααααααααΆαααααΈααΊααΆαα αααΆαααΎααααΆαααΆα αα·αααΆαα’αα»αααααααααα αααα»αβα ααααβαα»αααΆαβααααΆααα ααΎαβα ααβααΆαβααααααΆαβαααααΌαβααΆαβααΆαααΆαβαααΆαβααΆαβαααααΆααΆαβαα βαααααααα Jaeger ααααβααΎαα
ααααααααααααααααααααΆααααααΆαα αααΎαααααΌαααΆαα’αα»αααααα αααα»α Golang α α αΎααα·αααΆααααΆαα ααα»αααααααΆααααΏααααα ααΆαααααααααααα·ααΈαααααΆααα αααα»α Golang αααααααΎααΆαα’ααααΆαααΆαα½α I/O αα·αααααΆααα ααΌααΆααααααΌαααΆααααααΌαααΆαααΊααΆααααα½α αα·αααΆααααααΆααα α αΎαα’αααΈαααααααΆααααααα ααΆαα’αα»ααααααΊαααααααααΆααααΎααααΈαααααααΆααααα αΆαααα αααα αΎαααΆααΌαα ααα»αααααΎαααααΎαααΎα Golang α
ααα·αααΆα
ααΎαααΆααααααααΆααα·αααααααΉααααααααααααΎαααΎααΆααααααα ααΆαααΌαααα·αααΆαα’αα·ααααΆα αααααΆαααααααααααΆααααααααΌαααΆαααΆαααααααΆααα ααΆααααΉαααααΆααααααΈαα½αα ααΆαααααΎααααΆαα RAM αα·α CPU αα·α αα½α ααΊααααΌαααΆαααΆαααΆαα α αΎαααΆααΆααα·α ααΆααααααΆαααααΆαααααΎααααααα½αααααΌα αααα
α αΆαααΎαααΆααΎααΎαααα½αααΆαααααααα’αααΈαααα?
α’αααβα αα αΆα
Netramesh ααααΎααααΆαα ~ 10Mb αααααααΆαα ααΆα ααα αα·αα’αα·ααααΆ 50Mb ααΆαα½αααΉαααααα»ααα αΌαααα 10000 RPS αααα»ααα½αααααΈα
ααααΌααααΈαααααα Istio αααααααααΎααααΆαα ~300Mb αα αααα»αα αααααααααααΎαααΆαα½αααΉαα§ααΆα αααααΆααααΆααα ααααα·αα’αα»ααααΆαα±ααααΆααααΎααΆαααααααΆααα α αααααααΆααααΌαααα
ααΆαα½αααΉα Netramesh ααΎαααα½αααΆαααΆαααα α»α ~ 10x ααααΆαααααΎααααΆααα’αααα αα αΆαα
αααΈααΈααΌ
ααΆαααααΎααααΆαααααΈααΈααΌααΊααααΎααααΆαα αααααααααα»αα ααΆα’αΆαααααααΎα ααα½αααααΆαααααΎαα»ααααα»ααα½αα―αααΆαααααααααΆαα ααααααα αα ααα ααααααα 3000 ααααΎαααα»ααα½ααα·ααΆααΈαα ααααΌα:
ααΆαα ααα»α ααααΆαααα½ααααααΊ Netramesh - αααααααααΆααααααααΆαααααα ααααααααααα α αΎαααααΆαααααα»α αα·ααααΈαααααααΆαααΈααΈααΌααα ααΆαα½αααΉα Istio ααααααα αα αααααααααααΎαα αα α»ααααααααΆαα ααα»α αααα ααααααααΆααααα ααΆααααααααΎαα’αΆα ααΎαααΌαααΆααααααααα·ααααα»αα
ααΎαααααΎ HTTP/1 αααααΆααααααΆαααααααααΆαααααΆααααα ααΆαααΎαα‘αΎααααααααααΆααααΎααααααααΆαα Istio αα αααααααΌααααΈααΆααααααααααααΆαααααα 5-10ms αααα αααΎαααΆαααααααΆααααααΆααααααααααααααααΎααααααα»ααα½αααΈααΈαα·ααΆααΈα ααΆαα½αααΉα Netramesh αααααααΆαααααΆαααα α»αααα 0.5-2ms α
ααααααΆαααααΎααΆαααααααΆα
α ααα½ααα·α αα½α ααααααΆααααααααΎααααΆαααααααααΌααααΈααΈαα½ααααααΎα±ααααΆα’αΆα ααΆααααΆαα αα·αααααΆααααααΈαα½ααα Netramesh ααααΌαααΆααααααΎαα‘αΎααααα ααααΆαααααααΆαααΆαα»ααααααααααα ααααααααααα ααΎααααΈαααααΆααααααααααΆαααααααααααα αα ααααΈαα½ααα ααΆααΉαααΆαααα αααα»ααααααααααΆαααααΆααααΆαα ααααα αααααααΆα ααα αΆαααααααΆααααααααααααΆαα ααΆααααααααα αα ααααΈαα½ααα αα½αααΆαα½αααΉαααααααΆαα’αααΈαααααααΆα’ααααα αα·αααΆαααααααα»αααααΆαα ααΆααα’αααααα’αα»ααααΆαα±ααα’αααααααΎααΏααααααΆαααααααααααΆα αααΎα ααα»ααααααΆα’αα»ααααΆααααΎα±ααααααααα αα ααααΆαααα αααα
ααΆαααααΎαααααΆαααα
Netramesh αα·αααααααααααααΆαααααααααΆαα½ααααααΆααααΆαααααΎαααααΆααααααα α ααΆα αααααΆααα’ααααααΌαααΆααααααΌαααααααααΆααΆαααΆαααα netra sidecar α
Netramesh ααΆαααααα·ααΈααΆααααααα·ααΈ HTTP/1 α ααΎααααΈαααααααΆ αααααΈα
ααααααα’αΆα
ααααααα
ααΆααααααααααΆαααααΌαααΆαααααΎα ααΆααααααΆ ααααααααααΆαα
αααααΆα
αααΎα ααΆααααααΆαααααΆαααααα HTTP ααΎαα‘αΎαα α§ααΆα ααα ααΎαααααΎ 80, 8890, 8080 αααααΆααα’αααααααααααΆαααααΆαααα αα·αααααΎααΆααααα
αααα»αααααΈααα αα½αααΆα’αΆα
ααααΌαααΆαααααααααααααΎα’αααααα·ααααΆα NETRA_HTTP_PORTS
.
ααααα·αααΎα’αααααααΎ Kubernetes ααΆα’ααααααα α αα·αααααααΆαα’αααααΆαααααΆααααααααααΆαααααΆααααΆαααααΆαααααααααα»ααααα»ααααΆαααααΆαααα αααααααααΆααα ααααααα ααααΌα ααααΆααΈααααΌααα½αααΆαα’αΆααααααΆα IP ααααΆαααααααααααΎ kube-dns α αΎαααΎαααΆααααααΆααααααΈαα ααΆα ααΆααααααΆαααααααααΌαααΆααααααΎαα‘αΎαααΆααΎαααααΌαααΆαα½αααΉα netra-sidecar αααα»αααααα α αΎααααα αα TCP ααΆααα’ααααΆαααααα netra ααααΌαα αααααΆαααα netra-sidecar αααααΎαααΆααααααΆααααΆαα½ααα·ααα ααΎαα NAT αα ααΎ pod IP αα ααΎ node αα ααααΌα ααααΆααααα·ααααααααΆα netra α
ααΆαααΆαααΆααααααΆαα ααα αΆα αα·αααΆααααααΌαααααααα·αα
Netramesh αααααααΌααα»αααΆααααααααΌαααΆαααΎααααΈααααΎααΆαααΆαααΆαα’αααΈα’αααααααα HTTP α Netra-sidecar ααααα·ααΈααΆα HTTP ααΆαααααααΆααααααΆααααααααΎαα»α αα·ααααααααααααΆαα
αΆαααΆα
αααΈααααααΆ HTTP α ααΈαααα»α ααΎαααα½αααΆαααΆαααΆααα’αααα
αααα»ααααααααα Jaeger αααα½αα αααααΆααααΆαααααααα
ααΆααααααααααα’ α’αααααα’αΆα
ααααΎα’αααααα·ααααΆαααααααααααααααααΆαααααααΌαααΆααααααα
ααα»ααααααΆααααα αΆα αα αΌαααΆααααααααΆαααααααααΎα αα·αααααΎααααααΆ uber αα·ααα ααΎαααΉααα·αααΎααα·ααΆαααΆαααΆαααΆααααααΆααααααΆαααα
αααα»αααααααααααα α αΎααααααΊααΆα’αααΈαααααΎαααααΌααααααααα±ααααΆαααΆαααα ααααΌαααΌαα ααα»αααααα αΆα αα
ααΈαααααααααα Netramesh ααΆααααααααααΆαα ααααΌααααΈα’αΆαααααααΆ HTTP α αΎαααααα·αααΎαα½ααααα·αααΆαααααααααΆαα uber trace αααααΎααα½αα Netramesh αααααααΆαα»αααααααΆαα’αααΈααααΎα
αΌα αα·αα
αααα
αααα»αααααααα
αα αα α αΎαααααΌαααααα½αααΆααααααααΉααα½αααΆααΆαα½αααΉαααααααΆααααΎα
ααα
αΆαααΆα
αα α’αααΈααΆααα’αααααα’αααααααΌαααααΎαα
αααα»αααααΆααααααΊααααΎααααααααΆαα½αα X-Request-Id
αααα’αΆα
ααααΌαααΆαααααααα
ααΆαααααααααααααααΎα’αααααα·ααααΆα NETRA_HTTP_REQUEST_ID_HEADER_NAME
. ααΎααααΈαααααααααααα αααααα·αααα
αααα»α Netramesh α’αααα’αΆα
αααααα’αααααα·ααααΆαααΆααααααα NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS
(αααααααΆαααααα·ααααΉαααααΌαααΆααααααΆαα»α) αα·α NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL
(ααΆαααΉαααΆααααααΆααααα’αΆαααα·αα) α
ααΆααα’αΆα
ααααΎαα
ααΆαααααααααα»αααΆααααα
αΌαααααΆααΌαααααΌαααΆα
αααΎααα
ααΎααααααααααααα’αααααααααααΆαααα½αααΆααΆαα½αααΉααααααΆαααααΆαααααααα·ααααα½αα Netra α’αα»ααααΆαα±ααα’αααααα‘αΎα HTTP_HEADER_TAG_MAP
ααΎααααΈααααααααααααΆ HTTP αα
ααΆααααΆααα·ααΆαααΆαααΆαααΆααααααααΌαααααΆα αααα’αΆα
ααΆαααααααααααΆαα·ααααααααΆααααΆαααααΎαααααα αααααΆααααΈααααααΆααααΆαααΆααααααα»αααΆα α’αααα’αΆα
ααΎαααΎαααΆαααααααΆαα½αααααααααααααααΌαααΆααααααΆαααααααΆααααααααααααΆααα
α»α
αααααααααααΌαααααΆα
ααΆαααααααααααααααΎ
ααΎααααΈααααααααααααααααααΎααΆαααααΈ α’αααα’αΆα
ααααΎαα»αααΆαααααΆαααααααααααααΆαααααααααααααααα·ααΆαα½ααααααα ααΆαααααΎααααΆααα’αααααα·ααααΆα NETRA_HTTP_X_SOURCE_HEADER_NAME
α’αααα’αΆα
αααααΆαααααααααααααΆαααααΉαααααΌαααΆαααα‘αΎααααααααααααααααα·α αααααααΎ NETRA_HTTP_X_SOURCE_VALUE
α’αααα’αΆα
αααααααααααααααααααΆ X-Source ααΉαααααΌαααΆαααααααααααΆααααααΎαααα
ααααΆααα’ααα
αααα’αα»ααααΆαα±ααααΆαα ααα αΆαααααααΆααΆααααααααααααααααΌαααΆαα ααα αΆαααααΎαααααΆαα ααΌααΆαααααααΆαα αααααΆααααα’αααα’αΆα ααααΎααΆαα αααα»αααααΆαααα α αΎαααααααααΆαα αααα»ααααααα ααα» αα·αααααααα
ααααΌαα ααΆα ααα αα·ααααααααΆααααα»ααααα Netramesh
Netramesh ααΆααααΆαααΆαα»ααααΆααααΈαα ααΈαα½α netra-init αααααα
αααΆαααααααΆαααΎααααΈααααΆααα
αΆααα
ααΆα
αααα ααΆααααααΎ INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS
.
α§ααααααααααααΆααααααααα·ααααα½αα±ααα
αΆααα’αΆααααααααααα - ααΆααααααααααΌααααα’αΆα
ααΎαααΆαα ααααα·αααΎα’αααααααΎ Netramesh ααΆαααααα»ααααααΆααααΆααααααΌααα·ααΆαααΆαααΆαααΆα ααααα
αααα»αααα·ααΆααΆαααα·ααααα α’αααα’αΆα
αααααΆαα»αααααΆα αα·αααΎαααααΎαααΆαααααΌααααα’αΆα
ααααααΆααααααααΎα’αααα NETRA_INBOUND_PROBABILITY
ΠΈ NETRA_OUTBOUND_PROBABILITY
(ααΈ α ααα α‘)α αααααααααΆαααΎαααΊ 0 (α
ααΆα
αααααΆααα’ααααααΌαααΆαααααΆααα
αΆαα)α
αααααΆααααΈααΆαααααΆααα
αΆααααααααααα netra sidecar ααα½αααααΆααααααΆααααααΈ αα·αααααΎααααΆαα SO_ORIGINAL_DST
αααααΎαααααααΎααααΈααα½αααΆαααααα
ααΎαα αααααΆαααα Netra ααΎαααΆαααααΆααααααΈαα
ααΆααα’αΆααααααΆα IP ααΎα α αΎααααααΎαααααΆαααααα TCP ααΈαααααΌααααΆαααΆααΈ αααααααΆααααΆααα
ααΆα
ααααααααααααΆααα ααααα·αααΎα
αααααααΌαααΆααααααααΆ HTTP ααα Netra ααααΆααΆαααα αα·αααΆαααΆαααΆα ααααα·αααΎααΆααα·ααΆα HTTP αααΆααα Netra ααΉααααααααα
TCP α αΎαααααΌααααΈααααααααααααΆααΆαα
ααΆααααααΎαααααΆα ααααΆαα’αΆααααα
αααααΆααααΈααα½αααΆαααααααΆαααΆαααΆαααΆα
αααΎααα
αααα»α Jaeger αααα»αα
ααααα½αααΆαααααΆα ααααααααααα’αααααααααα
αααα»αααααααααα ααα»ααααααααα·αααΎααααααααααααα’ααααααα»αααααΆαα α αΎαααΆαααΆαααΆαααΆαααααα·αααα»ααα½ααααα αααααΆααααααΌααααα»αααΆαα·ααααααΆαα·α
αα
ααΆαααΆααααα½ααααααα ααΆααα·ααΈααααΌαααΆαααΎααααΈααααΎααΏααααα
ααααα·αααΎα’ααααααα»αααααΎ Elasticsearch ααΎααααΈαααααΆαα»αα
αααααααΆαααΆαααΆα α’αααα’αΆα
ααααΎ
ααααααααΎ Netramesh
Netra α’αΆα
βααααΌαβααΆαβααααααβαααΆαβααΆαβαααα½αβαα
βαααα»αβααααΆβααΆβαα½αβαααβααααΎαβααΆαβαααβαααααααΈβααΆβαα½αβα α’αααα’αΆα
ααΎαα§ααΆα ααααα½αα
αα αααααα Netra αα·αααΆαααααααΆααααα»αααΆαα’αα»αααααααααααααααααααα·ααΌα sidecars αα ααΆααααααΆααααααααα ααα»ααααααΆααααααΆααααααΆααααΆαα’αα»ααααα
α’ααΆαααααα Netramesh
ααααα
ααααΆαα
αα αααα’ααΆαα Netramesh ααΉαααΆαααααα·ααΈααΆααααααΆαααααααα·ααΈαααααααα αααα ααΈ HTTP α ααααΌα L7 ααΉαααΆααααα»ααααααΆααααααα
ααααΎ Netramesh ααααα·αααΎα’ααααα½αααααααααα αΆααααααααααΆ α αΎααααααααααΎααααααΆααααα½α αα·αααΆαααααααααααα
ααααα: www.habr.com