Technology sharing

Sleuth - link tracking

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 Introduction to link typum

  In microservio magnarum systematum constructione, systema in multos modulos scinditur. Modi hi sunt responsabiles diversis functionibus et in systemate coniunguntur quae tandem locupletem functionem praebere possunt. In hac architectura postulatio saepe multa officia implicat. Interrete applicationes in diversis modulorum modulorum programmatibus constructae sunt. Hae moduli programmata a diversis iugis explicari possunt, varia programmandi linguarum usu perfici possunt, et in mille ministrantium per plures varias notas Centre distribui possunt, quod significat etiam futurum esse. nonnullae difficultates cum hac forma architecturae;

  • Quomodo quaestiones cito invenire?
  • Quomodo ictum culpae determinare?
  • Quomodo exstat servitium clientelas et ratio dependentiarum?
  • Quomodo analysis nexus perficiendi quaestiones et capacitatem realem temporis disponendi?

Vinculum distributum repetens (Distributum Tracing) est petitionem distributam reddere ad nexum vocationis, colligationem, exsecutionem vigilantiam faciendam, ac centraliter vocatum statum petitionis distributae ostendat. Exempli gratia, tempus in singulis ministerii nodi impenditur, quo machina petitio pervenit, postulatio status cuiusque muneris nodi, etc.

Communis paginae technologiae typum includunt quae sequuntur:
  • cattus Apertum oriuntur Dianping et fundaturJava Applicatio realis-tempus vigilantia suggestum elaboratum includit real-time applicationis vigilantia et negotia vigilantia. integrated Solutio est vigilantia efficiendi per codicem sepeliendi, ut interceptores, Filtra, etc. Valde praepotentique in codice, integratione altius sumptus. Periculum majus.
  • zipkin DependetTwitterFons apertus societatis, fons apertus distributus systematis semitarii adhibetur ad colligendas notitias sincere operarum ad solvendas micro- sicas. Latentia quaestiones in architecturae servitio includuntur: notitia collectio, repositio, perquisitio et praesentatio.Hoc productum combinesver-nubes-sleuthRelativum simplex est uti et facile ad integrationem, sed functiones eius sunt respective simplices.
  • punctum Pinpoint Fons apertus Coreanus est analysin vocatus catenam et applicationes vigilantia analyseos instrumentum ab injectione bytecode fundatum.FeaturesVarias obturaculum sustinet.UIMunera potentissima, nullum codicem intrusionem in accessu fine.
  • skywalking
    Skywalking Fons apertus localis est analysin vocatus catenam et applicatione vigilantia analyseos instrumentum ab injectione bytecode fundatum.Proprium est quod plures sustinetgenus obturaculum;UI Munus validum est et nulla intrusio in accessu ad finem codicis est.iam iunctisApacheincubator.
  • Sleuth
    SpringCloud Vinculum solutiones sequi in systematibus distributis praebet. 
Animadverte: SpringCloud alibaba Stack technologiam suam technologiam sequi non praebet, uti possumus Sleuth +
Zinkin Ad creare vinculum solutionem tracking

2 Sleuthquestus Coepi

2.1 Sleuthinducere

Praecipuum munus SpringCloud Sleuth est solutiones sequi in systematibus distributis.graviter mutuum accipit a Google
Dapper Consilium prius teneamus Sleuth termini et notiones affines in .
  • Trace
    per coetusTrace IdidenticalSpan Concatenatae ad formam arboris structurae.Ad postulationem efficiendam sequi, cum petitio systematis distributi perveneritingressum endpoint, ministerium compage vestigii tantum opus est ut unicum identifier postulationem efficiat (i.e.TraceId) Cum in systematis distributa Cum intra systema vagetur, compage semper hunc unicum valorem transitum servat, donec integra postulatio reddatur.Tum uti hoc modoUna identifier omnes petitiones coniungit simul ut nexum petitionis completae formet.
  • Span Repraesentat unitates fundamentales operis.Ad numerandum dilationem uniuscuiusque processus unitatis, cum petitio ad singula opera componenda pervenittempus, etiam per singularem identificem (SpanId ) suum initium, peculiarem processum ac finem notare.passSpanIdprincipium et finemFinis indicatione, numerare potesspan Tempus praeter vocationem, etiam rei nomen accipere possumus.Requisiti informationes, etc.metadata.
  • Annotation
    Utere ut eventus notare per aliquod temporis spatium.
    cs *Clientem Mitte) Cliens petentibus procedit et vitam petendi incipit
    sr*Servo accepistis) Servus petitionem accipit et processus incipit; sr*cs = Retiacula latency (tempus muneris vocatio)
    ssServo Mitte) Minister processui absolvit et paratus est ad clientem mittendum;ss - sr = Request dispensando tempore in servo
    cr*Clientem Reveved) Cliens responsum a servo accipit et precibus finit. cr - sr =totalis tempus postulavit

2.2 Sleuthquestus Coepi

