New TSDB schema causes Loki to fail

I wanted to enable the new tsdb index store. So I created a new schema. Notice that at the time of running this configuration, the from date is in the future.

        schema_config:
          configs:
            - from: "2022-01-01"
              store: boltdb
              object_store: filesystem
              schema: v11
              index:
                prefix: index_
                period: 168h
#            - from: "2023-06-20"
#              store: tsdb
#              object_store: gcs
#              schema: v12
#              index:
#                prefix: index_
#                period: 24h # 168h

        storage_config:
          boltdb:
            directory: /index

          filesystem:
            directory: /chunks

          gcs:
            bucket_name: monitoring-001-loki

          tsdb_shipper:
            active_index_directory: /tsdb-index
            shared_store: gcs

When I restart Loki with the updated config, Loki fails with the following errors in the logs:

level=info ts=2023-06-16T21:29:44.90262055Z caller=config.go:26 type=config msg="    client_ca_file: \"\""
mkdir : no such file or directory
error initialising module: store
github.com/grafana/dskit/modules.(*Manager).initModule
    /drone/src/vendor/github.com/grafana/dskit/modules/modules.go:122
github.com/grafana/dskit/modules.(*Manager).InitModuleServices
    /drone/src/vendor/github.com/grafana/dskit/modules/modules.go:92
github.com/grafana/loki/pkg/loki.(*Loki).Run
    /drone/src/pkg/loki/loki.go:457
main.main
    /drone/src/cmd/loki/main.go:110
runtime.main
    /usr/local/go/src/runtime/proc.go:250
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1598
level=info ts=2023-06-16T21:29:44.902626501Z caller=config.go:26 type=config msg="    client_auth_type: \"\""
level=info ts=2023-06-16T21:29:44.902673491Z caller=config.go:26 type=config msg="    key_file: \"\""
level=info ts=2023-06-16T21:29:44.902682208Z caller=config.go:26 type=config msg="    cert_file: \"\""
level=info ts=2023-06-16T21:29:44.902688299Z caller=config.go:26 type=config msg="  grpc_tls_config:"
level=info ts=2023-06-16T21:29:44.902694611Z caller=config.go:26 type=config msg="    client_ca_file: \"\""
level=info ts=2023-06-16T21:29:44.902701113Z caller=config.go:26 type=config msg="    client_auth_type: \"\""
level=info ts=2023-06-16T21:29:44.902707425Z caller=config.go:26 type=config msg="    key_file: \"\""
level=info ts=2023-06-16T21:29:44.902714159Z caller=config.go:26 type=config msg="    cert_file: \"\""
level=info ts=2023-06-16T21:29:44.902723186Z caller=config.go:26 type=config msg="  http_tls_config:"
level=info ts=2023-06-16T21:29:44.9027305Z caller=config.go:26 type=config msg="  tls_min_version: \"\""
level=info ts=2023-06-16T21:29:44.902737292Z caller=config.go:26 type=config msg="  tls_cipher_suites: \"\""
level=info ts=2023-06-16T21:29:44.902743604Z caller=config.go:26 type=config msg="  grpc_listen_conn_limit: 0"
level=info ts=2023-06-16T21:29:44.90275165Z caller=config.go:26 type=config msg="  grpc_listen_port: 9095"
level=info ts=2023-06-16T21:29:44.902758433Z caller=config.go:26 type=config msg="  grpc_listen_address: \"\""
level=info ts=2023-06-16T21:29:44.902765226Z caller=config.go:26 type=config msg="  grpc_listen_network: tcp"
level=info ts=2023-06-16T21:29:44.902772249Z caller=config.go:26 type=config msg="  http_listen_conn_limit: 0"
level=info ts=2023-06-16T21:29:44.902780424Z caller=config.go:26 type=config msg="  http_listen_port: 64310"
level=info ts=2023-06-16T21:29:44.902787148Z caller=config.go:26 type=config msg="  http_listen_address: \"\""
level=info ts=2023-06-16T21:29:44.902794021Z caller=config.go:26 type=config msg="  http_listen_network: tcp"
level=info ts=2023-06-16T21:29:44.902800623Z caller=config.go:26 type=config msg=server:
level=info ts=2023-06-16T21:29:44.902806534Z caller=config.go:26 type=config msg="use_sync_logger: true"
level=info ts=2023-06-16T21:29:44.902813167Z caller=config.go:26 type=config msg="use_buffered_logger: true"
level=info ts=2023-06-16T21:29:44.90281959Z caller=config.go:26 type=config msg="ballast_bytes: 0"
level=info ts=2023-06-16T21:29:44.902827304Z caller=config.go:26 type=config msg="http_prefix: \"\""
level=info ts=2023-06-16T21:29:44.902833546Z caller=config.go:26 type=config msg="target: all"
level=info ts=2023-06-16T21:29:44.905362722Z caller=main.go:108 msg="Starting Loki" version="(version=2.8.2, branch=HEAD, revision=9f809eda7)"
level=info ts=2023-06-16T21:29:44.906510729Z caller=server.go:323 http=[::]:64310 grpc=[::]:9095 msg="server listening on addresses"
level=warn ts=2023-06-16T21:29:44.919514606Z caller=cache.go:114 msg="fifocache config is deprecated. use embedded-cache instead"
level=warn ts=2023-06-16T21:29:44.919563168Z caller=experimental.go:20 msg="experimental feature in use" feature="In-memory (FIFO) cache - chunksembedded-cache"
level=info ts=2023-06-16T21:29:44.923446754Z caller=table_manager.go:134 msg="uploading tables"
level=error ts=2023-06-16T21:29:44.923608753Z caller=log.go:171 msg="error running loki" err="mkdir : no such file or directory\nerror initialising module: store\ngithub.com/grafana/dskit/modules.(*Manager).initModule\n\t/drone/src/vendor/github.com/grafana/dskit/modules/modules.go:122\ngithub.com/grafana/dskit/modules.(*Manager).InitModuleServices\n\t/drone/src/vendor/github.com/grafana/dskit/modules/modules.go:92\ngithub.com/grafana/loki/pkg/loki.(*Loki).Run\n\t/drone/src/pkg/loki/loki.go:457\nmain.main\n\t/drone/src/cmd/loki/main.go:110\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1598"

This seems to be related to an issue on GitHub: Error: “at least one bucket name must be specified”

I finally got it working for me. I do not completely understand what is required, but apparently the storage related configurations are very finicky. If you miss a shared_store parameter in one of the modules or mix up the common.storage settings, the system will fail. The error messages are NOT helpful.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.