Skip to content

Spring boot support for correlation IDs #2343

@kelapure

Description

@kelapure

End-to-End request flow measurements are very important. A Correlation ID is used across request calls to track microservice call flow to 1. nail down nasty bugs and 2. track the originating event and understand the latency between the edge service to the API Gateway and from the API gateway fanout to all the downstream services. This is achieved by inserting correlation GUIDs and transaction IDs in HTTP headers and tracking them across requests.

  • Correlation IDs can be implemented as servlet filters. A better way to inject this cross cutting concern across microservices code is by defining an aspect. Building on the servlet filter approach, such a capability is provided by the com.ofg:micro-infra-spring-base module. The CorrelationID support in the 4finance repo. works across Spring Reactor threads, Servlet 3.0, async servlets, Spring MVC Controllers, Spring RestTemplate and Apache Camel.
  • The finagle-zipkin project provides the instrumentation for google’s Dapper-style distributed tracing in services. See Zipkin for a full fledged tracing system.
  • Cloud Foundry services like AppDynamics and NewRelic also provide this capability by automatically instrumenting the java code via javaagent’s to insert these unique IDs and then visualize the request flow using a dashboard.

Can we get the capability of leveraging correlation IDs to enable request tracing across process boundaries natively in spring boot.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions