mirror of
https://github.com/grafana/grafana.git
synced 2024-11-21 16:38:03 -06:00
Tempo: Devenv update to support all features (#52728)
* Tempo devenv * Add logging to tempo devenv * Update readme * Formatting * Update loki image * Update tempo image
This commit is contained in:
parent
00ff61cb9e
commit
1592ea45b0
1
.gitignore
vendored
1
.gitignore
vendored
@ -74,6 +74,7 @@ public/css/*.min.css
|
||||
# devenv
|
||||
/devenv/docker-compose.yaml
|
||||
/devenv/.env
|
||||
/devenv/docker/blocks/tempo/tempo-data/
|
||||
|
||||
conf/custom.ini
|
||||
/conf/provisioning/**/custom.yaml
|
||||
|
@ -1,4 +1,7 @@
|
||||
Right now Tempo is before stable release so this uses :latest tag which means there can be changes depending on when
|
||||
you pull the image.
|
||||
|
||||
For adding some traces easily you can run Loki block and enable tracing (see ../loki-promtail/README.md)
|
||||
This devenv docker-compose.yaml will allow you to;
|
||||
- search traces
|
||||
- view traces
|
||||
- upload/download trace JSON files
|
||||
- view service graphs
|
||||
- view the APM table
|
||||
- search traces via Loki
|
||||
|
@ -1,8 +1,111 @@
|
||||
x-logging: &default-logging
|
||||
driver: loki
|
||||
options:
|
||||
loki-url: 'http://localhost:3100/api/prom/push'
|
||||
labels: namespace
|
||||
loki-relabel-config: |
|
||||
- action: replace
|
||||
source_labels: ["namespace","compose_service"]
|
||||
separator: "/"
|
||||
target_label: job
|
||||
- action: replace
|
||||
source_labels: ["container_name"]
|
||||
target_label: instance
|
||||
|
||||
version: "3"
|
||||
services:
|
||||
|
||||
db:
|
||||
image: grafana/tns-db:9c1ab38
|
||||
command:
|
||||
- '-log.level=debug'
|
||||
ports:
|
||||
- 0.0.0.0:8000:80
|
||||
environment:
|
||||
JAEGER_ENDPOINT: 'http://tempo:14268/api/traces'
|
||||
JAEGER_TAGS: job=tns/db
|
||||
JAEGER_SAMPLER_TYPE: const
|
||||
JAEGER_SAMPLER_PARAM: 1
|
||||
labels:
|
||||
namespace: tns
|
||||
logging: *default-logging
|
||||
|
||||
app:
|
||||
image: grafana/tns-app:9c1ab38
|
||||
command:
|
||||
- '-log.level=debug'
|
||||
- 'http://db'
|
||||
links:
|
||||
- db
|
||||
ports:
|
||||
- 0.0.0.0:8001:80
|
||||
environment:
|
||||
JAEGER_ENDPOINT: 'http://tempo:14268/api/traces'
|
||||
JAEGER_TAGS: job=tns/app
|
||||
JAEGER_SAMPLER_TYPE: const
|
||||
JAEGER_SAMPLER_PARAM: 1
|
||||
labels:
|
||||
namespace: tns
|
||||
logging: *default-logging
|
||||
|
||||
loadgen:
|
||||
image: grafana/tns-loadgen:9c1ab38
|
||||
command:
|
||||
- '-log.level=debug'
|
||||
- 'http://app'
|
||||
links:
|
||||
- app
|
||||
ports:
|
||||
- 0.0.0.0:8002:80
|
||||
environment:
|
||||
JAEGER_ENDPOINT: 'http://tempo:14268/api/traces'
|
||||
JAEGER_TAGS: job=tns/loadgen
|
||||
JAEGER_SAMPLER_TYPE: const
|
||||
JAEGER_SAMPLER_PARAM: 1
|
||||
labels:
|
||||
namespace: tns
|
||||
logging: *default-logging
|
||||
|
||||
tempo:
|
||||
image: grafana/tempo:latest
|
||||
command: ["-config.file=/etc/tempo.yaml"]
|
||||
ports:
|
||||
- "6831:6831"
|
||||
- "3101:3101"
|
||||
command:
|
||||
- --config.file=/etc/tempo.yaml
|
||||
- --search.enabled=true
|
||||
volumes:
|
||||
- ./docker/blocks/tempo/tempo.yaml:/etc/tempo.yaml
|
||||
- ./docker/blocks/tempo/tempo-data:/tmp/tempo
|
||||
ports:
|
||||
- "14268:14268" # jaeger ingest
|
||||
- "3200:3200" # tempo
|
||||
- "4317:4317" # otlp grpc
|
||||
- "4318:4318" # otlp http
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus:main
|
||||
command:
|
||||
- --config.file=/etc/prometheus.yaml
|
||||
- --web.enable-remote-write-receiver
|
||||
- --enable-feature=exemplar-storage
|
||||
volumes:
|
||||
- ./docker/blocks/tempo/prometheus.yaml:/etc/prometheus.yaml
|
||||
links:
|
||||
- app
|
||||
- db
|
||||
- loadgen
|
||||
ports:
|
||||
- "9090:9090"
|
||||
labels:
|
||||
namespace: monitoring
|
||||
logging: *default-logging
|
||||
|
||||
loki:
|
||||
image: grafana/loki:main
|
||||
command:
|
||||
- -config.file=/etc/loki/local-config.yaml
|
||||
- -table-manager.retention-period=1d
|
||||
- -table-manager.retention-deletes-enabled=true
|
||||
ports:
|
||||
- "3100:3100"
|
||||
labels:
|
||||
namespace: monitoring
|
||||
logging: *default-logging
|
||||
|
11
devenv/docker/blocks/tempo/prometheus.yaml
Normal file
11
devenv/docker/blocks/tempo/prometheus.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
static_configs:
|
||||
- targets: [ 'localhost:9090' ]
|
||||
- job_name: 'tempo'
|
||||
static_configs:
|
||||
- targets: [ 'tempo:3200' ]
|
@ -1,12 +1,12 @@
|
||||
auth_enabled: false
|
||||
metrics_generator_enabled: true
|
||||
|
||||
server:
|
||||
http_listen_port: 3101
|
||||
http_listen_port: 3200
|
||||
|
||||
distributor:
|
||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||
thrift_http: #
|
||||
grpc: # for a production deployment you should only enable the receivers you need!
|
||||
thrift_binary:
|
||||
@ -20,22 +20,42 @@ distributor:
|
||||
|
||||
ingester:
|
||||
trace_idle_period: 10s # the length of time after a trace has not received spans to consider it complete and flush it
|
||||
max_block_bytes: 1_000_000 # cut the head block when it hits this size or ...
|
||||
max_block_duration: 5m # this much time passes
|
||||
|
||||
compactor:
|
||||
compaction:
|
||||
compaction_window: 1h # blocks in this time window will be compacted together
|
||||
max_compaction_objects: 1000000 # maximum size of compacted blocks
|
||||
max_block_bytes: 100_000_000 # maximum size of compacted blocks
|
||||
block_retention: 1h
|
||||
compacted_block_retention: 10m
|
||||
|
||||
metrics_generator:
|
||||
registry:
|
||||
external_labels:
|
||||
source: tempo
|
||||
cluster: docker-compose
|
||||
storage:
|
||||
path: /tmp/tempo/generator/wal
|
||||
remote_write:
|
||||
- url: http://prometheus:9090/api/v1/write
|
||||
send_exemplars: true
|
||||
|
||||
storage:
|
||||
trace:
|
||||
backend: local # backend configuration to use
|
||||
block:
|
||||
bloom_filter_false_positive: .05 # bloom filter false positive rate. lower values create larger filters but fewer false positives
|
||||
index_downsample_bytes: 1000 # number of bytes per index record
|
||||
encoding: zstd # block encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2
|
||||
wal:
|
||||
path: /tmp/tempo/wal # where to store the the wal locally
|
||||
encoding: snappy # wal encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2
|
||||
local:
|
||||
path: /tmp/tempo/blocks
|
||||
pool:
|
||||
max_workers: 100 # the worker pool mainly drives querying, but is also used for polling the blocklist
|
||||
max_workers: 100 # worker pool determines the number of parallel requests to the object store backend
|
||||
queue_depth: 10000
|
||||
|
||||
overrides:
|
||||
metrics_generator_processors: [service-graphs, span-metrics]
|
||||
|
Loading…
Reference in New Issue
Block a user