instruction: How do you implement comprehensive microservices observability?
output: Deployment | Jaeger Docs Introduction &cir; Getting Started &cir; Features Architecture &cir; APIs &cir; Sampling &cir; SPM &cir; Terminology Deployment &cir; Configuration &cir; User Interface &cir; On Kubernetes &cir; On Windows &cir; Security Storage Backends &cir; Memory &cir; Badger &cir; Cassandra &cir; ElasticSearch &cir; Kafka &cir; OpenSearch Operations &cir; Monitoring &cir; Troubleshooting &cir; Performance Tuning &cir; Tools Frequently Asked Questions External Guides &cir; Migration Guides Versions 2.9&nbsp;&nbsp;( latest ) 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.72&nbsp;&nbsp;( latest ) 1.71 1.70 1.69 1.68 1.67 1.66 1.65 1.64 1.63 1.62 1.61 1.60 1.59 1.58 1.57 Demo Download Blog Project Get involved Get in touch Mentorships Mentorships - For Mentees Mentorships - For Mentors News Roadmap Branding Report security issue Main GitHub repo Docs GitHub repo We stand with our friends and colleagues in Ukraine. To support Ukraine in their time of need visit this page . Introduction &cir; Getting Started &cir; Features Architecture &cir; APIs &cir; Sampling &cir; SPM &cir; Terminology Deployment &cir; Configuration &cir; User Interface &cir; On Kubernetes &cir; On Windows &cir; Security Storage Backends &cir; Memory &cir; Badger &cir; Cassandra &cir; ElasticSearch &cir; Kafka &cir; OpenSearch Operations &cir; Monitoring &cir; Troubleshooting &cir; Performance Tuning &cir; Tools FAQs External Guides &cir; Migration Guides Deployment Version&nbsp;&nbsp; 2.9 Latest Go to the latest 1.x version See also: Configuration User Interface On Kubernetes On Windows Security Jaeger backend is released as a single binary or container image (see Downloads ). Despite that, it can be configured to operate in different roles , such as all-in-one , collector , query , and ingester (see Architecture ). Configuration An explicit YAML configuration file must be provided via the --config command line argument (see Configuration ). When running in a container, the path to the config file must be mapped into the container file system (the -v ... mapping below): docker run --rm --name jaeger \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ -p 5778:5778 \ -p 9411:9411 \ -v /path/to/local/config.yaml:/jaeger/config.yaml \ jaegertracing/jaeger:2.9.0 \ --config /jaeger/config.yaml Scaling Both Jaeger collector and query are stateless and thus many instances can be run in parallel. Upgrades Since Jaeger microservices (components) are stateless, all the state lives in the data store(s). When no breaking changes are introduced in a release, the order of upgrades for individual Jaeger components does not matter. We try to avoid any kinds of breaking changes in new versions, but sometimes they are unavoidable and will be clearly called out in the release notes. In those cases the safest upgrade order is by starting from the end of the ingestion pipeline: first query , then ingester if using Kafka, then collector . This order ensures that the receiving component is running on a newer version and is capable of understanding any protocol changes from the other components earlier in the pipeline before those are upgraded. Finally, sometimes we introduce storage schema changes that may require some proactive steps before upgrading Jaeger components. Such changes will always be marked as breaking changes in the release notes and contain specific instructions for upgrading. Management Ports The following intra-oriented ports are exposed by default (can be changed via configuration): Port Protocol Endpoint Function 8888 HTTP /metrics metrics port for exposing metrics which can be scraped with Prometheus compatible systems 8889 HTTP /metrics ingester port for reading data from Kafka topics and writing to a supported backend 13133 HTTP /status Healthcheck port via the healthcheckv2 extension 27777 HTTP / expvar port for process level metrics per the Go standards See APIs for the list of all API ports. SPM Service Performance Monitoring (SPM) requires a deployment of Prometheus-compatible metrics storage (see SPM page ). Service Maps In order to display service dependency diagrams, production deployments need an external process that aggregates data and computes dependency links between services. Project spark-dependencies &#8201; external link is a Spark job which derives dependency links and writes them directly to the storage. Community Getting in touch Via chat Project video meetings Report issues on GitHub Report a security issue &copy; 2025 The Jaeger Authors. Documentation distributed under CC-BY-4.0 . &copy; 2025 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.