Comments (1)
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](https://private-user-images.githubusercontent.com/19623715/254764255-89f0a518-3e4c-4523-b7e6-8ce9095c6545.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3NzU4NzEsIm5iZiI6MTcyMzc3NTU3MSwicGF0aCI6Ii8xOTYyMzcxNS8yNTQ3NjQyNTUtODlmMGE1MTgtM2U0Yy00NTIzLWI3ZTYtOGNlOTA5NWM2NTQ1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE2VDAyMzI1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMwOWJiYjRlMDIyYjdlYTc5ZDY5NmUzYjRhZGU5MTgxZjVjYTVmNjg1MDMwOGU3OTAxZDBhNWUxOWRiMDU3MmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YAerDtpJ_Nm6Tfx5glt_cyjvperwFa7pzjK8h0DItQg)
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
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)
- kelemetry-consumer and kelemetry-kelemetry-frontend CrashLoopBackOff HOT 2
- metric "diff_decorator_retry_count" was not initialized HOT 1
- ERROR: Failed to init storage factory HOT 18
- Add integration tests for Helm charts
- Audit log is not missed in the tracing data HOT 4
- etcd CrashLoopBackOff and health check failed HOT 3
- Move linking to frontend
- how to aggregate multicluster event by kelemetry HOT 1
- kelemetry-jaeger-query-1 keep restarting in dev deployment HOT 10
- how to configure the storageBackend to use elasticsearch HOT 1
- how to enable extension trace from apiserver in chart
- Deploy using helm chart failed HOT 1
- jaeger ui no data HOT 1
- jaeger UI Service count is 8 HOT 3
- Some questions about getting started with the project HOT 2
- etcd is easily overloaded HOT 2
- Links are prematurely merged during Search
- support for redis HOT 1
- Use admission webhooks for diff
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kelemetry.