I am running some experiments with spring boot and grafana tempo in my local machine.
(Note: I am using this github repo, and had to make some changes in tempo-config.yaml, like removing some fields no more supported by tempo, and picking latest tempo image.)
Tempo container exits with error, but in logs there are no issues listed.
This is tempo part of docker-compose:
tempo:
image: grafana/tempo
command: [ "-search.enabled=true", "-config.file=/etc/tempo.yaml" ]
container_name: tempo
hostname: tempo
volumes:
- ./o11y-backend/tempo-config.yaml:/etc/tempo.yaml
- ./o11y-backend/tempo-overrides.yaml:/etc/overrides.yaml
- ./tempo-data:/tmp/tempo
ports:
- "3200:3200"
- "4317:4317"
healthcheck:
interval: 5s
retries: 10
test: wget --no-verbose --tries=1 --spider http://localhost:3200/status || exit 1
And this is tempo-config.yaml:
server:
http_listen_port: 3200
distributor:
receivers:
jaeger:
protocols:
thrift_http:
grpc:
thrift_binary:
thrift_compact:
zipkin:
otlp:
protocols:
http:
grpc:
opencensus:
ingester:
trace_idle_period: 10s
max_block_bytes: 1_000_000
max_block_duration: 5m
compactor:
compaction:
compaction_window: 1h
max_block_bytes: 100_000_000
block_retention: 1h
compacted_block_retention: 10m
storage:
trace:
backend: local
block:
bloom_filter_false_positive: .05
v2_index_downsample_bytes: 1000
v2_encoding: zstd
wal:
path: /tmp/tempo/wal
local:
path: /tmp/tempo/blocks
pool:
max_workers: 100
queue_depth: 10000
overrides:
per_tenant_override_config: /etc/overrides.yaml
'docker compose' results in:
In logs of tempo container, I dont see any error issue.
% docker container logs <container-id>
flag provided but not defined: -search.enabled
Usage of /tempo:
-auth.enabled
Set to true to enable auth (deprecated: use multitenancy.enabled)
-autocomplete-filtering.enabled
Set to true to enable autocomplete filtering
-compactor.compaction.block-retention duration
Duration to keep blocks/traces. (default 336h0m0s)
-compactor.compaction.compaction-window duration
Maximum time window across which to compact blocks. (default 1h0m0s)
-compactor.compaction.max-block-bytes uint
Maximum size of a compacted block. (default 107374182400)
-compactor.compaction.max-objects-per-block int
Maximum number of traces in a compacted block. (default 6000000)
-compactor.disabled
Disable compaction.
-config.expand-env value
Whether to expand environment variables in config file
-config.file value
Configuration file to load
-config.verify value
Verify configuration and exit
-distributor.log-received-spans.enabled
Enable to log every received span to help debug ingestion or calculate span error distributions using the logs.
-distributor.log-received-spans.filter-by-status-error
Enable to filter out spans without status error.
-distributor.log-received-spans.include-attributes
Enable to include span attributes in the logs.
-distributor.log-received-traces
Enable to log every received trace id to help debug ingestion.
-enable-go-runtime-metrics
Set to true to enable all Go runtime metrics
-generator.trace.block.v2-bloom-filter-false-positive float
Bloom Filter False Positive. (default 0.01)
-generator.trace.block.v2-bloom-filter-shard-size-bytes int
Bloom Filter Shard Size in bytes. (default 102400)
-generator.trace.block.v2-index-downsample-bytes int
Number of bytes (before compression) per index record. (default 1048576)
-generator.trace.block.v2-index-page-size-bytes int
Number of bytes per index page. (default 256000)
-generatorconsul.acl-token value
ACL Token used to interact with Consul.
-generatorconsul.cas-retry-delay duration
Maximum duration to wait before retrying a Compare And Swap (CAS) operation. (default 1s)
-generatorconsul.client-timeout duration
HTTP timeout when talking to Consul (default 20s)
-generatorconsul.consistent-reads
Enable consistent reads to Consul.
-generatorconsul.hostname string
Hostname and port of Consul. (default "localhost:8500")
-generatorconsul.watch-burst-size int
Burst size used in rate limit. Values less than 1 are treated as 1. (default 1)
-generatorconsul.watch-rate-limit float
Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit. (default 1)
-generatoretcd.dial-timeout duration
The dial timeout for the etcd connection. (default 10s)
-generatoretcd.endpoints value
The etcd endpoints to connect to.
-generatoretcd.max-retries int
The maximum number of retries to do for failed ops. (default 10)
-generatoretcd.password value
Etcd password.
-generatoretcd.tls-ca-path string
Path to the CA certificates to validate server certificate against. If not set, the host's root CA certificates are used.
-generatoretcd.tls-cert-path string
Path to the client certificate, which will be used for authenticating with the server. Also requires the key path to be configured.
-generatoretcd.tls-cipher-suites string
Override the default cipher suite list (separated by commas).
-generatoretcd.tls-enabled
Enable TLS.
-generatoretcd.tls-insecure-skip-verify
Skip validating server certificate.
-generatoretcd.tls-key-path string
Path to the key for the client certificate. Also requires the client certificate to be configured.
-generatoretcd.tls-min-version string
Override the default minimum TLS version. Allowed values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
-generatoretcd.tls-server-name string
Override the expected name on the server certificate.
-generatoretcd.username string
Etcd username.
-generatormulti.mirror-enabled
Mirror writes to secondary store.
-generatormulti.mirror-timeout duration
Timeout for storing value to secondary store. (default 2s)
-generatormulti.primary string
Primary backend storage used by multi-client.
-generatormulti.secondary string
Secondary backend storage used by multi-client.
-generatorprefix string
The prefix for the keys in the store. Should end with a /. (default "collectors/")
-generatorstore string
Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi. (default "consul")
-http-api-prefix string
String prefix for all http api endpoints.
-ingester.complete-block-timeout duration
Duration to keep blocks in the ingester after they have been flushed. (default 15m0s)
-ingester.lifecycler.ID string
ID to register in the ring. (default "tempo")
-ingester.max-block-bytes uint
Maximum size of the head block before cutting it. (default 524288000)
-ingester.max-block-duration duration
Maximum duration which the head block can be appended to before cutting it. (default 30m0s)
-ingester.trace-idle-period duration
Duration after which to consider a trace complete if no spans have been received (default 10s)
-log.level value
Only log messages with the given severity or above. Valid levels: [debug, info, warn, error] (default info)
-mem-ballast-size-mbs int
Size of memory ballast to allocate in MBs.
-memberlist.bind-port int
Port for memberlist to communicate on (default 7946)
-memberlist.host-port value
Host port to connect to memberlist cluster.
-multitenancy.enabled
Set to true to enable multitenancy.
-mutex-profile-fraction int
Enable mutex profiling.
-querier.frontend-address string
Address of query frontend service, in host:port format.
-reporting.backoff-max-period duration
Maximum delay when backing off. (default 10s)
-reporting.backoff-min-period duration
Minimum delay when backing off. (default 100ms)
-reporting.backoff-retries int
Number of times to backoff and retry before failing. (default 10)
-reporting.enabled
Enable anonymous usage reporting. (default true)
-server.grpc-listen-port int
gRPC server listen port. (default 9095)
-server.http-listen-port int
HTTP server listen port. (default 80)
-storage.trace.azure.container_name string
Azure container name to store blocks in.
-storage.trace.azure.endpoint string
Azure endpoint to push blocks to. (default "blob.core.windows.net")
-storage.trace.azure.max_buffers int
Number of simultaneous uploads. (default 4)
-storage.trace.azure.prefix string
Azure container prefix to store blocks in.
-storage.trace.azure.storage_account_key value
Azure storage access key.
-storage.trace.azure.storage_account_name string
Azure storage account name.
-storage.trace.backend string
Trace backend (s3, azure, gcs, local)
-storage.trace.block.v2-bloom-filter-false-positive float
Bloom Filter False Positive. (default 0.01)
-storage.trace.block.v2-bloom-filter-shard-size-bytes int
Bloom Filter Shard Size in bytes. (default 102400)
-storage.trace.block.v2-index-downsample-bytes int
Number of bytes (before compression) per index record. (default 1048576)
-storage.trace.block.v2-index-page-size-bytes int
Number of bytes per index page. (default 256000)
-storage.trace.blocklist_poll duration
Period at which to run the maintenance cycle. (default 5m0s)
-storage.trace.gcs.bucket string
gcs bucket to store traces in.
-storage.trace.gcs.prefix string
gcs bucket prefix to store traces in.
-storage.trace.local.path string
path to store traces at.
-storage.trace.pool.max-workers int
Workers in the worker pool. (default 400)
-storage.trace.pool.queue-depth int
Work item queue depth. (default 20000)
-storage.trace.s3.access_key string
s3 access key.
-storage.trace.s3.bucket string
s3 bucket to store blocks in.
-storage.trace.s3.endpoint string
s3 endpoint to push blocks to.
-storage.trace.s3.prefix string
s3 root directory to store blocks in.
-storage.trace.s3.secret_key value
s3 secret key.
-storage.trace.s3.session_token value
s3 session token.
-storage.trace.s3.tls_min_version string
minimum version of TLS to use when connecting to s3. (default "VersionTLS12")
-storage.trace.wal.path string
Path at which store WAL blocks. (default "/var/tempo/wal")
-target string
target module (default "all")
-use-otel-tracer
Set to true to replace the OpenTracing tracer with the OpenTelemetry tracer
-version
Print this builds version information
I am not able to get it working.
What can be the issue here?