Compare commits

...

2 Commits

Author SHA1 Message Date
43b4cbda62 this is the default & temporary config file 2024-08-15 15:39:31 -06:00
6241b70632 add tempo (tracing) to the stack 2024-08-15 15:39:11 -06:00
5 changed files with 92 additions and 9 deletions

2
.gitignore vendored
View File

@ -10,3 +10,5 @@
/qBittorrent/config/
/qBittorrent/qbit-config/
/Caddy/tempo-storage
/Caddy/grafana-storage

View File

@ -6,7 +6,7 @@
metrics
}
servers :80 {
servers :3000 {
name grafana
metrics
}

View File

@ -4,26 +4,34 @@ services:
image: caddy:latest
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- 80:80
- 443:443
- '443:443/udp'
volumes:
- './Caddyfile:/etc/caddy/Caddyfile'
- ./Caddyfile:/etc/caddy/Caddyfile
# log collector
prometheus:
image: prom/prometheus:latest
volumes:
- './prometheus.yaml:/etc/prometheus/prometheus.yml'
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
depends_on:
- caddy
# trace collector
tempo:
image: grafana/tempo:latest
command: [ "-config.file=/opt/tempo.yaml" ]
volumes:
- ./tempo.yaml:/opt/tempo.yaml
- ./tempo-storage/:/var/tempo
# log viewer
grafana:
image: grafana/grafana:latest
volumes:
- './grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml'
- './grafana-storage/:/var/lib/grafana'
- ./grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
- ./grafana-storage/:/var/lib/grafana
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
@ -31,6 +39,5 @@ services:
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
depends_on:
- prometheus
- tempo
volumes:
grafana-storage: {}

View File

@ -13,3 +13,17 @@ datasources:
editable: false
jsonData:
httpMethod: GET
- name: Tempo
type: tempo
uid: tempo
access: proxy
orgId: 1
url: http://tempo:3200
basicAuth: false
isDefault: false
version: 1
editable: false
jsonData:
httpMethod: GET
serviceMap:
datasourceUid: 'prometheus'

60
Caddy/tempo.yaml Normal file
View File

@ -0,0 +1,60 @@
stream_over_http_enabled: true
server:
http_listen_port: 3200
log_level: info
query_frontend:
search:
duration_slo: 5s
throughput_bytes_slo: 1.073741824e+09
trace_by_id:
duration_slo: 5s
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/main/receiver
thrift_http: #
grpc: # for a production deployment you should only enable the receivers you need!
thrift_binary:
thrift_compact:
zipkin:
otlp:
protocols:
http:
grpc:
opencensus:
ingester:
max_block_duration: 5m # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
compactor:
compaction:
block_retention: 1h # overall Tempo trace retention. set for demo purposes
metrics_generator:
registry:
external_labels:
source: tempo
cluster: docker-compose
storage:
path: /var/tempo/generator/wal
remote_write:
- url: http://prometheus:9090/api/v1/write
send_exemplars: true
traces_storage:
path: /var/tempo/generator/traces
storage:
trace:
backend: local # backend configuration to use
wal:
path: /var/tempo/wal # where to store the wal locally
local:
path: /var/tempo/blocks
overrides:
defaults:
metrics_generator:
processors: [service-graphs, span-metrics, local-blocks] # enables metrics generator
generate_native_histograms: both