Skip to content

Discuss use of OpenTelemetry in Mojaloop. #121

@bushjames

Description

@bushjames

Raised by @vijayg10 and @kalinkrustev.

See https://opentelemetry.io/

Current Mojaloop codebase uses a system based on w3c recommendations for distributed tracing (https://www.w3.org/TR/trace-context-1/). See: https://github.com/mojaloop/mojaloop-specification/blob/c65d78961d204e19a7afa3aa84d646ac8ba54e93/fspiop-api/documents/Tracing%20v1.0.md

(OpenTelemetry is a set of tools (SDK etc...) for implementing distributed tracing based on this standard also.)

Current solution does not propagate trace headers across kafka topics.

Proposed solution is to use OpenTelemetry SDK to handle this.

Also proposed it the possibility to use OpenTelemetry to improve the detail provided in existing traces by utilising OT zero-code option enabled by OT k8s operator and pod annotations. OT operator adds init container which mounts OT SDK in main container and sets node env var to load this at startup. (this may require changes to master HEML charts and/or values files to enable). Some discussion about how to best expose this functionality to adopters/users. Currently all deps are deployed separately. Adding OT to backing services chart(s) is acceptable.

Note: Current solution was based on indexing traces in elastic search. ES has turned out to not be a cheap or easy to use at production scale. We may want to consider changing what we deploy to a newer, more appropriate solution for storing and analysing trace data.

No objections raised from anyone present on DA call.

Conversation to continue at next available DA session:

  1. OT SDK did not perform "well", fast.
  2. OT may not be suitable for use in production.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions