0

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:

enter image description here

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?

Mandroid
  • 6,200
  • 12
  • 64
  • 134

0 Answers0