Giter Club home page Giter Club logo

Comments (1)

SOF3 avatar SOF3 commented on August 16, 2024

See USAGE.txt:

      --jaeger-storage-plugin-address string                                 storage plugin grpc server bind address (default ":17271")
      --jaeger-storage.grpc-storage.server string                            The remote storage gRPC server address as host:port

and the diagram in DEPLOY.md:

image

jaeger-storage-plugin-address is the address that the storage plugin listens on, to serve requests from "Jaeger Query UI". In the case of helm chart, "Jaeger Query UI" and "Kelemetry storage plugin" are deployed as sidecar containers of the same pod, so this is always :17271 (I think we could make this localhost:17271 since sidecar containers are on the same network stack, but it is not necessary to change this for now).

The options starting with --jaeger-storage.{SPAN_STORAGE_TYPE}.* are options that determine how "Kelemetry storage plugin" connects to "Jaeger storage". In the case of helm chart with Badger DB, since frontend pods are stateless but Badger is a single-instance database, we need to run the database in a single-pod statefulset so that multiple frontend instances access the Badger volume through the same process (see https://www.jaegertracing.io/docs/1.47/deployment/#remote-storage-component for explanation):

graph LR
  subgraph frontend-pod-0
    jaeger-query-0 --> storage-plugin-0
  end
  subgraph frontend-pod-1
    jaeger-query-1 --> storage-plugin-1
  end
  subgraph frontend-pod-2
    jaeger-query-2 --> storage-plugin-2
  end
  storage-plugin-0 --> remote-badger
  storage-plugin-1 --> remote-badger
  storage-plugin-2 --> remote-badger
  subgraph badger [badger node]
    remote-badger --> badger-volume
  end
Loading

We cannot directly let jaeger-query-* access remote-badger because remote-badger is a native Jaeger image that does not know how to perform trace transformation, but we cannot directly let storage-plugin-* access badger-volume because that would cause concurrent access to the same badger DB from multiple processes.

If you use a distributed database instead of Badger, the helm chart will no longer generate the kelemetry-storage StatefulSet but call the database directly.

from kelemetry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.