For the complete documentation index, see llms.txt. Markdown versions are available by appending .md to documentation URLs.

Upgrade SigNoz to v0.143.0 with OTel Collector v0.144.11

Self-Hosted Community - This page applies to self-hosted SigNoz without a license.
Self-Hosted Enterprise - This page applies to self-hosted SigNoz with an active license.

SigNoz v0.143.0 prepares the OTel collector for AI observability and moves login sessions to opaque tokens. Two things follow for self-hosted upgrades: the collector must run signoz-otel-collector v0.144.11 with two new processors in its traces pipeline, and every user signs in again once.

Who needs to act

If youThen
Run the default collector configNothing beyond the upgrade. Sign in again afterwards
Override the collector config or its traces pipelineAdd the two processors before or with the upgrade
Pin the collector image below v0.144.11Move it to v0.144.11, or stay on SigNoz v0.142.x until you can
Call /api/v1/dashboards, /api/v1/public/dashboards/{id}, or /api/v2/metrics/dashboards from scripts or integrationsMove to the V2 or V3 routes before you upgrade, because these routes are deleted and return HTML instead of JSON. See V1 dashboard routes are deleted
Set SIGNOZ_TOKENIZER_JWT_SECRET or SIGNOZ_JWT_SECRET todayYour sessions move to opaque and the secret is ignored. To stay on JWT, add SIGNOZ_TOKENIZER_PROVIDER=jwt before you upgrade. See Keep the JWT session provider

Upgrade Self-Hosted SigNoz

Step 1: Back up your data

Pricing rules and attribute mappings live in the SigNoz Metastore (SQLite or Postgres) alongside dashboards and alerts. Back up the Metastore before you start. If you are more than one release behind, check the Upgrade Path Tool for required stops before you move to v0.143.0.

Step 2: Upgrade SigNoz and the collector

Upgrade both together. SigNoz v0.143.0 requires signoz-otel-collector v0.144.11.

Upgrade foundryctl to pick up the v0.143.0 collector config, then re-apply your existing casting.yaml.

curl -fsSL https://signoz.io/foundry.sh | bash
foundryctl cast -f casting.yaml

cast regenerates the collector config with the two processors when the ingester image is latest or a version that ships them, and keeps the previous config for an older pin. If your casting.yaml pins image versions, bump SigNoz to v0.143.0 and the collector to v0.144.11 yourself; cast refuses SigNoz v0.143.0 paired with a collector that cannot load the processors and tells you to move to v0.144.11.

If your casting sets spec.config on the ingester with its own traces processors list, that list replaces the generated one. Add the two processors to it.

Step 3: Verify the upgrade

  1. SigNoz and the collector are healthy (kubectl get pods -n <namespace>, docker compose ps, docker stack ps <stack-name>, or systemctl status 'signoz-*').
  2. SigNoz reports v0.143.0 under Settings.
  3. The collector log shows no unknown type error for signozspanmapper or signozllmpricing.

Add the AI observability processors to a custom collector config

Add both processors under processors, exactly as below. SigNoz fills groups and default_pricing.rules over OpAMP, so leave them empty here.

processors:
  signozspanmapper:
    groups: []
  signozllmpricing:
    attrs:
      model: gen_ai.request.model
      in: gen_ai.usage.input_tokens
      out: gen_ai.usage.output_tokens
      cache_read: gen_ai.usage.cache_read.input_tokens
      cache_write: gen_ai.usage.cache_creation.input_tokens
    default_pricing:
      rules: []
    output_attrs:
      in: signoz.gen_ai.usage.input_tokens.cost
      out: signoz.gen_ai.usage.output_tokens.cost
      cache_read: signoz.gen_ai.usage.cache_read.input_tokens.cost
      cache_write: signoz.gen_ai.usage.cache_write.input_tokens.cost
      total: signoz.gen_ai.usage.tokens.cost

Then add both to the traces pipeline, after signozspanmetrics/delta and before batch:

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [signozspanmetrics/delta, signozspanmapper, signozllmpricing, batch]
      exporters: [clickhousetraces, metadataexporter, signozmeter]

A collector with the processors defined but missing from the pipeline starts fine; token costs and attribute mapping stay off until the pipeline entries are in place.

Keep the JWT session provider

SigNoz v0.143.0 issues opaque session tokens by default. Before v0.143.0 JWT was the default, so a secret alone was enough. To stay on JWT, set both before you upgrade:

SIGNOZ_TOKENIZER_PROVIDER=jwt
SIGNOZ_TOKENIZER_JWT_SECRET=<your existing secret>

With the jwt provider and no secret, SigNoz refuses to start:

jwt::secret must be set when provider is jwt, without a JWT secret, user sessions are vulnerable to tampering and unauthorized access

If you still use SIGNOZ_JWT_SECRET, rename it to SIGNOZ_TOKENIZER_JWT_SECRET. See Configure the JWT Secret for details.

V1 dashboard routes are deleted

v0.143.0 finishes the dashboard V1 API shutdown that began in v0.135.0. The routes are now deleted rather than returning 501. A call gets the SigNoz web app's HTML page with HTTP 200 instead of JSON, so a script may fail with a JSON parse error. This affects API consumers, automation scripts, and MCP integrations only. There are no UI changes.

  • V1 dashboard CRUD and lock routes are deleted. The six routes (GET/POST /api/v1/dashboards, GET/PUT/DELETE /api/v1/dashboards/{id}, and PUT /api/v1/dashboards/{id}/lock) returned 501 Not Implemented from v0.135.0. They are deleted in v0.143.0. Move to the matching /api/v2/dashboards routes. See the Dashboards V2 API guide for the full mapping.
  • V1 public dashboard routes are removed with no prior 501. GET /api/v1/public/dashboards/{id} and GET /api/v1/public/dashboards/{id}/widgets/{idx}/query_range were still functional before this release and are now deleted. Use GET /api/v2/public/dashboards/{id} and GET /api/v2/public/dashboards/{id}/panels/{key}/query_range. The share-config route /api/v1/dashboards/{id}/public is unaffected.
  • The V2 Metrics Explorer dashboards route is removed. GET /api/v2/metrics/dashboards, which returned the dashboards associated with a metric name, is deleted. Use GET /api/v3/metrics/dashboards.

Getting help

Is this page helpful

Last updated—October 27, 2026