Nomen Microservice traceId, spanid; Utrum ad output nexus eventus investigationis ad tertiam partem suggestum?
[api-gateway,3977125f73391553,3977125f73391553, false]
[service-order,3977125f73391553,57547b5bf71f8242, false]
[service-product.
Deinde, integrare per causas ante consilium Sleuth causam introductoriae scripturae comple.
Mutare parentis project introductio Sleuth rely
  1. <!--链路追踪 Sleuth-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-sleuth</artifactId>
  5. </dependency>
Incipiens a microservio et vocatione instrumenti, in console animadvertere possumus sleuth Iniuriarum output est
ubi c61d4a753370cbeb is TraceId , 0e06445e055ed94f is SpanId, global TraceId in ordine ad nexus vocantes componendos vocatus est. Tigna singula microservici diligenter examinando, non difficile est videre modum postulati specifici.

Fasciculi tabularum visi non est bona ratio.

3 ZipkinIntegrationem

3.1 ZipKininducere

Zipkin est Twitter Aperto fonte project fundatur Per Google Dapper impletum, tribuitur ut sincere notitias officiorum colligendis ad solvendas latency difficultates in architectura microservitii, inter notitias. Collecta, copia, quaere et ostenta

Nos uti possumus ad colligendas notitias semitas petendi nexus in singulis servientibus, et utere ceteris API interfacientibus, ut nos adiuvet in interrogatione investigationis notitiae investigationis ad exsequendum programmatis distributi vigilantiam, ut cito detegat incrementum in mora. systema.
In addition ut API evolutionem-orientatur Praeter interfacem, etiam opportunum praebet UI partes adiuvant nos intuenti quaerentes informationes investigationes ac analyses petendi nexus details.
Zipkin pluggable notitia repono praebet: In-Memoria MySql Cassandra tum Elasticsearch

In pictura supra ostendit Zipkin infrastructure, quod maxime consistit 4 Core composita:
  • Collector: Collector componentium, quod maxime adhibetur ad processus informationes investigationes ab externis missis et ad informationes illas convertendas Zipkinintus processionaliter Spanforma ad ulteriora repositionis, analysi, ostentationis aliaque functiones sustentare.
  • Repono: Repono pars, quae maxime procedit ad informationes investigationes receptas a collectore. Per defaltam, haec notitia in memoria reponenda erit.Etiam hoc consilium repositionis mutare possumus ut informationes investigationum in datorum congregem adhibendo aliis componentibus repono.
  • QUIETUS APIAPI Pars, quae maxime adhibetur ad accessum internum praebendum externum.Exempli causa, notitias sequi clienti vel externoRatio accedendi vigilantia, etc.
  • Web UIUI componentia, secundumAPI Accensus superior applicatio componentis impletur.passUIUtentes componentes commode et intuitive investigare et resolvere possuntAnalyze tracking notitia.
Zipkin in duos terminos dividitur, unus est Zipkin In calculonis servi unus est Zipkin client, client applicatio microservices. In server configurare clientis URL Oratio in microservice configurabitur semel vocatio inter officia fit. Audiens Sleuth audit et generat correspondentem Trace et Span Nuntio mittitur servo.

3.2 ZipKinServo institutionem

Nec. 1 step : download ZipKin of* hydria Sacculi
https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec

 Visita domicilium supra ut ahydriaSacculum, hoc estZipKinserver latushydriaSacculi

Nec. 2 step : Per lineam rectam, inire mandatum hoc committitur ZipKin Servo
java -jar zipkin-server-2.12.9-exec.jar

Nec. 3 Gradus: Access via pasco http://localhost:9411 accessum

3.3 ZipkinClientem integrationem

ZipKin clientem et Sleuth Integratio valde simplex est, modo dependentias et configurationes in microserviis suis additis.

Nec. 1 Gradus: adde clientelas inter microservice
  1. <!--zipkin-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-zipkin</artifactId>
  5. </dependency>
Nec. 2 Gradus: Add configuratione
  1. # sleuth 和 zipkin 相关配置
  2. spring:
  3. zipkin:
  4. base-url: http://127.0.0.1:9411/ #zipkin server的请求地址
  5. discoveryClientEnabled: false #让nacos把它当成一个URL,而不要当做服务名
  6. sleuth:
  7. sampler:
  8. probability: 1.0 #采样的百分比
Nec. 3 step : Accessum microservice interface
http://localhost:7000/order-serv/order/prod/1

Nec. 4 step : accessum zipkin of* UI interface, observationis effectus

Nec. 5 Gradus: Clica in una historiarum descriptionum observare singula itinera visitandi.

4 ZipKinData perseverantia

Servo Zipkin servabit notitias investigationes notitias memoriae per defaltam, sed haec methodus ad ambitus productioni non convenit. Zipkin subsidia perseverantia tracking data est mysql database or elasticsearch medium.

4.1 ususmysqlData perseverantia deducendi

Nec. 1 step : creo mysql notitia environment
  1. CREATE TABLE
  2. IF
  3. NOT EXISTS zipkin_spans (
  4. `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this
  5. means the trace uses 128 bit traceIds instead of 64 bit',
  6. `trace_id` BIGINT NOT NULL,
  7. `id` BIGINT NOT NULL,
  8. `name` VARCHAR ( 255 ) NOT NULL,
  9. `parent_id` BIGINT,
  10. `debug` BIT ( 1 ),
  11. `start_ts` BIGINT COMMENT 'Span.timestamp(): epoch micros used for endTs
  12. query and to implement TTL',
  13. `duration` BIGINT COMMENT 'Span.duration(): micros used for minDuration
  14. and maxDuration query'
  15. ) ENGINE = INNODB ROW_FORMAT = COMPRESSED CHARACTER
  16. SET = utf8 COLLATE utf8_general_ci;
  17. ALTER TABLE zipkin_spans ADD UNIQUE KEY ( `trace_id_high`, `trace_id`, `id` ) COMMENT 'ignore insert on duplicate';
  18. ALTER TABLE zipkin_spans ADD INDEX ( `trace_id_high`, `trace_id`, `id` ) COMMENT 'for joining with zipkin_annotations';
  19. ALTER TABLE zipkin_spans ADD INDEX ( `trace_id_high`, `trace_id` ) COMMENT 'for
  20. getTracesByIds';
  21. ALTER TABLE zipkin_spans ADD INDEX ( `name` ) COMMENT 'for getTraces and
  22. getSpanNames';
  23. ALTER TABLE zipkin_spans ADD INDEX ( `start_ts` ) COMMENT 'for getTraces
  24. ordering and range';
  25. CREATE TABLE
  26. IF
  27. NOT EXISTS zipkin_annotations (
  28. `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this
  29. means the trace uses 128 bit traceIds instead of 64 bit',
  30. `trace_id` BIGINT NOT NULL COMMENT 'coincides with
  31. zipkin_spans.trace_id',
  32. `span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',
  33. `a_key` VARCHAR ( 255 ) NOT NULL COMMENT 'BinaryAnnotation.key or
  34. Annotation.value if type == -1',
  35. `a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller
  36. than 64KB',
  37. `a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if
  38. Annotation',
  39. `a_timestamp` BIGINT COMMENT 'Used to implement TTL;
  40. Annotation.timestamp or zipkin_spans.timestamp',
  41. `endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is
  42. null',
  43. `endpoint_ipv6` BINARY ( 16 ) COMMENT 'Null when Binary/Annotation.endpoint
  44. is null, or no IPv6 address',
  45. `endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint
  46. is null',
  47. `endpoint_service_name` VARCHAR ( 255 ) COMMENT 'Null when
  48. Binary/Annotation.endpoint is null'
  49. ) ENGINE = INNODB ROW_FORMAT = COMPRESSED CHARACTER
  50. SET = utf8 COLLATE utf8_general_ci;
  51. ALTER TABLE zipkin_annotations ADD UNIQUE KEY ( `trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp` ) COMMENT 'Ignore insert on duplicate';
  52. ALTER TABLE zipkin_annotations ADD INDEX ( `trace_id_high`, `trace_id`, `span_id` ) COMMENT 'for joining with zipkin_spans';
  53. ALTER TABLE zipkin_annotations ADD INDEX ( `trace_id_high`, `trace_id` ) COMMENT 'for getTraces/ByIds';
  54. ALTER TABLE zipkin_annotations ADD INDEX ( `endpoint_service_name` ) COMMENT 'for getTraces and getServiceNames';
  55. ALTER TABLE zipkin_annotations ADD INDEX ( `a_type` ) COMMENT 'for getTraces';
  56. ALTER TABLE zipkin_annotations ADD INDEX ( `a_key` ) COMMENT 'for getTraces';
  57. ALTER TABLE zipkin_annotations ADD INDEX ( `trace_id`, `span_id`, `a_key` ) COMMENT 'for dependencies job';
  58. CREATE TABLE
  59. IF
  60. NOT EXISTS zipkin_dependencies ( `day` DATE NOT NULL, `parent` VARCHAR ( 255 ) NOT NULL, `child` VARCHAR ( 255 ) NOT NULL, `call_count` BIGINT ) ENGINE = INNODB ROW_FORMAT = COMPRESSED CHARACTER
  61. SET = utf8 COLLATE utf8_general_ci;
  62. ALTER TABLE zipkin_dependencies ADD UNIQUE KEY ( `day`, `parent`, `child` );
Nec. 2 step : ad startup ZipKin Servo quando , Specificare data servare mysql Informationes
  1. java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=mysql --
  2. MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_DB=zipkin --MYSQL_USER=root -
  3. -MYSQL_PASS=root

4.2 ususelasticsearchData perseverantia deducendi

Nec. 1 step : download elasticsearch
download link: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-4

 

Nec. 2 step : Start up elasticsearch

 

Vide: localhost: 9200

Si visualization opus est, Kibana install potes

Nec. 3 step : ad startup ZipKin Servo Data specie salvandi elasticsearch Informationes
java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=elasticsearch --ESHOST=localhost:9200

Quod ad usum visivum elasticae inquisitionis referri potest:Installatio et usus elasticae inquisitionis sub fenestris, et institutionem diarii kibana_windowskibanna-CSDN