moved to NFS share for volume storage. Migrated all data

This commit is contained in:
git
2026-07-02 12:49:48 +10:00
parent d9cce278e6
commit 5e47ae2777
110 changed files with 146 additions and 6611 deletions
+4 -2
View File
@@ -11,7 +11,8 @@ services:
- GITEA__server__ROOT_URL=${GITEA_ROOT_URL}
- GITEA__actions__ENABLED=true
volumes:
- ${PROJECT_ROOT}/apps/gitea/data:/data
# - ${PROJECT_ROOT}/apps/gitea/data:/data
- ${DOCKER_VOLUMES}/gitea/data:/data
networks:
- traefik
@@ -47,7 +48,8 @@ services:
- GITEA_RUNNER_LABELS=${GITEA_RUNNER_LABELS}
- DOCKER_HOST=${DOCKER_SOCKET_PROXY_HOST}
volumes:
- ${PROJECT_ROOT}/apps/gitea/runner-data:/data
# - ${PROJECT_ROOT}/apps/gitea/runner-data:/data
- ${DOCKER_VOLUMES}/gitea/runner:/data
networks:
- traefik
+36 -16
View File
@@ -26,14 +26,24 @@ services:
GRAMPSWEB_CELERY_CONFIG__result_backend: redis://gramps-redis:6379/0
GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://gramps-redis:6379/1
volumes:
- ${PROJECT_ROOT}/apps/gramps/data/users:/app/users
- ${PROJECT_ROOT}/apps/gramps/data/index:/app/indexdir
- ${PROJECT_ROOT}/apps/gramps/data/thumbnail_cache:/app/thumbnail_cache
- ${PROJECT_ROOT}/apps/gramps/data/cache:/app/cache
- ${PROJECT_ROOT}/apps/gramps/data/secret:/app/secret
- ${PROJECT_ROOT}/apps/gramps/data/db:/root/.gramps/grampsdb
- ${PROJECT_ROOT}/apps/gramps/data/media:/app/media
- ${PROJECT_ROOT}/apps/gramps/data/tmp:/tmp
# - ${PROJECT_ROOT}/apps/gramps/data/users:/app/users
# - ${PROJECT_ROOT}/apps/gramps/data/index:/app/indexdir
# - ${PROJECT_ROOT}/apps/gramps/data/thumbnail_cache:/app/thumbnail_cache
# - ${PROJECT_ROOT}/apps/gramps/data/cache:/app/cache
# - ${PROJECT_ROOT}/apps/gramps/data/secret:/app/secret
# - ${PROJECT_ROOT}/apps/gramps/data/db:/root/.gramps/grampsdb
# - ${PROJECT_ROOT}/apps/gramps/data/media:/app/media
# - ${PROJECT_ROOT}/apps/gramps/data/tmp:/tmp
- ${DOCKER_VOLUMES}/gramps-data/users:/app/users
- ${DOCKER_VOLUMES}/gramps-data/index:/app/indexdir
- ${DOCKER_VOLUMES}/gramps-data/thumbnail_cache:/app/thumbnail_cache
- ${DOCKER_VOLUMES}/gramps-data/cache:/app/cache
- ${DOCKER_VOLUMES}/gramps-data/secret:/app/secret
- ${DOCKER_VOLUMES}/gramps-data/db:/root/.gramps/grampsdb
- ${DOCKER_VOLUMES}/gramps-data/media:/app/media
- ${DOCKER_VOLUMES}/gramps-data/tmp:/tmp
labels:
- "traefik.http.routers.gramps.rule=Host(`familytree.lan.ddnsgeek.com`)"
- "traefik.enable=true"
@@ -81,14 +91,24 @@ services:
GRAMPSWEB_CELERY_CONFIG__result_backend: redis://gramps-redis:6379/0
GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://gramps-redis:6379/1
volumes:
- ${PROJECT_ROOT}/apps/gramps/data/users:/app/users
- ${PROJECT_ROOT}/apps/gramps/data/index:/app/indexdir
- ${PROJECT_ROOT}/apps/gramps/data/thumbnail_cache:/app/thumbnail_cache
- ${PROJECT_ROOT}/apps/gramps/data/cache:/app/cache
- ${PROJECT_ROOT}/apps/gramps/data/secret:/app/secret
- ${PROJECT_ROOT}/apps/gramps/data/db:/root/.gramps/grampsdb
- ${PROJECT_ROOT}/apps/gramps/data/media:/app/media
- ${PROJECT_ROOT}/apps/gramps/data/tmp:/tmp
# - ${PROJECT_ROOT}/apps/gramps/data/users:/app/users
# - ${PROJECT_ROOT}/apps/gramps/data/index:/app/indexdir
# - ${PROJECT_ROOT}/apps/gramps/data/thumbnail_cache:/app/thumbnail_cache
# - ${PROJECT_ROOT}/apps/gramps/data/cache:/app/cache
# - ${PROJECT_ROOT}/apps/gramps/data/secret:/app/secret
# - ${PROJECT_ROOT}/apps/gramps/data/db:/root/.gramps/grampsdb
# - ${PROJECT_ROOT}/apps/gramps/data/media:/app/media
# - ${PROJECT_ROOT}/apps/gramps/data/tmp:/tmp
- ${DOCKER_VOLUMES}/gramps-data/users:/app/users
- ${DOCKER_VOLUMES}/gramps-data/index:/app/indexdir
- ${DOCKER_VOLUMES}/gramps-data/thumbnail_cache:/app/thumbnail_cache
- ${DOCKER_VOLUMES}/gramps-data/cache:/app/cache
- ${DOCKER_VOLUMES}/gramps-data/secret:/app/secret
- ${DOCKER_VOLUMES}/gramps-data/db:/root/.gramps/grampsdb
- ${DOCKER_VOLUMES}/gramps-data/media:/app/media
- ${DOCKER_VOLUMES}/gramps-data/tmp:/tmp
networks:
- gramps
healthcheck:
+11 -4
View File
@@ -9,10 +9,15 @@ services:
# env_file:
# - ${SECRETS_ENV_FILE}
volumes:
- ${PROJECT_ROOT}/apps/nextcloud/data:/var/www/html/data:rw
- ${PROJECT_ROOT}/apps/nextcloud/config:/var/www/html/config:rw
# - ${PROJECT_ROOT}/apps/nextcloud/data:/var/www/html/data:rw
- ${NEXTCLOUD_DATA}:/var/www/html/data:rw
# - ${PROJECT_ROOT}/apps/nextcloud/config:/var/www/html/config:rw
- ${DOCKER_VOLUMES}/nextcloud/config:/var/www/html/config:rw
- type: tmpfs
target: /tmp:exec
# - ${PROJECT_ROOT}/apps/nextcloud/entrypoint.sh:/entrypoint.sh
# - ${PROJECT_ROOT}/apps/nextcloud/custom_apps:/var/www/html/custom_apps
- ${DOCKER_VOLUMES}/nextcloud/custom_apps:/var/www/html/custom_apps
depends_on:
- nextcloud-db
- nextcloud-redis
@@ -80,7 +85,8 @@ services:
# env_file:
# - ${PROJECT_ROOT}/secrets/stack-secrets.env
volumes:
- ${PROJECT_ROOT}/apps/nextcloud/database:/var/lib/mysql:rw
# - ${PROJECT_ROOT}/apps/nextcloud/database:/var/lib/mysql:rw
- ${DOCKER_DATABASES}/nextcloud/mysql:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/nextcloud_db_root_password
- MYSQL_PASSWORD_FILE=/run/secrets/nextcloud_db_password
@@ -114,7 +120,8 @@ services:
# secrets:
# - nextcloud_redis_password
volumes:
- ${PROJECT_ROOT}/apps/nextcloud/data/redis:/data:rw
# - ${PROJECT_ROOT}/apps/nextcloud/data/redis:/data:rw
- ${DOCKER_VOLUMES}/nextcloud/redis:/data:rw
restart: always
networks:
- nextcloud
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
set -e
OCC="/var/www/html/occ"
php $OCC app:install memories || true
php $OCC app:enable memories || true
php $OCC app:install recognize || true
php $OCC app:enable recognize || true
exec apache2-foreground
+8 -3
View File
@@ -14,7 +14,8 @@ services:
secrets:
- passbolt_db_password
volumes:
- ${PROJECT_ROOT}/apps/passbolt/data/database:/var/lib/mysql
# - ${PROJECT_ROOT}/apps/passbolt/data/database:/var/lib/mysql
- ${DOCKER_DATABASES}/passbolt:/var/lib/mysql
networks:
- passbolt
healthcheck:
@@ -45,8 +46,12 @@ services:
secrets:
- passbolt_db_password
volumes:
- ${PROJECT_ROOT}/apps/passbolt/data/gpg:/etc/passbolt/gpg
- ${PROJECT_ROOT}/apps/passbolt/data/jwt:/etc/passbolt/jwt
# - ${PROJECT_ROOT}/apps/passbolt/data/gpg:/etc/passbolt/gpg
# - ${PROJECT_ROOT}/apps/passbolt/data/jwt:/etc/passbolt/jwt
- ${DOCKER_VOLUMES}/passbolt-data/gpg:/etc/passbolt/gpg
- ${DOCKER_VOLUMES}/passbolt-data/jwt:/etc/passbolt/jwt
command:
[
"/usr/bin/wait-for.sh",
Submodule archive/dynamic-system/apps/shift-recorder added at 144ca876c0
+4 -1
View File
@@ -12,7 +12,10 @@ services:
# - AUTHELIA_SESSION_SECRET=${AUTHELIA_SESSION_SECRET}
# - AUTHELIA_STORAGE_ENCRYPTION_KEY=${AUTHELIA_STORAGE_ENCRYPTION_KEY}
volumes:
- ${PROJECT_ROOT}/core/authelia:/config
# - ${PROJECT_ROOT}/core/authelia:/config
- ${DOCKER_VOLUMES}/authelia-data:/config/data
- ${PROJECT_ROOT}/core/authelia/configuration.yml:/config/configuration.yml:ro
- ${PROJECT_ROOT}/core/authelia/users_database.yml:/config/users_database.yml:ro
networks:
# - reverse_proxy
- traefik
+6 -3
View File
@@ -9,9 +9,12 @@ services:
- COLLECTIONS=crowdsecurity/traefik
# - CROWDSEC_LAPI_KEY=${CROWDSEC_LAPI_KEY}
volumes:
- ${PROJECT_ROOT}/core/crowdsec/logs:/logs:ro
- ${PROJECT_ROOT}/core/crowdsec/data:/var/lib/crowdsec/data
- ${PROJECT_ROOT}/core/crowdsec/config:/etc/crowdsec
# - ${PROJECT_ROOT}/core/crowdsec/logs:/logs:ro
# - ${PROJECT_ROOT}/core/crowdsec/data:/var/lib/crowdsec/data
# - ${PROJECT_ROOT}/core/crowdsec/config:/etc/crowdsec
- ${DOCKER_VOLUMES}/crowdsec/logs:/logs:ro
- ${DOCKER_VOLUMES}/crowdsec/data:/var/lib/crowdsec/data
- ${DOCKER_VOLUMES}/crowdsec/config:/etc/crowdsec
networks:
# - reverse_proxy
- traefik
+9 -4
View File
@@ -22,13 +22,18 @@ services:
# - ${PROJECT_ROOT}/secrets/stack-secrets.env
volumes:
- ${PROJECT_ROOT}/core/traefik/data/letsencrypt:/letsencrypt
- ${PROJECT_ROOT}/core/traefik/data/logs:/logs
# - ${PROJECT_ROOT}/core/traefik/data/letsencrypt:/letsencrypt
# - ${PROJECT_ROOT}/core/traefik/data/logs:/logs
- ${PROJECT_ROOT}/core/traefik/certs:/etc/traefik/certs:ro
- ${PROJECT_ROOT}/core/traefik/dynamic.yml:/etc/traefik/dynamic.yml:ro
- ${PROJECT_ROOT}/core/traefik/traefik.yml:/etc/traefik/traefik.yml:ro
- ${PROJECT_ROOT}/core/traefik/data/plugins:/plugins-storage
# - ${PROJECT_ROOT}/core/traefik/data/plugins:/plugins-storage
- ${DOCKER_VOLUMES}/traefik-data/letsencrypt:/letsencrypt
- ${DOCKER_VOLUMES}/traefik-data/logs:/logs
# - ${PROJECT_ROOT}/core/traefik/certs:/etc/traefik/certs:ro
# - ${PROJECT_ROOT}/core/traefik/dynamic.yml:/etc/traefik/dynamic.yml:ro
# - ${PROJECT_ROOT}/core/traefik/traefik.yml:/etc/traefik/traefik.yml:ro
- ${DOCKER_VOLUMES}/traefik-data/plugins:/plugins-storage
healthcheck:
test: traefik healthcheck --ping
+3
View File
@@ -7,6 +7,8 @@ SECRETS_ENV_FILE=${PROJECT_ROOT}/secrets/stack-secrets.env
# Core
CROWDSEC_COLLECTIONS=crowdsecurity/traefik
ERROR_PAGES_TEMPLATE_NAME=app-down
DOCKER_VOLUMES=/mnt/docker-volumes
DOCKER_DATABASES=/mnt/docker-databases
# Gitea
GITEA_USER_UID=1000
@@ -35,6 +37,7 @@ NEXTCLOUD_SMTP_AUTHTYPE=login
NEXTCLOUD_REDIS_HOST=redis
NEXTCLOUD_REDIS_HOST_PORT=6379
NEXTCLOUD_MARIADB_AUTO_UPGRADE=1
NEXTCLOUD_DATA=/mnt/nextcloud-data
# Passbolt
PASSBOLT_MYSQL_RANDOM_ROOT_PASSWORD=true
@@ -16,7 +16,8 @@ services:
volumes:
- ~/.docker/config.json:/root/.docker/config.json:ro
- ${PROJECT_ROOT}/monitoring/docker-exporter/data:/data:rw
# - ${PROJECT_ROOT}/monitoring/docker-exporter/data:/data:rw
- ${DOCKER_VOLUMES}/docker-update-exporter-data:/data:rw
- ${PROJECT_ROOT}:/compose:ro
# - ${PROJECT_ROOT}/default-environment.env:/compose/default-environment.env:ro
# - ${PROJECT_ROOT}/default-network.yml:/compose/default-network.yml:ro
@@ -53,3 +54,6 @@ services:
timeout: 5s
retries: 3
start_period: 10s
#volumes:
# docker-update-exporter-data:
# external: true
+6 -1
View File
@@ -7,7 +7,9 @@ services:
# env_file:
# - ${PROJECT_ROOT}/secrets/stack-secrets.env
volumes:
- ${PROJECT_ROOT}/monitoring/gotify/data:/app/data
# - ${PROJECT_ROOT}/monitoring/gotify/data:/app/data
- ${DOCKER_VOLUMES}/gotify-data:/app/data
# - gotify-data:/app/data
environment:
- TZ=${TZ}
- GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME}
@@ -27,3 +29,6 @@ services:
- "traefik.http.services.gotify.loadbalancer.server.port=80"
ports:
- 8080:80
#volumes:
# gotify-data:
# external: true
+6 -1
View File
@@ -7,7 +7,8 @@ services:
environment:
- GF_SERVER_ROOT_URL=${GRAFANA_ROOT_URL}
volumes:
- ${PROJECT_ROOT}/monitoring/grafana/data:/var/lib/grafana
# - ${PROJECT_ROOT}/monitoring/grafana/data:/var/lib/grafana
- ${DOCKER_VOLUMES}/grafana-data:/var/lib/grafana
networks:
# - traefik_reverse_proxy
# - prometheus_edge
@@ -48,3 +49,7 @@ services:
# external: true
# prometheus_edge:
# external: true
#volumes:
# grafana-data:
# external: true
-630
View File
@@ -1,630 +0,0 @@
tempo | failed parsing config: failed to parse configFile /etc/tempo/config.yaml: yaml: unmarshal errors:
tempo | line 24: field compactor not found in type app.Config
tempo | level=info ts=2026-02-28T03:38:16.504252277Z caller=main.go:106 msg="Starting Tempo" version="(version=v2.10.1, branch=main, revision=ad20e59db)" target=all
tempo | level=info ts=2026-02-28T03:38:16.506107792Z caller=server.go:284 msg="server listening on addresses" http=[::]:3200 grpc=[::]:9095
tempo | level=info ts=2026-02-28T03:38:16.510179623Z caller=cache.go:55 msg="caches available to storage backend" parquet-footer=false bloom=false parquet-offset-idx=false parquet-column-idx=false trace-id-index=false parquet-page=false
tempo | level=info ts=2026-02-28T03:38:16.51381011Z caller=cache.go:55 msg="caches available to storage backend" parquet-footer=false bloom=false parquet-offset-idx=false parquet-column-idx=false trace-id-index=false parquet-page=false
tempo | level=warn ts=2026-02-28T03:38:16.515946735Z caller=modules.go:682 msg="Scheduler address is empty in single binary mode. Attempting automatic worker configuration." address=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:38:16.515962445Z caller=backendworker.go:80 msg="backend worker starting" worker_id=4777f4a6f30e
tempo | level=info ts=2026-02-28T03:38:16.518963163Z caller=frontend.go:88 msg="creating middleware in query frontend"
tempo | level=info ts=2026-02-28T03:38:16.521703999Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:38:16.521732753Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:38:16.521738063Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:38:16.52174193Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:38:16.521750647Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:38:16.521756559Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | ts=2026-02-28T03:38:16Z level=info msg="OTel Shim Logger Initialized" component=tempo
tempo | level=warn ts=2026-02-28T03:38:16.527971627Z caller=modules.go:397 msg="Worker address is empty in single binary mode. Attempting automatic worker configuration. If queries are unresponsive consider configuring the worker explicitly." address=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:38:16.528090421Z caller=worker.go:108 msg="Starting querier worker connected to query-frontend" frontend=127.0.0.1:9095
tempo | level=warn ts=2026-02-28T03:38:16.528643676Z caller=modules.go:295 msg="metrics-generator is not configured." err="no metrics_generator.storage.path configured, metrics generator will be disabled"
tempo | level=info ts=2026-02-28T03:38:16.529205548Z caller=module_service.go:82 msg=starting module=cache-provider
tempo | level=info ts=2026-02-28T03:38:16.529235324Z caller=module_service.go:82 msg=starting module=optional-store
tempo | level=info ts=2026-02-28T03:38:16.529246304Z caller=module_service.go:82 msg=starting module=store
tempo | level=info ts=2026-02-28T03:38:16.529310496Z caller=module_service.go:82 msg=starting module=internal-server
tempo | level=info ts=2026-02-28T03:38:16.529363827Z caller=module_service.go:82 msg=starting module=server
tempo | level=info ts=2026-02-28T03:38:16.529446112Z caller=module_service.go:82 msg=starting module=overrides
tempo | level=info ts=2026-02-28T03:38:16.529477541Z caller=module_service.go:82 msg=starting module=memberlist-kv
tempo | level=info ts=2026-02-28T03:38:16.529508179Z caller=module_service.go:82 msg=starting module=overrides-api
tempo | level=info ts=2026-02-28T03:38:16.529517306Z caller=module_service.go:82 msg=starting module=live-store-ring
tempo | level=info ts=2026-02-28T03:38:16.529975612Z caller=module_service.go:82 msg=starting module=metrics-generator-ring
tempo | level=info ts=2026-02-28T03:38:16.530025126Z caller=ring.go:372 msg="ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:38:16.529669724Z caller=ring.go:372 msg="ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:38:16.530662269Z caller=module_service.go:82 msg=starting module=usage-report
tempo | level=info ts=2026-02-28T03:38:16.530661898Z caller=module_service.go:82 msg=starting module=partition-ring
tempo | level=info ts=2026-02-28T03:38:16.530845895Z caller=partition_ring_watcher.go:73 msg="partition ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:38:16.530989036Z caller=module_service.go:82 msg=starting module=live-store
tempo | level=info ts=2026-02-28T03:38:16.530999045Z caller=module_service.go:82 msg=starting module=query-frontend
tempo | level=info ts=2026-02-28T03:38:16.530994115Z caller=module_service.go:82 msg=starting module=querier
tempo | level=info ts=2026-02-28T03:38:16.531011028Z caller=module_service.go:82 msg=starting module=block-builder
tempo | level=info ts=2026-02-28T03:38:16.531029903Z caller=module_service.go:82 msg=starting module=backend-worker
tempo | level=info ts=2026-02-28T03:38:16.531033931Z caller=module_service.go:82 msg=starting module=distributor
tempo | level=info ts=2026-02-28T03:38:16.531047757Z caller=tempodb.go:633 msg="polling enabled" interval=5m0s blocklist_concurrency=50
tempo | level=info ts=2026-02-28T03:38:16.531594119Z caller=module_service.go:82 msg=starting module=metrics-generator
tempo | level=info ts=2026-02-28T03:38:16.531614337Z caller=module_service.go:82 msg=starting module=backend-scheduler
tempo | level=info ts=2026-02-28T03:38:16.531618996Z caller=backendscheduler.go:109 msg="backend scheduler starting"
tempo | level=info ts=2026-02-28T03:38:16.534070025Z caller=poller.go:249 msg="blocklist poll complete" seconds=0.002997762
tempo | level=info ts=2026-02-28T03:38:16.534101805Z caller=backendworker.go:183 msg="backend worker running"
tempo | ts=2026-02-28T03:38:16Z level=info msg="Starting GRPC server" component=tempo endpoint=[::]:4317
tempo | level=info ts=2026-02-28T03:38:16.535267337Z caller=worker.go:184 msg="adding connection" addr=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:38:16.536553646Z caller=worker.go:250 msg="total worker concurrency updated" totalConcurrency=20
tempo | ts=2026-02-28T03:38:16Z level=info msg="Starting HTTP server" component=tempo endpoint=[::]:4318
tempo | level=info ts=2026-02-28T03:38:16.538250531Z caller=backendscheduler.go:162 msg="backend scheduler running"
tempo | level=info ts=2026-02-28T03:38:16.538293953Z caller=app.go:214 msg="Tempo started"
tempo | level=info ts=2026-02-28T03:38:16.538315674Z caller=compaction.go:102 msg="compaction provider started"
tempo | level=info ts=2026-02-28T03:38:16.538325803Z caller=compaction.go:126 msg="compaction provider waiting for poll notification"
tempo | level=info ts=2026-02-28T03:38:16.538336152Z caller=retention.go:45 msg="retention provider started"
tempo | level=warn ts=2026-02-28T03:38:31.539059217Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.001238779s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:38:31.539333085Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=137.845499ms
tempo | level=warn ts=2026-02-28T03:38:47.706949743Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000246082s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:38:47.707402278Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=463.092807ms
tempo | level=warn ts=2026-02-28T03:39:03.90316531Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000234022s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:39:03.90345658Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=2.456866248s
tempo | level=info ts=2026-02-28T03:39:04.022018905Z caller=app.go:242 msg="=== received SIGINT/SIGTERM ===\n*** exiting"
tempo | level=info ts=2026-02-28T03:39:04.022341133Z caller=module_service.go:120 msg="module stopped" module=metrics-generator
tempo | level=info ts=2026-02-28T03:39:04.022392981Z caller=compaction.go:131 msg="compaction provider stopping"
tempo | level=info ts=2026-02-28T03:39:04.022421094Z caller=module_service.go:120 msg="module stopped" module=live-store
tempo | level=info ts=2026-02-28T03:39:04.022436252Z caller=backendscheduler.go:136 msg="stopping provider" provider=1
tempo | level=info ts=2026-02-28T03:39:04.022477952Z caller=retention.go:50 msg="retention provider stopping"
tempo | level=info ts=2026-02-28T03:39:04.022483221Z caller=backendscheduler.go:136 msg="stopping provider" provider=0
tempo | level=info ts=2026-02-28T03:39:04.022499622Z caller=backendscheduler.go:154 msg="all providers stopped"
tempo | level=info ts=2026-02-28T03:39:04.022514801Z caller=compaction.go:202 msg="compaction provider measure ticker stopping"
tempo | level=info ts=2026-02-28T03:39:04.023035023Z caller=module_service.go:120 msg="module stopped" module=distributor
tempo | level=info ts=2026-02-28T03:39:04.023143178Z caller=module_service.go:120 msg="module stopped" module=block-builder
tempo | level=warn ts=2026-02-28T03:39:04.023319751Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.481348854s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023397699Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485115377s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023419059Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485051917s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023433387Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485095891s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023447353Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485568464s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.02345667Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485115568s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.02346698Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485072817s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023476648Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485110168s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023486636Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485125947s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023501636Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485212231s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T03:39:04.023502868Z caller=module_service.go:120 msg="module stopped" module=optional-store
tempo | level=warn ts=2026-02-28T03:39:04.023508539Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485663543s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023539146Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485854102s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023551659Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485305717s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.02356266Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485318241s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.02357358Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485326275s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023587017Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.48529687s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023585083Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485268317s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023596484Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485287864s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T03:39:04.023606022Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.485293264s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T03:39:04.023644765Z caller=module_service.go:120 msg="module stopped" module=query-frontend
tempo | level=info ts=2026-02-28T03:39:04.023659914Z caller=module_service.go:120 msg="module stopped" module=overrides-api
tempo | level=warn ts=2026-02-28T03:39:04.023515852Z caller=server.go:1560 method=/frontend.Frontend/Process duration=47.481666904s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T03:39:04.023804989Z caller=frontend.go:339 msg="received shutdown notification from querier" querier=4777f4a6f30e
tempo | level=info ts=2026-02-28T03:39:04.024020695Z caller=module_service.go:120 msg="module stopped" module=querier
tempo | level=info ts=2026-02-28T03:39:04.037362837Z caller=module_service.go:120 msg="module stopped" module=partition-ring
tempo | level=info ts=2026-02-28T03:39:04.037395037Z caller=module_service.go:120 msg="module stopped" module=metrics-generator-ring
tempo | level=info ts=2026-02-28T03:39:04.037503452Z caller=module_service.go:120 msg="module stopped" module=live-store-ring
tempo | level=info ts=2026-02-28T03:39:04.436087499Z caller=backendscheduler.go:201 msg="backend scheduler stopping"
tempo | level=info ts=2026-02-28T03:39:04.436141891Z caller=module_service.go:120 msg="module stopped" module=backend-scheduler
tempo | level=warn ts=2026-02-28T03:39:10.605069202Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=44.344µs msg=gRPC err="rpc error: code = Internal desc = nil job received"
tempo | level=error ts=2026-02-28T03:39:10.605239002Z caller=backendworker.go:454 msg="error calling scheduler" err="error getting next job: rpc error: code = Internal desc = nil job received" backoff=8.910321994s
tempo | level=info ts=2026-02-28T03:39:14.488350709Z caller=main.go:106 msg="Starting Tempo" version="(version=v2.10.1, branch=main, revision=ad20e59db)" target=all
tempo | level=info ts=2026-02-28T03:39:14.488776793Z caller=cache.go:55 msg="caches available to storage backend" parquet-footer=false bloom=false parquet-offset-idx=false parquet-column-idx=false trace-id-index=false parquet-page=false
tempo | level=info ts=2026-02-28T03:39:14.48970103Z caller=server.go:284 msg="server listening on addresses" http=[::]:3200 grpc=[::]:9095
tempo | level=info ts=2026-02-28T03:39:14.490096587Z caller=cache.go:55 msg="caches available to storage backend" parquet-footer=false bloom=false parquet-offset-idx=false parquet-column-idx=false trace-id-index=false parquet-page=false
tempo | level=warn ts=2026-02-28T03:39:14.492106423Z caller=modules.go:682 msg="Scheduler address is empty in single binary mode. Attempting automatic worker configuration." address=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:39:14.492149043Z caller=backendworker.go:80 msg="backend worker starting" worker_id=4777f4a6f30e
tempo | level=info ts=2026-02-28T03:39:14.492516217Z caller=frontend.go:88 msg="creating middleware in query frontend"
tempo | level=info ts=2026-02-28T03:39:14.492620283Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:39:14.492661331Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:39:14.492681839Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:39:14.492700414Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:39:14.492715484Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=info ts=2026-02-28T03:39:14.492728578Z caller=sync_handler_cache.go:131 msg="init frontend cache" role=frontend-search enabled=false
tempo | level=warn ts=2026-02-28T03:39:14.493177155Z caller=modules.go:397 msg="Worker address is empty in single binary mode. Attempting automatic worker configuration. If queries are unresponsive consider configuring the worker explicitly." address=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:39:14.493339051Z caller=worker.go:108 msg="Starting querier worker connected to query-frontend" frontend=127.0.0.1:9095
tempo | ts=2026-02-28T03:39:14Z level=info msg="OTel Shim Logger Initialized" component=tempo
tempo | level=warn ts=2026-02-28T03:39:14.495105829Z caller=modules.go:295 msg="metrics-generator is not configured." err="no metrics_generator.storage.path configured, metrics generator will be disabled"
tempo | level=info ts=2026-02-28T03:39:14.495667199Z caller=module_service.go:82 msg=starting module=optional-store
tempo | level=info ts=2026-02-28T03:39:14.496941125Z caller=module_service.go:82 msg=starting module=internal-server
tempo | level=info ts=2026-02-28T03:39:14.497087782Z caller=module_service.go:82 msg=starting module=cache-provider
tempo | level=info ts=2026-02-28T03:39:14.497242835Z caller=module_service.go:82 msg=starting module=store
tempo | level=info ts=2026-02-28T03:39:14.497359636Z caller=module_service.go:82 msg=starting module=server
tempo | level=info ts=2026-02-28T03:39:14.497560034Z caller=module_service.go:82 msg=starting module=overrides
tempo | level=info ts=2026-02-28T03:39:14.49825639Z caller=module_service.go:82 msg=starting module=overrides-api
tempo | level=info ts=2026-02-28T03:39:14.498445827Z caller=module_service.go:82 msg=starting module=memberlist-kv
tempo | level=info ts=2026-02-28T03:39:14.498546206Z caller=module_service.go:82 msg=starting module=metrics-generator-ring
tempo | level=info ts=2026-02-28T03:39:14.498747066Z caller=ring.go:372 msg="ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:39:14.498816477Z caller=module_service.go:82 msg=starting module=live-store-ring
tempo | level=info ts=2026-02-28T03:39:14.498829101Z caller=module_service.go:82 msg=starting module=usage-report
tempo | level=info ts=2026-02-28T03:39:14.501249322Z caller=module_service.go:82 msg=starting module=query-frontend
tempo | level=info ts=2026-02-28T03:39:14.501273138Z caller=module_service.go:82 msg=starting module=backend-scheduler
tempo | level=info ts=2026-02-28T03:39:14.501281423Z caller=backendscheduler.go:109 msg="backend scheduler starting"
tempo | ts=2026-02-28T03:39:14Z level=info msg="Starting GRPC server" component=tempo endpoint=[::]:4317
tempo | ts=2026-02-28T03:39:14Z level=info msg="Starting HTTP server" component=tempo endpoint=[::]:4318
tempo | level=info ts=2026-02-28T03:39:14.501985883Z caller=ring.go:372 msg="ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:39:14.502072537Z caller=module_service.go:82 msg=starting module=partition-ring
tempo | level=info ts=2026-02-28T03:39:14.502101092Z caller=module_service.go:82 msg=starting module=backend-worker
tempo | level=info ts=2026-02-28T03:39:14.502101442Z caller=partition_ring_watcher.go:73 msg="partition ring doesn't exist in KV store yet"
tempo | level=info ts=2026-02-28T03:39:14.502119777Z caller=tempodb.go:633 msg="polling enabled" interval=5m0s blocklist_concurrency=50
tempo | level=info ts=2026-02-28T03:39:14.502157537Z caller=module_service.go:82 msg=starting module=metrics-generator
tempo | level=info ts=2026-02-28T03:39:14.502189098Z caller=module_service.go:82 msg=starting module=distributor
tempo | level=info ts=2026-02-28T03:39:14.502216168Z caller=poller.go:249 msg="blocklist poll complete" seconds=7.9791e-05
tempo | level=info ts=2026-02-28T03:39:14.502232729Z caller=backendworker.go:183 msg="backend worker running"
tempo | level=info ts=2026-02-28T03:39:14.502586187Z caller=module_service.go:82 msg=starting module=querier
tempo | level=info ts=2026-02-28T03:39:14.502630632Z caller=module_service.go:82 msg=starting module=live-store
tempo | level=info ts=2026-02-28T03:39:14.502740018Z caller=worker.go:184 msg="adding connection" addr=127.0.0.1:9095
tempo | level=info ts=2026-02-28T03:39:14.503119545Z caller=worker.go:250 msg="total worker concurrency updated" totalConcurrency=20
tempo | level=info ts=2026-02-28T03:39:14.504169348Z caller=module_service.go:82 msg=starting module=block-builder
tempo | level=info ts=2026-02-28T03:39:14.506269895Z caller=backendscheduler.go:162 msg="backend scheduler running"
tempo | level=info ts=2026-02-28T03:39:14.506302157Z caller=app.go:214 msg="Tempo started"
tempo | level=info ts=2026-02-28T03:39:14.5063145Z caller=compaction.go:102 msg="compaction provider started"
tempo | level=info ts=2026-02-28T03:39:14.506320521Z caller=compaction.go:126 msg="compaction provider waiting for poll notification"
tempo | level=info ts=2026-02-28T03:39:14.506328516Z caller=retention.go:45 msg="retention provider started"
tempo | level=warn ts=2026-02-28T03:39:29.508287056Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000581399s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:39:29.508572244Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=184.86286ms
tempo | level=warn ts=2026-02-28T03:39:45.052093517Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000133061s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:39:45.052342347Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=683.918431ms
tempo | level=warn ts=2026-02-28T03:40:01.617186207Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000246556s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:40:01.617444254Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=2.230026613s
tempo | level=warn ts=2026-02-28T03:40:21.738394906Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000616341s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:40:21.738738376Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=6.928753128s
tempo | level=warn ts=2026-02-28T03:41:00.303046594Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000840441s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:41:00.303269665Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=46.690005969s
tempo | level=warn ts=2026-02-28T03:42:09.822438562Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.001122933s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:42:09.822714043Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=55.06043985s
tempo | level=warn ts=2026-02-28T03:43:23.832379908Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000290546s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:43:23.83267209Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.189518589s
tempo | level=info ts=2026-02-28T03:44:14.51080544Z caller=poller.go:249 msg="blocklist poll complete" seconds=0.005466397
tempo | level=info ts=2026-02-28T03:44:14.510866645Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=warn ts=2026-02-28T03:44:32.167179641Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000322598s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:44:32.167467976Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=59.343922215s
tempo | level=warn ts=2026-02-28T03:45:44.442347133Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000682317s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:45:44.442597837Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=55.235447404s
tempo | level=warn ts=2026-02-28T03:46:55.621855189Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000935062s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:46:55.622113698Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=57.996223179s
tempo | level=warn ts=2026-02-28T03:48:03.715877703Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000435945s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:48:03.716165717Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.637759938s
tempo | level=info ts=2026-02-28T03:49:14.505419519Z caller=poller.go:249 msg="blocklist poll complete" seconds=6.9141e-05
tempo | level=info ts=2026-02-28T03:49:14.505482128Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=warn ts=2026-02-28T03:49:14.842107415Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000257167s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:49:14.842340856Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.010954393s
tempo | level=warn ts=2026-02-28T03:50:28.490571505Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000174599s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:50:28.490848819Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=56.688382421s
tempo | level=warn ts=2026-02-28T03:51:39.573560321Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000365972s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:51:39.573943555Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=59.697783583s
tempo | level=info ts=2026-02-28T03:52:47.227247458Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:47.230208333Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772249867&end=1772250767&scope=&q= (500) 1.277885ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:47.230708187Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772249867&end=1772250767&scope=&q= (500) 37.201µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:47.230898016Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.003652292 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:47.230940145Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772250767&limit=5000&start=1772249867" duration=4.515183ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:47.231008214Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 4.711182ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:55.046107322Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000358106s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:52:55.04635027Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=51.430516974s
tempo | level=info ts=2026-02-28T03:52:59.295759743Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.304296915Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 119.124µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.304832928Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 87.075µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.305196605Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0 duration_seconds=0.009433275 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.30531019Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&start=1772249879&tag=resource.service.name" duration=9.561277ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.305348642Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&tag=resource.service.name (500) 9.666326ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.305855119Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.305855199Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.306587153Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 123.874µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.309044746Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 86.212µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.309177898Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0 duration_seconds=0.003320204 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.309206162Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&start=1772249879&tag=name" duration=3.356933ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.309253811Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&tag=name (500) 3.44016ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.309659288Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0 duration_seconds=0.003794991 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.309690206Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&start=1772249879&tag=status" duration=3.832993ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:52:59.364894892Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.365471181Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 102.253µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.365832854Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 53.241µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.366012043Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0 duration_seconds=0.001112984 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.366043211Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&start=1772249879&tag=resource.service.name" duration=1.157266ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.366073419Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&tag=resource.service.name (500) 1.236056ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.374586756Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.374912371Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.375016809Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 103.666µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.375473521Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 57.058µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.375643352Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0 duration_seconds=0.001053461 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.375670744Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&start=1772249879&tag=name" duration=1.093838ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.375692655Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&tag=name (500) 1.189688ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.375839072Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0 duration_seconds=0.000923395 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.375865262Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&start=1772249879&tag=status" duration=953.653µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:52:59.430639585Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.430641929Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.431784919Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 54.263µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.431784538Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 92.496µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.432085166Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q= (500) 48.462µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.432098762Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q= (500) 43.912µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.43220327Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query= range_seconds=0 duration_seconds=0.001559207 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.43222465Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0 duration_seconds=0.001584123 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.432240359Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&start=1772249879&tag=resource.service.name" duration=1.604001ms response_size=0 status=500
tempo | level=info ts=2026-02-28T03:52:59.432241802Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&start=1772249879&tag=name" duration=1.615052ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.4322619Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&tag=resource.service.name (500) 1.679032ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.432262761Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&tag=name (500) 1.68304ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.437788703Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.438468568Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0 duration_seconds=0.00067752 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.438494086Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&start=1772249879&tag=status" duration=713.858µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:52:59.554734737Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.555499843Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 132.17µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.555983276Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 61.475µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.5561281Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001390236 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.556162785Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=resource.service.name" duration=1.445401ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.556196699Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.527045ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.570117374Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.570117354Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.571119107Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 54.263µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.57120513Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.001085222 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.571256697Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=status" duration=1.154452ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:52:59.571389749Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 48.662µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.57159701Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001479817 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.571636224Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=name" duration=1.535432ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.571666902Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.607797ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.604904298Z caller=search_handlers.go:225 msg="search request" tenant=single-tenant query={} range_seconds=3600 limit=20 spans_per_spanset=3
tempo | level=warn ts=2026-02-28T03:52:59.605700042Z caller=server.go:2286 msg="GET /querier/api/search?start=1772250479&end=1772250779&limit=20&spss=3&q=%7B%7D (500) 129.284µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.606087353Z caller=server.go:2286 msg="GET /querier/api/search?start=1772250479&end=1772250779&limit=20&spss=3&q=%7B%7D (500) 58.489µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.606187743Z caller=server.go:2286 msg="GET /querier/api/search?start=1772249879&end=1772250179&limit=20&spss=3&q=%7B%7D (500) 45.105µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.606188826Z caller=server.go:2286 msg="GET /querier/api/search?start=1772250179&end=1772250479&limit=20&spss=3&q=%7B%7D (500) 48.352µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.606414472Z caller=server.go:2286 msg="GET /querier/api/search?start=1772250179&end=1772250479&limit=20&spss=3&q=%7B%7D (500) 36.369µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.606446532Z caller=server.go:2286 msg="GET /querier/api/search?start=1772249879&end=1772250179&limit=20&spss=3&q=%7B%7D (500) 37.09µs Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.606580405Z caller=search_handlers.go:184 msg="search response - no resp" tenant=single-tenant duration_seconds=0.001723747 status_code=500 error=null
tempo | level=info ts=2026-02-28T03:52:59.606602738Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/search?end=1772250779&limit=20&q=%7B%7D&start=1772247196" duration=1.748845ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.606631933Z caller=server.go:2286 msg="GET /api/search?end=1772250796&limit=20&q=%7B%7D&start=1772247196 (500) 1.819327ms Response: \"error querying live-stores in Querier.SearchRecent: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.644836935Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.644835402Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.646233004Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 58.19µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.646354614Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.001516506 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.64637912Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=status" duration=1.555229ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:52:59.646532249Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 40.095µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.646628131Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001792909 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.646645163Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=name" duration=1.822845ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.646662535Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.877126ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.651077217Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.651670158Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 67.368µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.651989281Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 71.174µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.652129425Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001046398 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.652183919Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=resource.service.name" duration=1.105269ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.652218053Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.183345ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.834908067Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.83583599Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 180.561µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.83622182Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 53.04µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.836628539Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001717005 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.83666094Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=resource.service.name" duration=1.762972ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.836695936Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.845125ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.844675474Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=info ts=2026-02-28T03:52:59.844676606Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:52:59.845559664Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 94.889µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:52:59.846061863Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249879&end=1772250779&q=%7B%7D (500) 46.718µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:52:59.846141675Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.001464176 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.846167934Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=status" duration=1.50822ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:52:59.846173765Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001499192 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:52:59.846215905Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250779&limit=5000&q=%7B%7D&start=1772249879&tag=name" duration=1.557683ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:52:59.846233909Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.626814ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:54:06.387117532Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000155449s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:54:06.387384306Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.337824347s
tempo | level=info ts=2026-02-28T03:54:07.747790047Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:54:07.748598275Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249947&end=1772250847&q=%7B%7D (500) 118.444µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:54:07.74898729Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772249947&end=1772250847&q=%7B%7D (500) 90.04µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.749157522Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001365771 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.749184953Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772250847&limit=5000&q=%7B%7D&start=1772249947&tag=resource.service.name" duration=1.405937ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:54:07.749223236Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.496548ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.75446989Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T03:54:07.754987538Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772249947&end=1772250847&scope=&q= (500) 70.694µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.754546215Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:54:07.755500718Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772249947&end=1772250847&scope=&q= (500) 28.594µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.755823719Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.001353137 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.755849367Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772250847&limit=5000&start=1772249947" duration=1.403232ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:54:07.755871819Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 1.466611ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.756469869Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.001920669 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.756492221Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250847&limit=5000&q=%7B%7D&start=1772249947&tag=status" duration=1.96836ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:54:07.767792876Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:54:07.768349809Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249947&end=1772250847&q=%7B%7D (500) 87.937µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:54:07.768676455Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249947&end=1772250847&q=%7B%7D (500) 54.313µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.768857398Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001062668 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.768881633Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250847&limit=5000&q=%7B%7D&start=1772249947&tag=name" duration=1.097895ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:54:07.768904576Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.15937ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.805215311Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:54:07.80596677Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249947&end=1772250847&q=%7Bresource.service.name%3Dtraefik%7D (500) 89.989µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:54:07.806306162Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772249947&end=1772250847&q=%7Bresource.service.name%3Dtraefik%7D (500) 61.466µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.806466906Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001251445 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.806493576Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772250847&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772249947&tag=name" duration=1.294836ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:54:07.806545344Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.387872ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:54:07.810069784Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:54:07.8114648Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001388143 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:54:07.811500197Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772250847&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772249947&tag=status" duration=1.443909ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:54:14.505512462Z caller=poller.go:249 msg="blocklist poll complete" seconds=6.3169e-05
tempo | level=info ts=2026-02-28T03:54:14.505573466Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=warn ts=2026-02-28T03:55:17.230319246Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.00109829s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:55:17.23056488Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.331397281s
tempo | level=warn ts=2026-02-28T03:56:27.212672373Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000757225s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:56:27.212924711Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=54.995665223s
tempo | level=info ts=2026-02-28T03:57:35.447493981Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.448262373Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 82.466µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.448835105Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 57.639µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.448972244Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001477442 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.448997662Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251055&limit=5000&q=%7B%7D&start=1772250155&tag=resource.service.name" duration=1.516175ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.44902242Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.596868ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=error ts=2026-02-28T03:57:35.449625368Z caller=search_handlers.go:115 msg="search: could not create combiner" err="invalid TraceQL query: parse error at line 1, col 24: unknown identifier: traefik"
tempo | level=info ts=2026-02-28T03:57:35.449658121Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/search?end=1772251072&limit=20&q=%7Bresource.service.name%3Dtraefik%7D&start=1772247472" duration=2.110898ms response_size=0 status=400
tempo | level=info ts=2026-02-28T03:57:35.452827149Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.453724735Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 79.12µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.454072382Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 73.098µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.454754481Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001925969 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.454809205Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251055&limit=5000&q=%7B%7D&start=1772250155&tag=resource.service.name" duration=1.993728ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.454834763Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 2.066896ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.464569659Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.464647065Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.465734159Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.466270002Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250155&end=1772251055&scope=&q= (500) 51.658µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.466468006Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q= (500) 65.935µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.466467926Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q= (500) 68.098µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.466578975Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250155&end=1772251055&scope=&q= (500) 23.484µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.466683073Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.000949535 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.466703331Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772251055&limit=5000&start=1772250155" duration=1.013645ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.4667241Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 1.062919ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.466757072Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q= (500) 46.428µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.467000492Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.467747053Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0 duration_seconds=0.003097213 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.467810633Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251055&limit=5000&start=1772250155&tag=name" duration=3.183225ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.467847663Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&tag=name (500) 3.248088ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.46786673Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q= (500) 42.22µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.468069162Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query= range_seconds=0 duration_seconds=0.003499453 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.468109167Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251055&limit=5000&start=1772250155&tag=name" duration=3.552883ms response_size=0 status=500
tempo | level=info ts=2026-02-28T03:57:35.468133974Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0 duration_seconds=0.001130987 inspected_bytes=0 request_throughput=0 error=null
tempo | level=warn ts=2026-02-28T03:57:35.468138273Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&tag=name (500) 3.643706ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.468153011Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251055&limit=5000&start=1772250155&tag=status" duration=1.158009ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:57:35.48429799Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.484956764Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q=%7Bresource.service.name%3Dtraefik%7D (500) 104.417µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.485242635Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q=%7Bresource.service.name%3Dtraefik%7D (500) 50.867µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.485397968Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001097994 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.485429208Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251055&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250155&tag=name" duration=1.142479ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.485458763Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.215597ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.4890928Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.489884336Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.00078816 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.489910275Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251055&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250155&tag=status" duration=825.11µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:57:35.533791838Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.534540833Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query= range_seconds=0 duration_seconds=0.000745989 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.534565951Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251055&limit=5000&start=1772250155&tag=status" duration=783.882µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:57:35.563874004Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.564416319Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 78.509µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:35.564750501Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250155&end=1772251055&q=%7B%7D (500) 53.641µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.564892479Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001016812 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.564919931Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251055&limit=5000&q=%7B%7D&start=1772250155&tag=resource.service.name" duration=1.055645ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.564948625Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.131119ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.573722094Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:57:35.573743404Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:57:35.574654356Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q=%7Bresource.service.name%3Dtraefik%7D (500) 72.246µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.574864683Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001118294 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.574890291Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251055&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250155&tag=status" duration=1.149151ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:57:35.575274137Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250155&end=1772251055&q=%7Bresource.service.name%3Dtraefik%7D (500) 91.864µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:57:35.575494063Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.00177241 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:57:35.575515052Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251055&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250155&tag=name" duration=1.803948ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:57:35.575546121Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.873881ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:57:36.820760121Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000451663s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:57:36.821000996Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=58.35515471s
tempo | level=info ts=2026-02-28T03:58:32.220909942Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:32.222185944Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250212&end=1772251112&q=%7B%7D (500) 113.223µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:32.222648478Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250212&end=1772251112&q=%7B%7D (500) 83.147µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.222821986Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001911723 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.22293528Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251112&limit=5000&q=%7B%7D&start=1772250212&tag=resource.service.name" duration=2.02115ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:32.223024188Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 2.182405ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.22766645Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:32.229001193Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250212&end=1772251112&q=%7Bresource.service.name%3Dtraefik%7D (500) 95.671µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:32.22933287Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250212&end=1772251112&q=%7Bresource.service.name%3Dtraefik%7D (500) 68.77µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.229489626Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001819599 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.229537877Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251112&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250212&tag=name" duration=1.893367ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:32.22980944Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 2.228621ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.230137901Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:32.230151897Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:32.231243921Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250212&end=1772251112&scope=&q= (500) 42.661µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:32.231768121Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250212&end=1772251112&scope=&q= (500) 34.455µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.231879883Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.001727085 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.231927694Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772251112&limit=5000&start=1772250212" duration=1.798167ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:32.231954043Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 1.85241ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.232134333Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001961206 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.232167276Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251112&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250212&tag=status" duration=2.034485ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:58:32.285507543Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=info ts=2026-02-28T03:58:32.286381996Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.000871818 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.286407925Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251112&limit=5000&q=%7B%7D&start=1772250212&tag=status" duration=916.472µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:58:32.294280212Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:32.29475576Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250212&end=1772251112&q=%7B%7D (500) 84.451µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:32.295220318Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250212&end=1772251112&q=%7B%7D (500) 54.984µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:32.295346977Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001065514 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:32.295370862Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251112&limit=5000&q=%7B%7D&start=1772250212&tag=name" duration=1.109325ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:32.295423582Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.210067ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:45.987186027Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:45.987781302Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250225&end=1772251125&q=%7B%7D (500) 89.659µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:45.988143777Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250225&end=1772251125&q=%7B%7D (500) 45.104µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:45.988296276Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001109726 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:45.988326693Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251125&limit=5000&q=%7B%7D&start=1772250225&tag=resource.service.name" duration=1.153651ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:45.988367049Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.244051ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:45.993858696Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:45.994205922Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250225&end=1772251125&scope=&q= (500) 48.631µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:45.994567956Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250225&end=1772251125&scope=&q= (500) 25.388µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:45.994712711Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.00085203 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:45.994736776Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772251125&limit=5000&start=1772250225" duration=901.995µs response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:45.994761041Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 974.271µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:45.998993379Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:45.999499025Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250225&end=1772251125&q=%7B%7D (500) 96.371µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:45.999960998Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250225&end=1772251125&q=%7B%7D (500) 58.551µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:46.000109869Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query={} range_seconds=0 duration_seconds=0.001115388 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:46.000191904Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251125&limit=5000&q=%7B%7D&start=1772250225&tag=name" duration=1.204145ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:46.000245305Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7B%7D&tag=name (500) 1.295628ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:46.005858884Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=info ts=2026-02-28T03:58:46.006440202Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.000578262 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:46.00646579Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251126&limit=5000&q=%7B%7D&start=1772250226&tag=status" duration=617.327µs response_size=130 status=200
tempo | level=info ts=2026-02-28T03:58:46.038874293Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:46.039289979Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250226&end=1772251126&q=%7Bresource.service.name%3Dtraefik%7D (500) 80.222µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:46.039656171Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250226&end=1772251126&q=%7Bresource.service.name%3Dtraefik%7D (500) 69.872µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:46.039798289Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.00092052 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:46.039821953Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251126&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250226&tag=name" duration=957.809µs response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:46.039844978Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.035867ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:46.049178986Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:46.050280237Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001097534 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:46.050326674Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251126&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250226&tag=status" duration=1.151936ms response_size=130 status=200
tempo | level=info ts=2026-02-28T03:58:48.785841897Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:48.786673308Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250228&end=1772251128&q=%7B%7D (500) 100.36µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:48.786993352Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250228&end=1772251128&q=%7B%7D (500) 56.375µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.787118058Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.00127548 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:48.787142945Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251128&limit=5000&q=%7B%7D&start=1772250228&tag=resource.service.name" duration=1.314524ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:48.787165358Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.390929ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.794066079Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:48.794090214Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:48.795203578Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001109156 inspected_bytes=0 request_throughput=0 error=null
tempo | level=warn ts=2026-02-28T03:58:48.795226541Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250228&end=1772251128&q=%7Bresource.service.name%3Dtraefik%7D (500) 62.438µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.795230719Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251128&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250228&tag=status" duration=1.145034ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:58:48.795561594Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250228&end=1772251128&q=%7Bresource.service.name%3Dtraefik%7D (500) 70.834µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.795744581Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001676498 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:48.795765059Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251128&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250228&tag=name" duration=1.710554ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:48.79579207Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.790703ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=error ts=2026-02-28T03:58:48.83299873Z caller=search_handlers.go:115 msg="search: could not create combiner" err="invalid TraceQL query: parse error at line 1, col 24: unknown identifier: traefik"
tempo | level=info ts=2026-02-28T03:58:48.83304106Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/search?end=1772251146&limit=20&q=%7Bresource.service.name%3Dtraefik%7D&start=1772247546" duration=90.15µs response_size=0 status=400
tempo | level=info ts=2026-02-28T03:58:48.874206161Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:48.87493086Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250228&end=1772251128&q=%7B%7D (500) 80.572µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:48.875247888Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250228&end=1772251128&q=%7B%7D (500) 64.743µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.875412961Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001204506 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:48.875441434Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251128&limit=5000&q=%7B%7D&start=1772250228&tag=resource.service.name" duration=1.249171ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:48.875475068Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.333641ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.883983787Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:48.883976754Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:48.88471521Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250228&end=1772251128&q=%7Bresource.service.name%3Dtraefik%7D (500) 98.757µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.8851653Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001185801 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:48.885194765Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251128&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250228&tag=status" duration=1.232518ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:58:48.88522882Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250228&end=1772251128&q=%7Bresource.service.name%3Dtraefik%7D (500) 64.813µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:48.885360759Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.00137542 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:48.885386357Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251128&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250228&tag=name" duration=1.404595ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:48.885410463Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.467232ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:49.014415446Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:49.015154923Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250229&end=1772251129&q=%7B%7D (500) 70.854µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:49.015511007Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250229&end=1772251129&q=%7B%7D (500) 65.524µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:49.015653155Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query={} range_seconds=0 duration_seconds=0.001236126 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:49.015676499Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251129&limit=5000&q=%7B%7D&start=1772250229&tag=resource.service.name" duration=1.27538ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:49.015698921Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7B%7D&tag=resource.service.name (500) 1.347867ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:49.024025686Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T03:58:49.024063037Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T03:58:49.024960494Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250229&end=1772251129&q=%7Bresource.service.name%3Dtraefik%7D (500) 119.997µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:49.025149951Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001083918 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:49.02517548Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251129&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250229&tag=status" duration=1.115689ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T03:58:49.02544081Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250229&end=1772251129&q=%7Bresource.service.name%3Dtraefik%7D (500) 98.416µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T03:58:49.025664895Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001639639 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T03:58:49.025713907Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251129&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250229&tag=name" duration=1.700363ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T03:58:49.025744665Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.778792ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T03:58:49.467994461Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000736018s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T03:58:49.468248942Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=51.485834687s
tempo | level=info ts=2026-02-28T03:59:14.505516299Z caller=poller.go:249 msg="blocklist poll complete" seconds=9.005e-05
tempo | level=info ts=2026-02-28T03:59:14.505593114Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=warn ts=2026-02-28T04:00:00.62141836Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000885343s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:00:00.62175716Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.674604584s
tempo | level=warn ts=2026-02-28T04:01:09.533862097Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.00112131s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:01:09.534125144Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=59.264069146s
tempo | level=info ts=2026-02-28T04:01:29.941563869Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0
tempo | level=info ts=2026-02-28T04:01:29.941563849Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query="{status=ok}" range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:29.943318265Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250389&end=1772251289&q=%7Bstatus%3Dok%7D (500) 110.207µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.943868216Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250389&end=1772251289&q=%7Bstatus%3Dok%7D (500) 61.116µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:29.944076008Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query="{status=ok}" range_seconds=0 duration_seconds=0.002508052 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:29.944123869Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251289&limit=5000&q=%7Bstatus%3Dok%7D&start=1772250389&tag=resource.service.name" duration=2.576181ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:29.944211835Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7Bstatus%3Dok%7D&tag=resource.service.name (500) 2.752084ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:29.944825355Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.003260233 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:29.944849992Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251289&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250389&tag=status" duration=3.301083ms response_size=130 status=200
tempo | level=info ts=2026-02-28T04:01:29.94544159Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik && status=ok}" range_seconds=0
tempo | level=info ts=2026-02-28T04:01:29.94544145Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:29.946054078Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250389&end=1772251289&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D (500) 79.67µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.946098603Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250389&end=1772251289&q=%7Bresource.service.name%3Dtraefik%7D (500) 49.093µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.946857016Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250389&end=1772251289&q=%7Bresource.service.name%3Dtraefik%7D (500) 70.944µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.946905057Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250389&end=1772251289&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D (500) 61.215µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:29.947220684Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik && status=ok}" range_seconds=0 duration_seconds=0.001777269 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:29.947235412Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik}" range_seconds=0 duration_seconds=0.001791837 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:29.947247615Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251289&limit=5000&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D&start=1772250389&tag=name" duration=1.812708ms response_size=0 status=500
tempo | level=info ts=2026-02-28T04:01:29.947258776Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251289&limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&start=1772250389&tag=name" duration=1.826764ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:29.947270758Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%20%26%26%20status%3Dok%7D&tag=name (500) 1.87809ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.947276138Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%7D&tag=name (500) 1.88339ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:29.960342984Z caller=tag_handlers.go:518 msg="search tag request" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:29.960838761Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250389&end=1772251289&scope=&q= (500) 39.715µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:29.961101268Z caller=server.go:2286 msg="GET /querier/api/v2/search/tags?start=1772250389&end=1772251289&scope=&q= (500) 32.621µs Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:29.961265038Z caller=tag_handlers.go:527 msg="search tag response" tenant=single-tenant handler=SearchTagsV2 scope= range_seconds=0 duration_seconds=0.000922725 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:29.96129317Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tags?end=1772251289&limit=5000&start=1772250389" duration=973.351µs response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:29.961326062Z caller=server.go:2286 msg="GET /api/v2/search/tags?limit=5000 (500) 1.049643ms Response: \"error querying live-stores in Querier.SearchTags: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.604410488Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query="{status=ok}" range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:33.604981117Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250393&end=1772251293&q=%7Bstatus%3Dok%7D (500) 84.439µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:33.605337871Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/resource.service.name/values?start=1772250393&end=1772251293&q=%7Bstatus%3Dok%7D (500) 52.799µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.605460594Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=resource.service.name query="{status=ok}" range_seconds=0 duration_seconds=0.001049545 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:33.605484029Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/resource.service.name/values?end=1772251293&limit=5000&q=%7Bstatus%3Dok%7D&start=1772250393&tag=resource.service.name" duration=1.086664ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:33.605510328Z caller=server.go:2286 msg="GET /api/v2/search/tag/resource.service.name/values?limit=5000&q=%7Bstatus%3Dok%7D&tag=resource.service.name (500) 1.170984ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.613938413Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik && status=ok}" range_seconds=0
tempo | level=info ts=2026-02-28T04:01:33.614308312Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:33.615192815Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250393&end=1772251293&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D (500) 106.932µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.615309065Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=status query={} range_seconds=0 duration_seconds=0.000996795 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:33.615334522Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/status/values?end=1772251293&limit=5000&q=%7B%7D&start=1772250393&tag=status" duration=1.027463ms response_size=130 status=200
tempo | level=warn ts=2026-02-28T04:01:33.615558405Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250393&end=1772251293&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D (500) 66.005µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.615953593Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{resource.service.name=traefik && status=ok}" range_seconds=0 duration_seconds=0.002014959 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:33.615976316Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251293&limit=5000&q=%7Bresource.service.name%3Dtraefik+%26%26+status%3Dok%7D&start=1772250393&tag=name" duration=2.050226ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:33.615996604Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bresource.service.name%3Dtraefik%20%26%26%20status%3Dok%7D&tag=name (500) 2.11554ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.684220173Z caller=tag_handlers.go:540 msg="search tag values request" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{status=ok}" range_seconds=0
tempo | level=warn ts=2026-02-28T04:01:33.684911631Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250393&end=1772251293&q=%7Bstatus%3Dok%7D (500) 74.18µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:01:33.685479776Z caller=server.go:2286 msg="GET /querier/api/v2/search/tag/name/values?start=1772250393&end=1772251293&q=%7Bstatus%3Dok%7D (500) 116.079µs Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=info ts=2026-02-28T04:01:33.685639858Z caller=tag_handlers.go:550 msg="search tag values response" tenant=single-tenant handler=SearchTagValuesV2 tag=name query="{status=ok}" range_seconds=0 duration_seconds=0.001419274 inspected_bytes=0 request_throughput=0 error=null
tempo | level=info ts=2026-02-28T04:01:33.685697567Z caller=handler.go:135 msg="query stats" tenant=single-tenant method=GET traceID= url="/api/v2/search/tag/name/values?end=1772251293&limit=5000&q=%7Bstatus%3Dok%7D&start=1772250393&tag=name" duration=1.488815ms response_size=0 status=500
tempo | level=warn ts=2026-02-28T04:01:33.685734456Z caller=server.go:2286 msg="GET /api/v2/search/tag/name/values?limit=5000&q=%7Bstatus%3Dok%7D&tag=name (500) 1.576119ms Response: \"error querying live-stores in Querier.SearchTagValues: error finding partition ring replicas: empty ring\\n\""
tempo | level=warn ts=2026-02-28T04:02:21.401664876Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000979208s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:02:21.401988659Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=58.963135457s
tempo | level=info ts=2026-02-28T04:02:54.506996729Z caller=reporter.go:272 msg="reporting cluster stats" date=2026-02-28T04:02:54.506995536Z
tempo | level=warn ts=2026-02-28T04:03:30.924861907Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000152254s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:03:30.925110638Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=52.941417365s
tempo | level=info ts=2026-02-28T04:04:14.505701243Z caller=poller.go:249 msg="blocklist poll complete" seconds=6.7217e-05
tempo | level=info ts=2026-02-28T04:04:14.505766966Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=warn ts=2026-02-28T04:04:38.96769366Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000596524s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:04:38.967991853Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.427260392s
tempo | level=warn ts=2026-02-28T04:05:54.649236109Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000145477s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:05:54.649500619Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=59.111777322s
tempo | level=warn ts=2026-02-28T04:07:09.031108125Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.000783057s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:07:09.031392622Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=53.643106953s
tempo | level=warn ts=2026-02-28T04:08:16.800283365Z caller=server.go:1230 method=/tempopb.BackendScheduler/Next duration=15.00088407s msg=gRPC err="rpc error: code = NotFound desc = no jobs found"
tempo | level=error ts=2026-02-28T04:08:16.800508742Z caller=backendworker.go:454 msg="error calling scheduler" err="rpc error: code = NotFound desc = no jobs found" backoff=55.946244881s
tempo | level=info ts=2026-02-28T04:08:55.544817027Z caller=app.go:242 msg="=== received SIGINT/SIGTERM ===\n*** exiting"
tempo | level=info ts=2026-02-28T04:08:55.545170515Z caller=module_service.go:120 msg="module stopped" module=metrics-generator
tempo | level=info ts=2026-02-28T04:08:55.545143745Z caller=backendscheduler.go:136 msg="stopping provider" provider=0
tempo | level=info ts=2026-02-28T04:08:55.545422351Z caller=module_service.go:120 msg="module stopped" module=live-store
tempo | level=info ts=2026-02-28T04:08:55.545509286Z caller=module_service.go:120 msg="module stopped" module=optional-store
tempo | level=info ts=2026-02-28T04:08:55.54555359Z caller=module_service.go:120 msg="module stopped" module=block-builder
tempo | level=warn ts=2026-02-28T04:08:55.545588966Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.03861475s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T04:08:55.545861381Z caller=compaction.go:142 msg="received empty tenant"
tempo | level=info ts=2026-02-28T04:08:55.545877252Z caller=compaction.go:131 msg="compaction provider stopping"
tempo | level=info ts=2026-02-28T04:08:55.545888232Z caller=compaction.go:202 msg="compaction provider measure ticker stopping"
tempo | level=warn ts=2026-02-28T04:08:55.546132804Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039274788s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T04:08:55.546235459Z caller=module_service.go:120 msg="module stopped" module=query-frontend
tempo | level=info ts=2026-02-28T04:08:55.546254915Z caller=module_service.go:120 msg="module stopped" module=overrides-api
tempo | level=info ts=2026-02-28T04:08:55.546299981Z caller=backendscheduler.go:136 msg="stopping provider" provider=1
tempo | level=info ts=2026-02-28T04:08:55.546316602Z caller=backendscheduler.go:154 msg="all providers stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546425368Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039448657s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546452799Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039388243s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546466765Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039674203s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546477736Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.03989506s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546492986Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039421806s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546505519Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039507939s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T04:08:55.546601099Z caller=module_service.go:120 msg="module stopped" module=distributor
tempo | level=info ts=2026-02-28T04:08:55.546634613Z caller=frontend.go:339 msg="received shutdown notification from querier" querier=4777f4a6f30e
tempo | level=warn ts=2026-02-28T04:08:55.546518493Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039596125s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.54669618Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039697237s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546723351Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039625551s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546745622Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039909457s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546760261Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039945426s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546772995Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039820781s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546783324Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039696415s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546810495Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039784952s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T04:08:55.546674528Z caller=retention.go:50 msg="retention provider stopping"
tempo | level=warn ts=2026-02-28T04:08:55.546819051Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039939374s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546827608Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.040065051s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546845331Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.03982558s msg=gRPC err="queue is stopped"
tempo | level=warn ts=2026-02-28T04:08:55.546880507Z caller=server.go:1560 method=/frontend.Frontend/Process duration=29m41.039980712s msg=gRPC err="queue is stopped"
tempo | level=info ts=2026-02-28T04:08:55.547572095Z caller=module_service.go:120 msg="module stopped" module=querier
tempo | level=info ts=2026-02-28T04:08:55.561796142Z caller=module_service.go:120 msg="module stopped" module=partition-ring
tempo | level=info ts=2026-02-28T04:08:55.561812693Z caller=module_service.go:120 msg="module stopped" module=metrics-generator-ring
tempo | level=info ts=2026-02-28T04:08:55.662029127Z caller=module_service.go:120 msg="module stopped" module=live-store-ring
tempo | level=info ts=2026-02-28T04:08:55.979001962Z caller=backendscheduler.go:201 msg="backend scheduler stopping"
tempo | level=info ts=2026-02-28T04:08:55.979054602Z caller=module_service.go:120 msg="module stopped" module=backend-scheduler
tempo | failed parsing config: failed to parse configFile /etc/tempo/config.yaml: yaml: unmarshal errors:
tempo | line 36: field enabled not found in type frontend.SearchConfig
tempo | failed parsing config: failed to parse configFile /etc/tempo/config.yaml: yaml: unmarshal errors:
tempo | line 36: field enabled not found in type frontend.SearchConfig
tempo | line 37: field search_enabled not found in type app.Config
tempo | failed parsing config: failed to parse configFile /etc/tempo/config.yaml: yaml: unmarshal errors:
tempo | line 27: field compactor not found in type app.Config
tempo | line 36: field enabled not found in type frontend.SearchConfig
tempo | failed parsing config: failed to parse configFile /etc/tempo/config.yaml: yaml: unmarshal errors:
tempo | line 27: field compactor not found in type app.Config
tempo | line 36: field enabled not found in type frontend.SearchConfig
+6 -1
View File
@@ -7,7 +7,8 @@ services:
# env_file:
# - ${PROJECT_ROOT}/secrets/stack-secrets.env
volumes:
- ${PROJECT_ROOT}/monitoring/influxdb:/var/lib/influxdb2
# - ${PROJECT_ROOT}/monitoring/influxdb:/var/lib/influxdb2
- ${DOCKER_DATABASES}/influxdb-data:/var/lib/influxdb2
environment:
DOCKER_INFLUXDB_INIT_MODE: ${INFLUXDB_INIT_MODE}
DOCKER_INFLUXDB_INIT_USERNAME: ${INFLUXDB_INIT_USERNAME}
@@ -43,3 +44,7 @@ services:
secrets:
influxdb_init_password:
file: ${PROJECT_ROOT}/secrets/influxdb_init_password.txt
#volumes:
# influxdb-data:
# external: true
-430
View File
@@ -1,430 +0,0 @@
{
"node-red": {
"name": "node-red",
"version": "5.0.0",
"local": false,
"user": false,
"nodes": {
"junction": {
"name": "junction",
"types": [
"junction"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/05-junction.js"
},
"inject": {
"name": "inject",
"types": [
"inject"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/20-inject.js"
},
"debug": {
"name": "debug",
"types": [
"debug"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/21-debug.js"
},
"complete": {
"name": "complete",
"types": [
"complete"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/24-complete.js"
},
"catch": {
"name": "catch",
"types": [
"catch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-catch.js"
},
"status": {
"name": "status",
"types": [
"status"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-status.js"
},
"link": {
"name": "link",
"types": [
"link in",
"link out",
"link call"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/60-link.js"
},
"comment": {
"name": "comment",
"types": [
"comment"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/90-comment.js"
},
"global-config": {
"name": "global-config",
"types": [
"global-config"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/91-global-config.js"
},
"unknown": {
"name": "unknown",
"types": [
"unknown"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/98-unknown.js"
},
"function": {
"name": "function",
"types": [
"function"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-function.js"
},
"switch": {
"name": "switch",
"types": [
"switch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-switch.js"
},
"change": {
"name": "change",
"types": [
"change"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/15-change.js"
},
"range": {
"name": "range",
"types": [
"range"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/16-range.js"
},
"template": {
"name": "template",
"types": [
"template"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/80-template.js"
},
"delay": {
"name": "delay",
"types": [
"delay"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-delay.js"
},
"trigger": {
"name": "trigger",
"types": [
"trigger"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-trigger.js"
},
"exec": {
"name": "exec",
"types": [
"exec"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/90-exec.js"
},
"rbe": {
"name": "rbe",
"types": [
"rbe"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/rbe.js"
},
"tls": {
"name": "tls",
"types": [
"tls-config"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/05-tls.js"
},
"httpproxy": {
"name": "httpproxy",
"types": [
"http proxy"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/06-httpproxy.js"
},
"mqtt": {
"name": "mqtt",
"types": [
"mqtt in",
"mqtt out",
"mqtt-broker"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/10-mqtt.js"
},
"httpin": {
"name": "httpin",
"types": [
"http in",
"http response"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httpin.js"
},
"httprequest": {
"name": "httprequest",
"types": [
"http request"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httprequest.js"
},
"websocket": {
"name": "websocket",
"types": [
"websocket in",
"websocket out",
"websocket-listener",
"websocket-client"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/22-websocket.js"
},
"tcpin": {
"name": "tcpin",
"types": [
"tcp in",
"tcp out",
"tcp request"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/31-tcpin.js"
},
"udp": {
"name": "udp",
"types": [
"udp in",
"udp out"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/32-udp.js"
},
"CSV": {
"name": "CSV",
"types": [
"csv"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-CSV.js"
},
"HTML": {
"name": "HTML",
"types": [
"html"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-HTML.js"
},
"JSON": {
"name": "JSON",
"types": [
"json"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-JSON.js"
},
"XML": {
"name": "XML",
"types": [
"xml"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-XML.js"
},
"YAML": {
"name": "YAML",
"types": [
"yaml"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-YAML.js"
},
"split": {
"name": "split",
"types": [
"split",
"join"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/17-split.js"
},
"sort": {
"name": "sort",
"types": [
"sort"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/18-sort.js"
},
"batch": {
"name": "batch",
"types": [
"batch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/19-batch.js"
},
"file": {
"name": "file",
"types": [
"file",
"file in"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/10-file.js"
},
"watch": {
"name": "watch",
"types": [
"watch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/23-watch.js"
}
}
}
}
@@ -1,430 +0,0 @@
{
"node-red": {
"name": "node-red",
"version": "4.1.11",
"local": false,
"user": false,
"nodes": {
"junction": {
"name": "junction",
"types": [
"junction"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/05-junction.js"
},
"inject": {
"name": "inject",
"types": [
"inject"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/20-inject.js"
},
"debug": {
"name": "debug",
"types": [
"debug"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/21-debug.js"
},
"complete": {
"name": "complete",
"types": [
"complete"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/24-complete.js"
},
"catch": {
"name": "catch",
"types": [
"catch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-catch.js"
},
"status": {
"name": "status",
"types": [
"status"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-status.js"
},
"link": {
"name": "link",
"types": [
"link in",
"link out",
"link call"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/60-link.js"
},
"comment": {
"name": "comment",
"types": [
"comment"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/90-comment.js"
},
"global-config": {
"name": "global-config",
"types": [
"global-config"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/91-global-config.js"
},
"unknown": {
"name": "unknown",
"types": [
"unknown"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/98-unknown.js"
},
"function": {
"name": "function",
"types": [
"function"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-function.js"
},
"switch": {
"name": "switch",
"types": [
"switch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-switch.js"
},
"change": {
"name": "change",
"types": [
"change"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/15-change.js"
},
"range": {
"name": "range",
"types": [
"range"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/16-range.js"
},
"template": {
"name": "template",
"types": [
"template"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/80-template.js"
},
"delay": {
"name": "delay",
"types": [
"delay"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-delay.js"
},
"trigger": {
"name": "trigger",
"types": [
"trigger"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-trigger.js"
},
"exec": {
"name": "exec",
"types": [
"exec"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/90-exec.js"
},
"rbe": {
"name": "rbe",
"types": [
"rbe"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/rbe.js"
},
"tls": {
"name": "tls",
"types": [
"tls-config"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/05-tls.js"
},
"httpproxy": {
"name": "httpproxy",
"types": [
"http proxy"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/06-httpproxy.js"
},
"mqtt": {
"name": "mqtt",
"types": [
"mqtt in",
"mqtt out",
"mqtt-broker"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/10-mqtt.js"
},
"httpin": {
"name": "httpin",
"types": [
"http in",
"http response"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httpin.js"
},
"httprequest": {
"name": "httprequest",
"types": [
"http request"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httprequest.js"
},
"websocket": {
"name": "websocket",
"types": [
"websocket in",
"websocket out",
"websocket-listener",
"websocket-client"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/22-websocket.js"
},
"tcpin": {
"name": "tcpin",
"types": [
"tcp in",
"tcp out",
"tcp request"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/31-tcpin.js"
},
"udp": {
"name": "udp",
"types": [
"udp in",
"udp out"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/32-udp.js"
},
"CSV": {
"name": "CSV",
"types": [
"csv"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-CSV.js"
},
"HTML": {
"name": "HTML",
"types": [
"html"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-HTML.js"
},
"JSON": {
"name": "JSON",
"types": [
"json"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-JSON.js"
},
"XML": {
"name": "XML",
"types": [
"xml"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-XML.js"
},
"YAML": {
"name": "YAML",
"types": [
"yaml"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-YAML.js"
},
"split": {
"name": "split",
"types": [
"split",
"join"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/17-split.js"
},
"sort": {
"name": "sort",
"types": [
"sort"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/18-sort.js"
},
"batch": {
"name": "batch",
"types": [
"batch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/19-batch.js"
},
"file": {
"name": "file",
"types": [
"file",
"file in"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/10-file.js"
},
"watch": {
"name": "watch",
"types": [
"watch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red",
"file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/23-watch.js"
}
}
}
}
@@ -1,5 +0,0 @@
{
"instanceId": "22480a0b20f99f0c",
"_credentialSecret": "c128ee08a3b994abec9602b578cc23c8a395fd1259896c0c21609b46861a093e",
"telemetryEnabled": true
}
@@ -1,4 +0,0 @@
{
"instanceId": "22480a0b20f99f0c",
"_credentialSecret": "c128ee08a3b994abec9602b578cc23c8a395fd1259896c0c21609b46861a093e"
}
@@ -1,29 +0,0 @@
{
"_": {
"editor": {
"view": {
"view-store-zoom": false,
"view-store-position": false,
"view-show-grid": true,
"view-snap-grid": true,
"view-grid-size": 20,
"view-node-status": true,
"view-node-info-icon": true,
"view-node-show-label": true,
"view-show-tips": true,
"view-show-welcome-tours": true
},
"tours": {
"welcome": "4.1.8"
},
"dialog": {
"export": {
"pretty": true,
"json-view": true
}
}
},
"menu-menu-item-sidebar": true,
"menu-menu-item-palette": true
}
}
@@ -1,29 +0,0 @@
{
"_": {
"editor": {
"view": {
"view-store-zoom": false,
"view-store-position": false,
"view-show-grid": true,
"view-snap-grid": true,
"view-grid-size": 20,
"view-node-status": true,
"view-node-info-icon": true,
"view-node-show-label": true,
"view-show-tips": true,
"view-show-welcome-tours": true
},
"tours": {
"welcome": "4.1.8"
},
"dialog": {
"export": {
"pretty": true,
"json-view": true
}
}
},
"menu-menu-item-sidebar": false,
"menu-menu-item-palette": true
}
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"$": "0875f76c323e5c597b616b8d0802ec74qpYy2kDXF8kqK4a8NneEiGhCLy5Lp+vI1FkwjR0umSjQBv2nQKyxpVC2eFxg"
}
@@ -1,2 +0,0 @@
910aac156dabb4fcf662d29b6bd825588e1e1844 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz","integrity":"sha512-sEfBRYZk+ptqCOkDURC1IxJ6lr1yhdGUctxwL13EmLknQSsOzTJzcI+/nWF1RSBZmsCw4R8+TE1Kx4TnjX2X/g==","time":1775352975936,"size":22123,"metadata":{"time":1775352975918,"url":"https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz","reqHeaders":{},"resHeaders":{"cache-control":"public, immutable, max-age=31557600","content-type":"application/octet-stream","date":"Sun, 05 Apr 2026 01:36:15 GMT","etag":"\"8d40a313fd218e46c3e4fe78121b9267\"","last-modified":"Wed, 21 Jul 2021 11:15:11 GMT","vary":"Accept-Encoding"},"options":{"compress":true}}}
@@ -1,2 +0,0 @@
aaa2f94f98f0490d343865ece4ec971006a4f1c3 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-debugger","integrity":"sha512-wsK2SHDqXFpCtXchBvURI89oTTyDgd4QzMB9ARaNER0KGree4m/aMgswJ8ds/IVhGfe0QIRag8nyLX1zFkPmLw==","time":1775352975866,"size":15640,"metadata":{"time":1775352975857,"url":"https://registry.npmjs.org/node-red-debugger","reqHeaders":{"accept":"application/json"},"resHeaders":{"cache-control":"public, max-age=300","content-encoding":"gzip","content-type":"application/json","date":"Sun, 05 Apr 2026 01:36:15 GMT","etag":"W/\"907dbbf9d3078f923fc58d814f174384\"","last-modified":"Wed, 11 May 2022 04:22:14 GMT","vary":"accept-encoding, accept"},"options":{"compress":true}}}
@@ -1,29 +0,0 @@
0 verbose cli /usr/local/bin/node /usr/local/bin/npm
1 info using npm@10.8.2
2 info using node@v20.20.1
3 silly config load:file:/usr/local/lib/node_modules/npm/npmrc
4 silly config load:file:/data/.npmrc
5 silly config load:file:/usr/src/node-red/.npmrc
6 silly config load:file:/usr/local/etc/npmrc
7 verbose title npm install node-red-debugger@1.1.1
8 verbose argv "install" "--no-audit" "--no-update-notifier" "--no-fund" "--save" "--save-prefix" "~" "--omit" "dev" "--engine-strict" "node-red-debugger@1.1.1"
9 verbose logfile logs-max:10 dir:/data/.npm/_logs/2026-04-05T01_36_15_515Z-
10 verbose logfile /data/.npm/_logs/2026-04-05T01_36_15_515Z-debug-0.log
11 silly packumentCache heap:2111832064 maxSize:527958016 maxEntrySize:263979008
12 silly logfile done cleaning log files
13 silly idealTree buildDeps
14 silly fetch manifest node-red-debugger@1.1.1
15 silly packumentCache full:https://registry.npmjs.org/node-red-debugger cache-miss
16 http fetch GET 200 https://registry.npmjs.org/node-red-debugger 101ms (cache miss)
17 silly packumentCache full:https://registry.npmjs.org/node-red-debugger set size:undefined disposed:false
18 silly placeDep ROOT node-red-debugger@1.1.1 OK for: node-red-project@0.0.1 want: 1.1.1
19 silly reify moves {}
20 silly tarball no local data for node-red-debugger@https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz. Extracting by manifest.
21 http fetch GET 200 https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz 55ms (cache miss)
22 silly ADD node_modules/node-red-debugger
23 verbose cwd /data
24 verbose os Linux 6.12.78
25 verbose node v20.20.1
26 verbose npm v10.8.2
27 verbose exit 0
28 info ok
@@ -1,3 +0,0 @@
{
"dockerUpdateAttempts": {}
}
@@ -1,3 +0,0 @@
{
"dockerUpdateAttempts": {}
}
File diff suppressed because one or more lines are too long
-3
View File
@@ -1,3 +0,0 @@
{
"$": "b5f1756334f073b04b89cd6319c4ce1aBB8dAVwKD38fNXCo2L9NODemuEpJ4T4="
}
-14
View File
@@ -1,14 +0,0 @@
{
"name": "node-red-project",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/node-red-debugger": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz",
"integrity": "sha512-sEfBRYZk+ptqCOkDURC1IxJ6lr1yhdGUctxwL13EmLknQSsOzTJzcI+/nWF1RSBZmsCw4R8+TE1Kx4TnjX2X/g==",
"license": "Apache-2"
}
}
}
-19
View File
@@ -1,19 +0,0 @@
### 1.1.1
- Do not send full message object in messageQueued event Fixes #8
### 1.1.0
- Require Node-RED 2.0.0-beta.2
- Allow debugger to pause just breakpoint nodes
- Better display >99 message queue count on node annotation
- Publish debugger state as retained to make resync easier
- Add Japanese translations (#7) @kazuhitoyokoi
### 1.0.1
- Fix case sensitivity of filenames due to TypeScript being TypeScript
### 1.0.0
- First public release of the Flow Debugger
-178
View File
@@ -1,178 +0,0 @@
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
-105
View File
@@ -1,105 +0,0 @@
# Node-RED Flow Debugger
This module is a Plugin for Node-RED 2.x. It provides a flow debugger with the following
features:
- set breakpoints on node inputs or outputs
- pause the runtime manually or when a message arrives at a breakpoint
- once paused you can:
- inspect the queued up messages
- step forward individual messages
- drop messages
## Installation
Install this module in your Node-RED user directory or via the Palette Manager
then restart Node-RED
npm install node-red-debugger
## Usage
The Flow Debugger adds a new sidebar tab in the editor. Select it from the dropdown
menu.
By default, the debugger is disabled. Click the 'disabled' toggle button to enable it.
The sidebar has two sections - a list of the breakpoints you have set and a list
of any messages queued up in the runtime.
### Working with breakpoints
With the debugger enabled, when you hover over a node's port a breakpoint indicator
will appear. Move your mouse over the indicator and click once - it will turn solid blue
and an entry will appear in the sidebar.
If you click on it again, the breakpoint will be deactivated but remain in place (light blue).
Clicking on it again will remove the breakpoint entirely (dotted outline).
You can also deactive a breakpoint using its checkbox in the sidebar, and remove it by
clicking the `x` button.
### Pausing the runtime
The runtime will by paused whenever a message arrives at an active breakpoint. You
can also manually pause the runtime using the pause button in the sidebar.
Once paused, the flow will show how many messages are queued up at each node input
and output. Those messages will also be listed in the sidebar - in the order the
runtime will process them.
If you click the step button at the top of the sidebar, the runtime will process
the next message in the list. You can step individual messages by clicking the
step button that appears when you hover over the message.
You can also delete any message from the queue by clicking its delete button. This
will prevent the message from passing any further in the flow.
You can click the play button to resume the flows.
## Limitations
- Due to the way Subflows work, breakpoints on Subflow outputs will be ignored
## Roadmap
- Set conditions on individual breakpoints
- Allow queued messages to be edited
- Pause only selected nodes/flows/groups
## Development
This plugin has been developed using TypeScript. This means that when running
from the source code rather than npm, it must first be built.
git clone https://github.com/node-red/node-red-debugger.git
cd node-red-debugger
npm install
npm run build
This will generate all of the plugin files in the `dist` folder - which is where
Node-RED will expect to load the files from.
Then, in your Node-RED user directory (`~/.node-red`) run:
npm install `<path to node-red-debugger directory>`
### Themeing
The Debugger sidebar will use the active Node-RED theme. For the breakpoints
drawn within the flow workspace, the following CSS variables will be used if they
are set by the active theme.
- `--red-ui-flow-debugger-breakpoint-fill`
- `--red-ui-flow-debugger-breakpoint-stroke`
- `--red-ui-flow-debugger-breakpoint-active-fill`
- `--red-ui-flow-debugger-breakpoint-active-stroke`
- `--red-ui-flow-debugger-breakpoint-inactive-fill`
- `--red-ui-flow-debugger-breakpoint-inactive-stroke`
- `--red-ui-flow-debugger-breakpoint-label`
- `--red-ui-flow-debugger-breakpoint-label-active`
File diff suppressed because one or more lines are too long
@@ -1,140 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const debugger_1 = require("./lib/debugger");
const location_1 = require("./lib/location");
module.exports = (RED) => {
const apiRoot = "/flow-debugger";
RED.plugins.registerPlugin("node-red-debugger", {
onadd: () => {
const flowDebugger = new debugger_1.Debugger(RED);
const routeAuthHandler = RED.auth.needsPermission("flow-debugger.write");
RED.comms.publish("flow-debugger/connected", true, true);
function publishState() {
RED.comms.publish("flow-debugger/state", flowDebugger.getState());
}
flowDebugger.on("paused", (event) => {
RED.comms.publish("flow-debugger/paused", event);
});
flowDebugger.on("resumed", (event) => {
RED.comms.publish("flow-debugger/resumed", event);
});
flowDebugger.on("messageQueued", (event) => {
// Don't include the full message on the event
// event.msg = RED.util.encodeObject({msg:event.msg}, {maxLength: 100});
delete event.msg;
RED.comms.publish("flow-debugger/messageQueued", event);
});
flowDebugger.on("messageDispatched", (event) => {
RED.comms.publish("flow-debugger/messageDispatched", event);
});
// flowDebugger.on("step", (event) => {
//
// });
RED.httpAdmin.get(`${apiRoot}`, (_, res) => {
res.json(flowDebugger.getState());
});
RED.httpAdmin.put(`${apiRoot}`, routeAuthHandler, (req, res) => {
let stateChanged = false;
if (req.body.hasOwnProperty("enabled")) {
const enabled = !!req.body.enabled;
if (enabled && !flowDebugger.enabled) {
flowDebugger.enable();
stateChanged = true;
}
else if (!enabled && flowDebugger.enabled) {
flowDebugger.disable();
stateChanged = true;
}
}
if (req.body.hasOwnProperty("config")) {
stateChanged = flowDebugger.setConfig(req.body.config);
}
if (stateChanged) {
publishState();
}
res.json(flowDebugger.getState());
});
RED.httpAdmin.get(`${apiRoot}/breakpoints`, routeAuthHandler, (_, res) => {
res.json(flowDebugger.getBreakpoints());
});
RED.httpAdmin.put(`${apiRoot}/breakpoints/:id`, routeAuthHandler, (req, res) => {
flowDebugger.setBreakpointActive(req.params.id, req.body.active);
res.json(flowDebugger.getBreakpoint(req.params.id));
});
RED.httpAdmin.delete(`${apiRoot}/breakpoints/:id`, routeAuthHandler, (req, res) => {
flowDebugger.clearBreakpoint(req.params.id);
res.sendStatus(200);
});
RED.httpAdmin.post(`${apiRoot}/breakpoints`, routeAuthHandler, (req, res) => {
// req.body.location
const breakpointId = flowDebugger.setBreakpoint(new location_1.Location(req.body.id, req.body.path, req.body.portType, req.body.portIndex));
res.json(flowDebugger.getBreakpoint(breakpointId));
});
RED.httpAdmin.get(`${apiRoot}/messages`, routeAuthHandler, (_, res) => {
res.json(Array.from(flowDebugger.getMessageQueue()).map(m => {
const result = {
id: m.id,
location: m.location.toString(),
destination: undefined,
msg: RED.util.encodeObject({ msg: m.event.msg }, { maxLength: 100 })
};
if (m.event.hasOwnProperty('source')) {
// SendEvent - so include the destination location id
result.destination = m.event.destination.id + "[i][0]";
}
return result;
}));
});
RED.httpAdmin.get(`${apiRoot}/messages/:id`, routeAuthHandler, (req, res) => {
const id = req.params.id;
const messageEvent = flowDebugger.getMessageQueue().get(parseInt(id, 10));
if (messageEvent) {
const result = {
id: messageEvent.id,
location: messageEvent.location,
destination: undefined,
msg: RED.util.encodeObject({ msg: messageEvent.event.msg }, { maxLength: 100 })
};
if (messageEvent.event.hasOwnProperty('source')) {
// SendEvent - so include the destination location id
result.destination = messageEvent.event.destination.id + "[i][0]";
}
res.json(result);
}
else {
res.sendStatus(404);
}
});
RED.httpAdmin.delete(`${apiRoot}/messages/:id`, routeAuthHandler, (req, res) => {
flowDebugger.deleteMessage(parseInt(req.params.id, 10));
res.sendStatus(200);
});
RED.httpAdmin.post(`${apiRoot}/pause`, routeAuthHandler, (_, res) => {
flowDebugger.pause();
res.sendStatus(200);
});
RED.httpAdmin.post(`${apiRoot}/step`, routeAuthHandler, (req, res) => {
let stepMessage = null;
if (req.body && req.body.message) {
stepMessage = req.body.message;
}
flowDebugger.step(stepMessage);
res.sendStatus(200);
});
RED.httpAdmin.post(`${apiRoot}/resume`, routeAuthHandler, (_, res) => {
flowDebugger.resume();
res.sendStatus(200);
});
}
});
};
/*
/flow-debugger/enable
/flow-debugger/disable
/flow-debugger/breakpoint
*/
//# sourceMappingURL=flow-debugger.js.map
File diff suppressed because one or more lines are too long
@@ -1,83 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageQueue = void 0;
class MessageQueue {
constructor(queueName) {
this.queueName = queueName;
this.previousName = `previousBy${queueName}`;
this.nextName = `nextBy${queueName}`;
this.length = 0;
}
enqueue(event) {
if (!this.head) {
this.head = event;
}
event[this.previousName] = this.tail;
if (this.tail) {
this.tail[this.nextName] = event;
}
this.tail = event;
this.length++;
}
next() {
const result = this.head;
if (result) {
this.remove(result);
this.length--;
}
return result;
}
peek() {
return this.head;
}
get(id) {
let p = this.head;
while (p) {
if (p.id === id) {
return p;
}
p = p[this.nextName];
}
}
remove(event) {
const previousEvent = event[this.previousName];
const nextEvent = event[this.nextName];
if (previousEvent) {
previousEvent[this.nextName] = nextEvent;
}
else {
this.head = nextEvent;
}
if (nextEvent) {
nextEvent[this.previousName] = previousEvent;
}
else {
this.tail = previousEvent;
}
this.length--;
}
*[Symbol.iterator]() {
let p = this.head;
while (p) {
yield p;
p = p[this.nextName];
}
}
dump() {
let result = `MessageQueue ${this.queueName} [${this.length}]
head: ${this.head.id}
tail: ${this.tail.id}
list: `;
let p = this.head;
while (p) {
result = result + p.id;
p = p[this.nextName];
if (p) {
result += " > ";
}
}
return result;
}
}
exports.MessageQueue = MessageQueue;
//# sourceMappingURL=MessageQueue.js.map
@@ -1 +0,0 @@
{"version":3,"file":"MessageQueue.js","sourceRoot":"","sources":["../../src/lib/MessageQueue.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAQrB,YAAY,SAAgB;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,aAAa,SAAS,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,KAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;QACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;SACpC;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IACD,IAAI;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI;QACA,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,GAAG,CAAC,EAAS;QACT,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAClB,OAAM,CAAC,EAAE;YACL,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACb,OAAO,CAAC,CAAC;aACZ;YACD,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvB;IACL,CAAC;IACD,MAAM,CAAC,KAAkB;QACrB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,aAAa,EAAE;YACf,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;SACzB;QACD,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;SAChD;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;SAC7B;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IACD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACd,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAClB,OAAM,CAAC,EAAE;YACL,MAAM,CAAC,CAAC;YACR,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxB;IACL,CAAC;IACD,IAAI;QACA,IAAI,MAAM,GAAG,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM;UACzD,IAAI,CAAC,IAAI,CAAC,EAAE;UACZ,IAAI,CAAC,IAAI,CAAC,EAAE;SACb,CAAC;QACF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAClB,OAAM,CAAC,EAAE;YACL,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,IAAI,CAAC,EAAE;gBACH,MAAM,IAAI,KAAK,CAAC;aACnB;SACJ;QACD,OAAO,MAAM,CAAA;IAEjB,CAAC;CACJ;AAnFD,oCAmFC"}
@@ -1,370 +0,0 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Debugger = void 0;
const Location = __importStar(require("./location"));
const MessageQueue_1 = require("./MessageQueue");
const events_1 = require("events");
const DEBUGGER_PAUSED = Symbol("node-red-debugger: paused");
let BREAKPOINT_ID = 1;
class Debugger extends events_1.EventEmitter {
// Events:
// paused / resumed
constructor(RED) {
super();
this.config = {
breakpointAction: "pause-all"
};
this.RED = RED;
this.enabled = false;
this.breakpoints = new Map();
this.pausedLocations = new Set();
this.breakpointsByLocation = new Map();
this.queuesByLocation = {};
this.messageQueue = new MessageQueue_1.MessageQueue("Time");
this.eventNumber = 0;
}
log(message) {
this.RED.log.info(`[flow-debugger] ${message}`);
}
checkLocation(location, event, done) {
const breakpointId = location.getBreakpointLocation();
if (this.isNodePaused(location.id)) {
this.queueEvent(location, event, done);
}
else {
if (event.msg && event.msg[DEBUGGER_PAUSED]) {
this.pause({
reason: "step",
node: location.id
});
this.queueEvent(location, event, done);
}
else {
const bp = this.breakpointsByLocation.get(breakpointId);
if (bp && bp.active) {
this.pause({
reason: "breakpoint",
node: location.id,
breakpoint: bp.id
});
this.queueEvent(location, event, done);
}
else {
done();
}
}
}
}
enable() {
this.log("Enabled");
this.enabled = true;
this.RED.hooks.add("preRoute.flow-debugger", (sendEvent, done) => {
if (isNodeInSubflowModule(sendEvent.source.node)) {
// Inside a subflow module - don't pause the event
done();
return;
}
if (sendEvent.source.node._flow.TYPE !== "flow" && sendEvent.source.node.id === sendEvent.source.node._flow.id) {
// This is the subflow output which, in the current implementation
// means the message is actually about to be routed to the first node
// inside the subflow, not the output of actual subflow.
done();
return;
}
if (sendEvent.cloneMessage) {
sendEvent.msg = this.RED.util.cloneMessage(sendEvent.msg);
sendEvent.cloneMessage = false;
}
const eventLocation = Location.createLocation(sendEvent);
// console.log("preRoute",eventLocation.toString());
this.checkLocation(eventLocation, sendEvent, done);
});
this.RED.hooks.add("onReceive.flow-debugger", (receiveEvent, done) => {
if (receiveEvent.destination.node.type === "inject") {
// Never pause an Inject node's internal receive event
done();
return;
}
if (isNodeInSubflowModule(receiveEvent.destination.node)) {
// Inside a subflow module - don't pause the event
done();
return;
}
const eventLocation = Location.createLocation(receiveEvent);
// console.log("onReceive",eventLocation.toString());
this.checkLocation(eventLocation, receiveEvent, done);
});
}
disable() {
this.log("Disabled");
this.enabled = false;
this.RED.hooks.remove("*.flow-debugger");
this.pausedLocations.clear();
this.drainQueues(true);
}
pause(event) {
if (this.enabled) {
let logReason;
if (event) {
if (this.config.breakpointAction === "pause-all") {
this.pausedLocations.clear();
this.pausedLocations.add("*");
}
else {
this.pausedLocations.add(event.node);
}
if (event.reason === "breakpoint") {
logReason = "@" + this.breakpoints.get(event.breakpoint).location.toString();
}
else if (event.reason === "step") {
logReason = "@" + event.node;
}
event.pausedLocations = [...this.pausedLocations];
}
else {
// Manual pause
this.pausedLocations.clear();
this.pausedLocations.add("*");
logReason = "manual";
}
this.log(`Flows paused: ${logReason}`);
this.emit("paused", event || { reason: "manual" });
}
}
resume(nodeId) {
if (this.pausedLocations.size === 0) {
return;
}
if (!nodeId || nodeId === "*") {
console.log("resume - clear all locations");
this.pausedLocations.clear();
}
else if (nodeId && this.pausedLocations.has(nodeId)) {
this.pausedLocations.delete(nodeId);
}
else {
// Nothing has been unpaused
return;
}
this.log("Flows resumed");
this.emit("resumed", { node: nodeId });
this.drainQueues();
}
deleteMessage(messageId) {
const nextEvent = this.messageQueue.get(messageId);
if (nextEvent) {
this.messageQueue.remove(nextEvent);
const nextEventLocation = nextEvent.location.toString();
this.queuesByLocation[nextEventLocation].remove(nextEvent);
const queueDepth = this.queuesByLocation[nextEventLocation].length;
if (queueDepth === 0) {
delete this.queuesByLocation[nextEventLocation];
}
this.emit("messageDispatched", { id: nextEvent.id, location: nextEventLocation, depth: queueDepth });
// Call done with false to prevent any further processing
nextEvent.done(false);
}
}
isNodePaused(nodeId) {
return this.pausedLocations.has("*") || this.pausedLocations.has(nodeId);
}
drainQueues(quiet) {
for (const nextEvent of this.messageQueue) {
const eventNodeId = nextEvent.location.id;
if (!this.isNodePaused(eventNodeId)) {
const nextEventLocation = nextEvent.location.toString();
this.queuesByLocation[nextEventLocation].remove(nextEvent);
const queueDepth = this.queuesByLocation[nextEventLocation].length;
if (queueDepth === 0) {
delete this.queuesByLocation[nextEventLocation];
}
if (!quiet) {
this.emit("messageDispatched", { id: nextEvent.id, location: nextEventLocation, depth: queueDepth });
}
if (nextEvent.event.msg[DEBUGGER_PAUSED]) {
delete nextEvent.event.msg[DEBUGGER_PAUSED];
}
nextEvent.done();
this.messageQueue.remove(nextEvent);
}
}
}
setBreakpoint(location) {
const bp = {
id: (BREAKPOINT_ID++) + "",
location,
active: true,
mode: "all"
};
this.breakpoints.set(bp.id, bp);
this.breakpointsByLocation.set(location.toString(), bp);
return bp.id;
}
getBreakpoint(breakpointId) {
return this.breakpoints.get(breakpointId);
}
setBreakpointActive(breakpointId, state) {
const bp = this.breakpoints.get(breakpointId);
if (bp) {
bp.active = state;
}
}
clearBreakpoint(breakpointId) {
const bp = this.breakpoints.get(breakpointId);
if (bp) {
this.breakpoints.delete(breakpointId);
this.breakpointsByLocation.delete(bp.location.toString());
}
}
getBreakpoints() {
return Array.from(this.breakpoints.values());
}
step(messageId) {
if (this.enabled) {
let nextEvent;
if (messageId) {
nextEvent = this.messageQueue.get(messageId);
if (nextEvent) {
this.messageQueue.remove(nextEvent);
}
}
else {
nextEvent = this.messageQueue.next();
}
if (nextEvent) {
const nextEventLocation = nextEvent.location.toString();
this.log("Step: " + nextEventLocation);
this.queuesByLocation[nextEventLocation].remove(nextEvent);
const queueDepth = this.queuesByLocation[nextEventLocation].length;
if (queueDepth === 0) {
delete this.queuesByLocation[nextEventLocation];
}
nextEvent.event.msg[DEBUGGER_PAUSED] = true;
this.emit("messageDispatched", { id: nextEvent.id, location: nextEventLocation, depth: queueDepth });
nextEvent.done();
}
}
}
setConfig(newConfig) {
let changed = false;
for (const key in this.config) {
if (newConfig.hasOwnProperty(key) && this.config[key] !== newConfig[key]) {
changed = true;
this.config[key] = newConfig[key];
}
}
return changed;
}
getState() {
if (!this.enabled) {
return { enabled: false };
}
return {
enabled: true,
pausedLocations: [...this.pausedLocations],
config: this.config,
breakpoints: this.getBreakpoints(),
queues: this.getMessageQueueDepths()
};
}
getMessageSummary() {
return Array.from(this.messageQueue).map(m => {
return {
id: m.id,
location: m.location
};
});
}
getMessageQueue() {
return this.messageQueue;
}
getMessageQueueDepths() {
if (!this.enabled) {
return {};
}
const result = {};
for (const [locationId, queue] of Object.entries(this.queuesByLocation)) {
result[locationId] = { depth: queue.length };
}
return result;
}
dump() {
let result = `Debugger State
---
${this.messageQueue.dump()}
`;
const locationIds = Object.keys(this.queuesByLocation);
locationIds.forEach(id => {
result += `---
Location: ${id}
${this.queuesByLocation[id].dump()}
`;
});
return result;
}
queueEvent(location, event, done) {
const locationId = location.toString();
if (!this.queuesByLocation[locationId]) {
this.queuesByLocation[locationId] = new MessageQueue_1.MessageQueue("Location");
}
const messageEvent = {
id: this.eventNumber++,
event,
location,
done,
nextByLocation: null,
previousByLocation: null,
nextByTime: null,
previousByTime: null
};
this.queuesByLocation[locationId].enqueue(messageEvent);
this.messageQueue.enqueue(messageEvent);
const queuedEvent = {
id: messageEvent.id,
location: locationId,
msg: event.msg,
depth: this.queuesByLocation[locationId].length,
destination: null,
};
if (event.hasOwnProperty('source')) {
// SendEvent - so include the destination location id
queuedEvent.destination = "/" + event.destination.id + "[i][0]";
}
this.emit("messageQueued", queuedEvent);
}
}
exports.Debugger = Debugger;
const MODULE_TYPE_RE = /^module:/;
function isNodeInSubflowModule(node) {
let f = node._flow;
do {
if (f.TYPE === "flow") {
return false;
}
if (MODULE_TYPE_RE.test(f.TYPE)) {
return true;
}
f = f.parent;
} while (f && f.TYPE);
return false;
}
//# sourceMappingURL=debugger.js.map
File diff suppressed because one or more lines are too long
@@ -1,46 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createLocation = exports.Location = void 0;
class Location {
constructor(nodeId, nodePath, portType = "o", portIndex = 0) {
this.inSubflow = false;
this.id = nodeId;
this.path = nodePath;
this.portType = portType;
this.portIndex = portIndex;
}
getBreakpointLocation() {
if (this.inSubflow) {
return `*/${this.id}[${this.portType}][${this.portIndex}]`;
}
else {
return this.toString();
}
}
toString() {
return `${this.path}/${this.id}[${this.portType}][${this.portIndex}]`;
}
}
exports.Location = Location;
function createLocation(event) {
let node;
let portType;
let portIndex;
if (event.hasOwnProperty("source")) {
node = event.source.node;
portType = "o";
portIndex = event.source.port;
}
else {
node = event.destination.node;
portType = "i";
portIndex = 0;
}
const l = new Location(node._alias || node.id, node._flow.path, portType, portIndex);
if (node._alias) {
l.inSubflow = true;
}
return l;
}
exports.createLocation = createLocation;
//# sourceMappingURL=location.js.map
@@ -1 +0,0 @@
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../src/lib/location.ts"],"names":[],"mappings":";;;AAIA,MAAa,QAAQ;IAYjB,YAAY,MAAa,EAAE,QAAe,EAAE,WAAkB,GAAG,EAAE,SAAS,GAAC,CAAC;QAF9E,cAAS,GAAW,KAAK,CAAC;QAGtB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,qBAAqB;QACjB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,GAAG,CAAA;SAC7D;aAAM;YACH,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC1B;IACL,CAAC;IACD,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,GAAG,CAAA;IACzE,CAAC;CACJ;AA5BD,4BA4BC;AAED,SAAgB,cAAc,CAAC,KAA4B;IACvD,IAAI,IAAQ,CAAC;IACb,IAAI,QAAiB,CAAC;IACtB,IAAI,SAAgB,CAAC;IACrB,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,GAAI,KAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;QACxC,QAAQ,GAAG,GAAG,CAAC;QACf,SAAS,GAAI,KAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;KAChD;SAAM;QACH,IAAI,GAAI,KAAsB,CAAC,WAAW,CAAC,IAAI,CAAC;QAChD,QAAQ,GAAG,GAAG,CAAC;QACf,SAAS,GAAG,CAAC,CAAC;KACjB;IACD,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,MAAM,EAAE;QACb,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;KACtB;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAlBD,wCAkBC"}
@@ -1,3 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
{
"label": {
"debugger": "Flow Debugger",
"debuggerShort": "debugger",
"breakpoints": "Breakpoints",
"messages":"Messages",
"output": "output",
"input": "input",
"paused": "Flows paused",
"resume": "Resume flows",
"step": "Step flows",
"pause": "Pause flows",
"deleteMessage": "Delete message",
"stepMessage": "Step message",
"filter": {
"label": "Filter messages",
"all": "all nodes",
"flow": "current flow"
},
"settings": "Debugger options",
"breakpointAction": {
"label": "Breakpoint action",
"pause-all": "pause all nodes",
"pause-bp": "pause at breakpoint"
}
}
}
@@ -1,27 +0,0 @@
{
"label": {
"debugger": "フローデバッガ",
"debuggerShort": "デバッガ",
"breakpoints": "ブレイクポイント",
"messages": "メッセージ",
"output": "出力",
"input": "入力",
"paused": "フローを停止しました",
"resume": "フローを再開",
"step": "フローをステップ実行",
"pause": "フローを停止",
"deleteMessage": "メッセージを削除",
"stepMessage": "メッセージをステップ実行",
"filter": {
"label": "メッセージの絞り込み",
"all": "全てのノード",
"flow": "現在のフロー"
},
"settings": "デバッガオプション",
"breakpointAction": {
"label": "ブレイクポイントの動作",
"pause-all": "全てのノードを停止",
"pause-bp": "ブレイクポイントで停止"
}
}
}
@@ -1,3 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=nr-types.js.map
@@ -1 +0,0 @@
{"version":3,"file":"nr-types.js","sourceRoot":"","sources":["../src/nr-types.ts"],"names":[],"mappings":""}
-37
View File
@@ -1,37 +0,0 @@
{
"name": "node-red-debugger",
"version": "1.1.1",
"description": "A flow debugger for Node-RED 2.x",
"repository": {
"type": "git",
"url": "https://github.com/node-red/node-red-debugger.git"
},
"scripts": {
"build": "(tsc || exit 1) && npm run tslint && npm run copyAssets",
"tslint": "tslint -c tslint.json -p tsconfig.json",
"copyAssets": "node scripts/copy-static-assets.js",
"dev": "nodemon --exec 'npm run build' -i dist -i resources -e 'ts html css'",
"test": "npm run build"
},
"keywords": ["node-red","debugger"],
"author": "Nick O'Leary <nick.oleary@gmail.com>",
"files": [
"dist",
"resources"
],
"license": "Apache-2",
"node-red": {
"version": ">=2.0.0",
"plugins": {
"flow-debugger": "dist/flow-debugger.js"
}
},
"devDependencies": {
"@types/node": "^15.12.2",
"fs-extra": "^10.0.0",
"html-minifier": "^4.0.0",
"nodemon": "^2.0.7",
"tslint": "^6.1.3",
"typescript": "^4.3.2"
}
}
File diff suppressed because one or more lines are too long
-21
View File
@@ -1,21 +0,0 @@
{
"name": "node-red-project",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "node-red-project",
"version": "0.0.1",
"dependencies": {
"node-red-debugger": "~1.1.1"
}
},
"node_modules/node-red-debugger": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/node-red-debugger/-/node-red-debugger-1.1.1.tgz",
"integrity": "sha512-sEfBRYZk+ptqCOkDURC1IxJ6lr1yhdGUctxwL13EmLknQSsOzTJzcI+/nWF1RSBZmsCw4R8+TE1Kx4TnjX2X/g==",
"license": "Apache-2"
}
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"name": "node-red-project",
"description": "A Node-RED Project",
"version": "0.0.1",
"private": true,
"dependencies": {
"node-red-debugger": "~1.1.1"
}
}
-623
View File
@@ -1,623 +0,0 @@
/**
* This is the default settings file provided by Node-RED.
*
* It can contain any valid JavaScript code that will get run when Node-RED
* is started.
*
* Lines that start with // are commented out.
* Each entry should be separated from the entries above and below by a comma ','
*
* For more information about individual settings, refer to the documentation:
* https://nodered.org/docs/user-guide/runtime/configuration
*
* The settings are split into the following sections:
* - Flow File and User Directory Settings
* - Security
* - Server Settings
* - Runtime Settings
* - Editor Settings
* - Node Settings
*
**/
module.exports = {
/*******************************************************************************
* Flow File and User Directory Settings
* - flowFile
* - credentialSecret
* - flowFilePretty
* - userDir
* - nodesDir
******************************************************************************/
/** The file containing the flows. If not set, defaults to flows_<hostname>.json **/
flowFile: 'flows.json',
/** By default, credentials are encrypted in storage using a generated key. To
* specify your own secret, set the following property.
* If you want to disable encryption of credentials, set this property to false.
* Note: once you set this property, do not change it - doing so will prevent
* node-red from being able to decrypt your existing credentials and they will be
* lost.
*/
//credentialSecret: "a-secret-key",
/** By default, the flow JSON will be formatted over multiple lines making
* it easier to compare changes when using version control.
* To disable pretty-printing of the JSON set the following property to false.
*/
flowFilePretty: true,
/** By default, all user data is stored in a directory called `.node-red` under
* the user's home directory. To use a different location, the following
* property can be used
*/
//userDir: '/home/nol/.node-red/',
/** Node-RED scans the `nodes` directory in the userDir to find local node files.
* The following property can be used to specify an additional directory to scan.
*/
//nodesDir: '/home/nol/.node-red/nodes',
/*******************************************************************************
* Security
* - adminAuth
* - https
* - httpsRefreshInterval
* - requireHttps
* - httpNodeAuth
* - httpStaticAuth
******************************************************************************/
/** To password protect the Node-RED editor and admin API, the following
* property can be used. See https://nodered.org/docs/security.html for details.
*/
//adminAuth: {
// type: "credentials",
// users: [{
// username: "admin",
// password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
// permissions: "*"
// }]
//},
/** The following property can be used to enable HTTPS
* This property can be either an object, containing both a (private) key
* and a (public) certificate, or a function that returns such an object.
* See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener
* for details of its contents.
*/
/** Option 1: static object */
//https: {
// key: require("fs").readFileSync('privkey.pem'),
// cert: require("fs").readFileSync('cert.pem')
//},
/** Option 2: function that returns the HTTP configuration object */
// https: function() {
// // This function should return the options object, or a Promise
// // that resolves to the options object
// return {
// key: require("fs").readFileSync('privkey.pem'),
// cert: require("fs").readFileSync('cert.pem')
// }
// },
/** If the `https` setting is a function, the following setting can be used
* to set how often, in hours, the function will be called. That can be used
* to refresh any certificates.
*/
//httpsRefreshInterval : 12,
/** The following property can be used to cause insecure HTTP connections to
* be redirected to HTTPS.
*/
//requireHttps: true,
/** To password protect the node-defined HTTP endpoints (httpNodeRoot),
* including node-red-dashboard, or the static content (httpStatic), the
* following properties can be used.
* The `pass` field is a bcrypt hash of the password.
* See https://nodered.org/docs/security.html#generating-the-password-hash
*/
//httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
//httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
/*******************************************************************************
* Server Settings
* - uiPort
* - uiHost
* - apiMaxLength
* - httpServerOptions
* - httpAdminRoot
* - httpAdminMiddleware
* - httpAdminCookieOptions
* - httpNodeRoot
* - httpNodeCors
* - httpNodeMiddleware
* - httpStatic
* - httpStaticRoot
* - httpStaticCors
******************************************************************************/
/** the tcp port that the Node-RED web server is listening on */
uiPort: process.env.PORT || 1880,
/** By default, the Node-RED UI accepts connections on all IPv4 interfaces.
* To listen on all IPv6 addresses, set uiHost to "::",
* The following property can be used to listen on a specific interface. For
* example, the following would only allow connections from the local machine.
*/
//uiHost: "127.0.0.1",
/** The maximum size of HTTP request that will be accepted by the runtime api.
* Default: 5mb
*/
//apiMaxLength: '5mb',
/** The following property can be used to pass custom options to the Express.js
* server used by Node-RED. For a full list of available options, refer
* to http://expressjs.com/en/api.html#app.settings.table
*/
//httpServerOptions: { },
/** By default, the Node-RED UI is available at http://localhost:1880/
* The following property can be used to specify a different root path.
* If set to false, this is disabled.
*/
//httpAdminRoot: '/admin',
/** The following property can be used to add a custom middleware function
* in front of all admin http routes. For example, to set custom http
* headers. It can be a single function or an array of middleware functions.
*/
// httpAdminMiddleware: function(req,res,next) {
// // Set the X-Frame-Options header to limit where the editor
// // can be embedded
// //res.set('X-Frame-Options', 'sameorigin');
// next();
// },
/** The following property can be used to set addition options on the session
* cookie used as part of adminAuth authentication system
* Available options are documented here: https://www.npmjs.com/package/express-session#cookie
*/
// httpAdminCookieOptions: { },
/** Some nodes, such as HTTP In, can be used to listen for incoming http requests.
* By default, these are served relative to '/'. The following property
* can be used to specify a different root path. If set to false, this is
* disabled.
*/
//httpNodeRoot: '/red-nodes',
/** The following property can be used to configure cross-origin resource sharing
* in the HTTP nodes.
* See https://github.com/troygoode/node-cors#configuration-options for
* details on its contents. The following is a basic permissive set of options:
*/
//httpNodeCors: {
// origin: "*",
// methods: "GET,PUT,POST,DELETE"
//},
/** If you need to set an http proxy please set an environment variable
* called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system.
* For example - http_proxy=http://myproxy.com:8080
* (Setting it here will have no effect)
* You may also specify no_proxy (or NO_PROXY) to supply a comma separated
* list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk
*/
/** The following property can be used to add a custom middleware function
* in front of all http in nodes. This allows custom authentication to be
* applied to all http in nodes, or any other sort of common request processing.
* It can be a single function or an array of middleware functions.
*/
//httpNodeMiddleware: function(req,res,next) {
// // Handle/reject the request, or pass it on to the http in node by calling next();
// // Optionally skip our rawBodyParser by setting this to true;
// //req.skipRawBodyParser = true;
// next();
//},
/** When httpAdminRoot is used to move the UI to a different root path, the
* following property can be used to identify a directory of static content
* that should be served at http://localhost:1880/.
* When httpStaticRoot is set differently to httpAdminRoot, there is no need
* to move httpAdminRoot
*/
//httpStatic: '/home/nol/node-red-static/', //single static source
/**
* OR multiple static sources can be created using an array of objects...
* Each object can also contain an options object for further configuration.
* See https://expressjs.com/en/api.html#express.static for available options.
* They can also contain an option `cors` object to set specific Cross-Origin
* Resource Sharing rules for the source. `httpStaticCors` can be used to
* set a default cors policy across all static routes.
*/
//httpStatic: [
// {path: '/home/nol/pics/', root: "/img/"},
// {path: '/home/nol/reports/', root: "/doc/"},
// {path: '/home/nol/videos/', root: "/vid/", options: {maxAge: '1d'}}
//],
/**
* All static routes will be appended to httpStaticRoot
* e.g. if httpStatic = "/home/nol/docs" and httpStaticRoot = "/static/"
* then "/home/nol/docs" will be served at "/static/"
* e.g. if httpStatic = [{path: '/home/nol/pics/', root: "/img/"}]
* and httpStaticRoot = "/static/"
* then "/home/nol/pics/" will be served at "/static/img/"
*/
//httpStaticRoot: '/static/',
/** The following property can be used to configure cross-origin resource sharing
* in the http static routes.
* See https://github.com/troygoode/node-cors#configuration-options for
* details on its contents. The following is a basic permissive set of options:
*/
//httpStaticCors: {
// origin: "*",
// methods: "GET,PUT,POST,DELETE"
//},
/** The following property can be used to modify proxy options */
// proxyOptions: {
// mode: "legacy", // legacy mode is for non-strict previous proxy determination logic (node-red < v4 compatible)
// },
/*******************************************************************************
* Runtime Settings
* - lang
* - runtimeState
* - telemetry
* - diagnostics
* - logging
* - contextStorage
* - exportGlobalContextKeys
* - externalModules
******************************************************************************/
/** Uncomment the following to run node-red in your preferred language.
* Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko
* Some languages are more complete than others.
*/
// lang: "de",
/** Configure diagnostics options
* - enabled: When `enabled` is `true` (or unset), diagnostics data will
* be available at http://localhost:1880/diagnostics
* - ui: When `ui` is `true` (or unset), the action `show-system-info` will
* be available to logged in users of node-red editor
*/
diagnostics: {
/** enable or disable diagnostics endpoint. Must be set to `false` to disable */
enabled: true,
/** enable or disable diagnostics display in the node-red editor. Must be set to `false` to disable */
ui: true,
},
/** Configure runtimeState options
* - enabled: When `enabled` is `true` flows runtime can be Started/Stopped
* by POSTing to available at http://localhost:1880/flows/state
* - ui: When `ui` is `true`, the action `core:start-flows` and
* `core:stop-flows` will be available to logged in users of node-red editor
* Also, the deploy menu (when set to default) will show a stop or start button
*/
runtimeState: {
/** enable or disable flows/state endpoint. Must be set to `false` to disable */
enabled: false,
/** show or hide runtime stop/start options in the node-red editor. Must be set to `false` to hide */
ui: false,
},
telemetry: {
/**
* By default, telemetry is disabled until the user provides consent the first
* time they open the editor.
*
* The following property can be uncommented and set to true/false to enable/disable
* telemetry without seeking further consent in the editor.
* The user can override this setting via the user settings dialog within the editor
*/
// enabled: true,
/**
* If telemetry is enabled, the editor will notify the user if a new version of Node-RED
* is available. Set the following property to false to disable this notification.
*/
// updateNotification: true
},
/** Configure the logging output */
logging: {
/** Only console logging is currently supported */
console: {
/** Level of logging to be recorded. Options are:
* fatal - only those errors which make the application unusable should be recorded
* error - record errors which are deemed fatal for a particular request + fatal errors
* warn - record problems which are non fatal + errors + fatal errors
* info - record information about the general running of the application + warn + error + fatal errors
* debug - record information which is more verbose than info + info + warn + error + fatal errors
* trace - record very detailed logging + debug + info + warn + error + fatal errors
* off - turn off all logging (doesn't affect metrics or audit)
*/
level: "info",
/** Whether or not to include metric events in the log output */
metrics: false,
/** Whether or not to include audit events in the log output */
audit: false
}
},
/** Context Storage
* The following property can be used to enable context storage. The configuration
* provided here will enable file-based context that flushes to disk every 30 seconds.
* Refer to the documentation for further options: https://nodered.org/docs/api/context/
*/
contextStorage: {
default: {
module:"localfilesystem"
},
},
/** `global.keys()` returns a list of all properties set in global context.
* This allows them to be displayed in the Context Sidebar within the editor.
* In some circumstances it is not desirable to expose them to the editor. The
* following property can be used to hide any property set in `functionGlobalContext`
* from being list by `global.keys()`.
* By default, the property is set to false to avoid accidental exposure of
* their values. Setting this to true will cause the keys to be listed.
*/
exportGlobalContextKeys: false,
/** Configure how the runtime will handle external npm modules.
* This covers:
* - whether the editor will allow new node modules to be installed
* - whether nodes, such as the Function node are allowed to have their
* own dynamically configured dependencies.
* The allow/denyList options can be used to limit what modules the runtime
* will install/load. It can use '*' as a wildcard that matches anything.
*/
externalModules: {
// autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */
// autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */
// palette: { /** Configuration for the Palette Manager */
// allowInstall: true, /** Enable the Palette Manager in the editor */
// allowUpdate: true, /** Allow modules to be updated in the Palette Manager */
// allowUpload: true, /** Allow module tgz files to be uploaded and installed */
// allowList: ['*'],
// denyList: [],
// allowUpdateList: ['*'],
// denyUpdateList: []
// },
// modules: { /** Configuration for node-specified modules */
// allowInstall: true,
// allowList: [],
// denyList: []
// }
},
/*******************************************************************************
* Editor Settings
* - disableEditor
* - editorTheme
******************************************************************************/
/** The following property can be used to disable the editor. The admin API
* is not affected by this option. To disable both the editor and the admin
* API, use either the httpRoot or httpAdminRoot properties
*/
//disableEditor: false,
/** Customising the editor
* See https://nodered.org/docs/user-guide/runtime/configuration#editor-themes
* for all available options.
*/
editorTheme: {
/** The following property can be used to set a custom theme for the editor.
* See https://github.com/node-red-contrib-themes/theme-collection for
* a collection of themes to chose from.
*/
//theme: "",
/** To disable the 'Welcome to Node-RED' tour that is displayed the first
* time you access the editor for each release of Node-RED, set this to false
*/
//tours: false,
palette: {
/** The following property can be used to order the categories in the editor
* palette. If a node's category is not in the list, the category will get
* added to the end of the palette.
* If not set, the following default order is used:
*/
//categories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'],
},
projects: {
/** To enable the Projects feature, set this value to true */
enabled: false,
workflow: {
/** Set the default projects workflow mode.
* - manual - you must manually commit changes
* - auto - changes are automatically committed
* This can be overridden per-user from the 'Git config'
* section of 'User Settings' within the editor
*/
mode: "manual"
}
},
codeEditor: {
/** Select the text editor component used by the editor.
* As of Node-RED V3, this defaults to "monaco", but can be set to "ace" if desired
*/
lib: "monaco",
options: {
/** The follow options only apply if the editor is set to "monaco"
*
* theme - must match the file name of a theme in
* packages/node_modules/@node-red/editor-client/src/vendor/monaco/dist/theme
* e.g. "tomorrow-night", "upstream-sunburst", "github", "my-theme"
*/
// theme: "vs",
/** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc.
* for the full list, see https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html
*/
//fontSize: 14,
//fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",
//fontLigatures: true,
}
},
markdownEditor: {
mermaid: {
/** enable or disable mermaid diagram in markdown document
*/
enabled: true
}
},
multiplayer: {
/** To enable the Multiplayer feature, set this value to true */
enabled: false
},
},
/*******************************************************************************
* Node Settings
* - fileWorkingDirectory
* - functionGlobalContext
* - functionExternalModules
* - globalFunctionTimeout
* - functionTimeout
* - nodeMessageBufferMaxLength
* - ui (for use with Node-RED Dashboard)
* - debugUseColors
* - debugMaxLength
* - debugStatusLength
* - execMaxBufferSize
* - httpRequestTimeout
* - mqttReconnectTime
* - serialReconnectTime
* - socketReconnectTime
* - socketTimeout
* - tcpMsgQueueSize
* - inboundWebSocketTimeout
* - tlsConfigDisableLocalFiles
* - webSocketNodeVerifyClient
******************************************************************************/
/** The working directory to handle relative file paths from within the File nodes
* defaults to the working directory of the Node-RED process.
*/
//fileWorkingDirectory: "",
/** Allow the Function node to load additional npm modules directly */
functionExternalModules: true,
/**
* The default timeout (in seconds) for all Function nodes.
* Individual nodes can set their own timeout value within their configuration.
*/
globalFunctionTimeout: 0,
/**
* Default timeout, in seconds, for the Function node. 0 means no timeout is applied
* This value is applied when the node is first added to the workspace - any changes
* must then be made with the individual node configurations.
* To set a global timeout value, use `globalFunctionTimeout`
*/
functionTimeout: 0,
/** The following property can be used to set predefined values in Global Context.
* This allows extra node modules to be made available with in Function node.
* For example, the following:
* functionGlobalContext: { os:require('os') }
* will allow the `os` module to be accessed in a Function node using:
* global.get("os")
*/
functionGlobalContext: {
// os:require('os'),
},
/** The maximum number of messages nodes will buffer internally as part of their
* operation. This applies across a range of nodes that operate on message sequences.
* defaults to no limit. A value of 0 also means no limit is applied.
*/
//nodeMessageBufferMaxLength: 0,
/** If you installed the optional node-red-dashboard you can set it's path
* relative to httpNodeRoot
* Other optional properties include
* readOnly:{boolean},
* middleware:{function or array}, (req,res,next) - http middleware
* ioMiddleware:{function or array}, (socket,next) - socket.io middleware
*/
//ui: { path: "ui" },
/** Colourise the console output of the debug node */
//debugUseColors: true,
/** The maximum length, in characters, of any message sent to the debug sidebar tab */
debugMaxLength: 1000,
/** The maximum length, in characters, of status messages under the debug node */
//debugStatusLength: 32,
/** Maximum buffer size for the exec node. Defaults to 10Mb */
//execMaxBufferSize: 10000000,
/** Timeout in milliseconds for HTTP request connections. Defaults to 120s */
//httpRequestTimeout: 120000,
/** Retry time in milliseconds for MQTT connections */
mqttReconnectTime: 15000,
/** Retry time in milliseconds for Serial port connections */
serialReconnectTime: 15000,
/** Retry time in milliseconds for TCP socket connections */
//socketReconnectTime: 10000,
/** Timeout in milliseconds for TCP server socket connections. Defaults to no timeout */
//socketTimeout: 120000,
/** Maximum number of messages to wait in queue while attempting to connect to TCP socket
* defaults to 1000
*/
//tcpMsgQueueSize: 2000,
/** Timeout in milliseconds for inbound WebSocket connections that do not
* match any configured node. Defaults to 5000
*/
//inboundWebSocketTimeout: 5000,
/** To disable the option for using local files for storing keys and
* certificates in the TLS configuration node, set this to true.
*/
//tlsConfigDisableLocalFiles: true,
/** The following property can be used to verify WebSocket connection attempts.
* This allows, for example, the HTTP request headers to be checked to ensure
* they include valid authentication information.
*/
//webSocketNodeVerifyClient: function(info) {
// /** 'info' has three properties:
// * - origin : the value in the Origin header
// * - req : the HTTP request
// * - secure : true if req.connection.authorized or req.connection.encrypted is set
// *
// * The function should return true if the connection should be accepted, false otherwise.
// *
// * Alternatively, if this function is defined to accept a second argument, callback,
// * it can be used to verify the client asynchronously.
// * The callback takes three arguments:
// * - result : boolean, whether to accept the connection or not
// * - code : if result is false, the HTTP error status to return
// * - reason: if result is false, the HTTP reason string to return
// */
//},
}

Some files were not shown because too many files have changed in this diff Show More