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

Commit

Permalink
Remove obsoleted jaeger-query-proxy
Browse files Browse the repository at this point in the history
With upstream support for remote gPRC storage plugins [1], our query
proxy is no longer required. Updated documentation to illustrate how to
use jaeger standalone.

[1]: jaegertracing/jaeger#3383
  • Loading branch information
JamesGuthrie committed Jan 26, 2022
1 parent c6d6feb commit b9039c7
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 208 deletions.
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -3,7 +3,6 @@
/prom-migrator*
/cmd/promscale/promscale
/cmd/prom-migrator/prom-migrator
/cmd/jaeger-query-proxy/jaeger-query-proxy
/dist
/vendor
/version.properties
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -43,6 +43,7 @@ We use the following categories for changes:
### Removed
- Remove deprecated `-promql-enable-feature` flag [#964]
- Remove deprecated leader election [#964]
- Remove obsoleted jaeger-query-proxy

### Fixed
- helm-charts: use fixed target port on svc-promscale [#1009]
Expand Down
29 changes: 0 additions & 29 deletions build/.goreleaser.yml
Expand Up @@ -21,11 +21,6 @@ builds:
main: ./cmd/prom-migrator/
id: prom-migrator
binary: prom-migrator
- env:
- CGO_ENABLED=0
main: ./cmd/jaeger-query-proxy/
id: jaeger-query-proxy
binary: jaeger-query-proxy

#don't publish scoop but overwrite the weird names
scoop:
Expand Down Expand Up @@ -115,17 +110,6 @@ archives:
windows: Windows
386: i386
amd64: x86_64
- id: jaeger-query-proxy
format: binary
builds:
- jaeger-query-proxy
name_template: "{{ .Binary }}_0.0.2_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}"
replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
checksum:
name_template: 'checksums.txt'
snapshot:
Expand Down Expand Up @@ -182,19 +166,6 @@ dockers:
image_templates:
- "timescale/prom-migrator:0.0.3"
- "timescale/prom-migrator:latest"
- ids: []
skip_push: false
dockerfile: ./build/jaeger-query-proxy/Dockerfile
extra_files:
- .git
- go.sum
- go.mod
- pkg
- cmd
image_templates:
- "timescale/jaeger-query-proxy:0.0.2"
- "timescale/jaeger-query-proxy:latest"


docker_manifests:
- name_template: 'timescale/promscale:{{ .Tag }}'
Expand Down
27 changes: 0 additions & 27 deletions build/jaeger-query-proxy/Dockerfile

This file was deleted.

101 changes: 0 additions & 101 deletions cmd/jaeger-query-proxy/main.go

This file was deleted.

3 changes: 0 additions & 3 deletions cmd/jaeger-query-proxy/sample-config.yaml

This file was deleted.

54 changes: 7 additions & 47 deletions docs/tracing.md
Expand Up @@ -217,62 +217,22 @@ Then, point your browser to [http://127.0.0.1:8080/] and login with username `ad

### Setting up Jaeger UI

In order for the Jaeger UI to show traces stored in Promscale we leverage Jaeger’s support for [gRPC storage plugins](https://github.com/jaegertracing/jaeger/tree/master/plugin/storage/grpc). Our plugin acts as a simple proxy between Jaeger and Promscale. It does not contain any logic. All the processing work is done in the Promscale Connector.
In order for the Jaeger UI to show traces stored in Promscale we leverage Jaeger’s support for [gRPC storage plugins](https://github.com/jaegertracing/jaeger/tree/master/plugin/storage/grpc).

This plugin only implements the APIs for Jaeger to read traces from Promscale. It does not implement the APIs for Jaeger to write traces to Promscale. To send Jaeger traces to Promscale use the OpenTelemetry Collector instead as explained [here](#jaeger-instrumentation).
To enable Jaeger to use the plugin you need to provide jaeger-query with the following:

Jaeger's gRPC plugin system works by executing the binary for the plugin when enabled in the configuration file. For that reason when deploying as a container, Jaeger and the binary need to be on the same container image. And since Jaeger doesn’t package all gRPC storage plugins in its default Docker images, we provide an image that includes the upstream Jaeger Query component (not the rest since they are not needed) and Promscale’s gRPC storage plugin for Jaeger. The image is available on [DockerHub](https://hub.docker.com/r/timescale/jaeger-query-proxy/tags). We recomment using the `latest` image

To enable Jaeger to use the plugin you need to pass the following parameters:

* `span-storage.type=grpc-plugin`
* `grpc-storage-plugin.binary=<path-to-jaeger-query-proxy-binary>`, pointing to the location of the plugin binary
* `grpc-storage-plugin.configuration-file=<config_file>`, a path pointing to the plugin's configuration file.
* environment variable `SPAN_STORAGE_TYPE=grpc-plugin`
* flag `grpc-storage.server=<promscale-host>:<otlp-grpc-port>`

This is how you would run the container with Docker:

```bash
docker run --name promscale-jaeger -d -p 16686:16686 -v <path-to-plugin-config-file>:/configs/jaeger-promscale-query.yaml --network promscale-timescaledb timescale/jaeger-query-proxy:latest
```
The container already sets the required values for those parameters.

The Jaeger UI would be accessible on port 16686.

If you run Jaeger directly on a host, you first need to download the plugin binary for your system. The binaries are available under the assets of the latest 0.7 Promscale release on [Github](https://github.com/timescale/promscale/releases). Then you have to run the binary as follows:

```bash
./jaeger-query-plugin --span-storage.type=grpc-plugin --grpc-storage-plugin.binary=<path-to-jaeger-query-proxy-binary> --grpc-storage-plugin.configuration-file=<config_file>
```

The parameters in the plugin configuration file are the following (only the first is mandatory):

```yaml
grpc-server: <promscale-host>:<otlp-grpc-port>
#connection-timeout: 5s
#grpc-server-host-override: ""
#cafile: ""
#tls: false
docker run --name jaeger -d -p 16686:16686 -e SPAN_STORAGE_TYPE=grpc-plugin --network promscale-timescaledb jaegertracing/jaeger-query:1.30.0 --grpc-storage.server=<promscale-host>:<otlp-grpc-port>
```

If you followed the instructions described in this document then otlp-grpc-port will be 9202. For example

```yaml
grpc-server: localhost:9202
```

If you run on Kubernetes, create a ConfigMap like the one below

```yaml
​​apiVersion: v1
kind: ConfigMap
metadata:
name: promscale-jaeger
data:
jaeger-promscale-query.yaml: |
grpc-server: <promscale-service>:9202
```
If you followed the instructions described in this document then otlp-grpc-port will be 9202.

Then make this ConfigMap available to the promscale-jaeger container through a volumeMount. Read more on how to do that in the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/configmap/#configmaps-and-pods).
The Jaeger UI will be accessible on port 16686.

### Setting up Grafana

Expand Down

0 comments on commit b9039c7

Please sign in to comment.