Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.

Commit

Permalink
demo: grpc based remote storage for jaeger collector
Browse files Browse the repository at this point in the history
Signed-off-by: Arunprasad Rajkumar <ar.arunprasad@gmail.com>
  • Loading branch information
arajkumar committed Sep 12, 2022
1 parent 8ad5f95 commit c93d12d
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docker-compose/jaeger-promscale-demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Hot R.O.D. - Rides on Demand

This is a demo application that consists of several microservices and illustrates
the use of the OpenTracing API. It can be run standalone, but requires Jaeger backend
to view the traces. A tutorial / walkthrough is available:
* as a blog post [Take OpenTracing for a HotROD ride][hotrod-tutorial],
* as a video [OpenShift Commons Briefing: Distributed Tracing with Jaeger & Prometheus on Kubernetes][hotrod-openshift].

## Features

* Discover architecture of the whole system via data-driven dependency diagram
* View request timeline & errors, understand how the app works
* Find sources of latency, lack of concurrency
* Highly contextualized logging
* Use baggage propagation to
* Diagnose inter-request contention (queueing)
* Attribute time spent in a service
* Use open source libraries with OpenTracing integration to get vendor-neutral instrumentation for free

## Running

### Run everything via `docker-compose`

* Download `docker-compose.yml` from https://github.com/timescale/promscale/blob/master/docker-compose/jaeger-promscale-demo/docker-compose.yaml
* Run Jaeger backend and HotROD demo with `docker-compose -f path-to-yml-file up`
* Access Jaeger UI at http://localhost:16686 and HotROD app at http://localhost:8080
* Shutdown / cleanup with `docker-compose -f path-to-yml-file down`

[hotrod-tutorial]: https://medium.com/@YuriShkuro/take-opentracing-for-a-hotrod-ride-f6e3141f7941
[hotrod-openshift]: https://blog.openshift.com/openshift-commons-briefing-82-distributed-tracing-with-jaeger-prometheus-on-kubernetes/
55 changes: 55 additions & 0 deletions docker-compose/jaeger-promscale-demo/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
version: '3.0'

services:
db:
image: timescale/timescaledb-ha:pg14-latest
environment:
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
# ports:
# - 5432:5432/tcp

promscale:
# TODO: Use docker image with Jaeger gRPC remote store support after 0.14.0 release.
image: timescale/promscale:latest
restart: on-failure
depends_on:
- db
environment:
PROMSCALE_DB_URI: postgres://postgres:password@db:5432/postgres?sslmode=allow
PROMSCALE_TRACING_OTLP_SERVER_ADDRESS: ":9202"
# ports:
# - 9201:9201/tcp
# - 9202:9202/tcp

jaeger-query:
depends_on:
- promscale
restart: on-failure
image: jaegertracing/jaeger-query:1.37.0
environment:
SPAN_STORAGE_TYPE: grpc-plugin
GRPC_STORAGE_SERVER: promscale:9202
ports:
- "16686:16686"

hotrod:
depends_on:
- jaeger-collector
image: jaegertracing/example-hotrod:1.37.0
environment:
JAEGER_ENDPOINT: http://jaeger-collector:14268/api/traces
ports:
- "8080-8083:8080-8083"

jaeger-collector:
depends_on:
- promscale
restart: on-failure
image: jaegertracing/jaeger-collector:1.37.0
environment:
SPAN_STORAGE_TYPE: grpc-plugin
GRPC_STORAGE_SERVER: promscale:9202
# ports:
# - "6831:6831/udp"
# - "14268:14268"

0 comments on commit c93d12d

Please sign in to comment.