mirror of https://github.com/go-redis/redis.git
67 lines
1.9 KiB
Markdown
67 lines
1.9 KiB
Markdown
# Example for go-redis OpenTelemetry instrumentation
|
|
|
|
This example demonstrates how to monitor Redis using OpenTelemetry and
|
|
[Uptrace](https://github.com/uptrace/uptrace). It requires Docker to start Redis Server and Uptrace.
|
|
|
|
See
|
|
[Monitoring Go Redis Performance and Errors](https://redis.uptrace.dev/guide/go-redis-monitoring.html)
|
|
for details.
|
|
|
|
**Step 1**. Download the example using Git:
|
|
|
|
```shell
|
|
git clone https://github.com/go-redis/redis.git
|
|
cd example/otel
|
|
```
|
|
|
|
**Step 2**. Start the services using Docker:
|
|
|
|
```shell
|
|
docker-compose pull
|
|
docker-compose up -d
|
|
```
|
|
|
|
**Step 3**. Make sure Uptrace is running:
|
|
|
|
```shell
|
|
docker-compose logs uptrace
|
|
```
|
|
|
|
**Step 4**. Run the Redis client example:
|
|
|
|
```shell
|
|
UPTRACE_DSN=http://project2_secret_token@localhost:14317/2 go run client.go
|
|
```
|
|
|
|
**Step 5**. Follow the link from the CLI to view the trace:
|
|
|
|
```shell
|
|
UPTRACE_DSN=http://project2_secret_token@localhost:14317/2 go run client.go
|
|
trace: http://localhost:14318/traces/ee029d8782242c8ed38b16d961093b35
|
|
```
|
|
|
|
![Redis trace](./image/redis-trace.png)
|
|
|
|
You can also open Uptrace UI at [http://localhost:14318](http://localhost:14318) to view available
|
|
spans, logs, and metrics.
|
|
|
|
## Redis monitoring
|
|
|
|
You can also [monitor Redis performance](https://uptrace.dev/opentelemetry/redis-monitoring.html)
|
|
metrics By installing OpenTelemetry Collector.
|
|
|
|
[OpenTelemetry Collector](https://uptrace.dev/opentelemetry/collector.html) is an agent that pulls
|
|
telemetry data from systems you want to monitor and sends it to APM tools using the OpenTelemetry
|
|
protocol (OTLP).
|
|
|
|
When telemetry data reaches Uptrace, it automatically generates a Redis dashboard from a pre-defined
|
|
template.
|
|
|
|
![Redis dashboard](./image/metrics.png)
|
|
|
|
## Links
|
|
|
|
- [Uptrace open-source APM](https://uptrace.dev/get/open-source-apm.html)
|
|
- [OpenTelemetry Go instrumentations](https://uptrace.dev/opentelemetry/instrumentations/?lang=go)
|
|
- [OpenTelemetry Go Tracing API](https://uptrace.dev/opentelemetry/go-tracing.html)
|