charts icon indicating copy to clipboard operation
charts copied to clipboard

helm chart 0.28.0 schema-migrator fatal error: failed to parse dsn

Open voriol opened this issue 1 year ago • 5 comments

Today, I update to the latest version of helm chart (2.8.0) and latest version of otel-collector (0.79.11, https://github.com/SigNoz/signoz-otel-collector/issues/180) and I have received the following error in the schema-migrator:

schema-migrator {"level":"fatal","timestamp":"2023-10-25T07:03:10.780Z","caller":"signozschemamigrator/migrate.go:79","msg":"Failed to create migration manager","component":"migrate cli","error":"failed to parse dsn: parse \"tcp://<external-clickhouse-server>:%!s(float64=<external-clickhouse-port>)?username=**********&password=ignored\": invalid port \":%!s(float64=<external-clickhouse-port>)\" after host","stacktrace":"main.main\n\t/home/runner/work/signoz-otel-collector/signoz-otel-collector/cmd/signozschemamigrator/migrate.go:79\nruntime.main\n\t/opt/hostedtoolcache/go/1.20.10/x64/src/runtime/proc.go:250"}

Does anyone have an idea what could be happening? There seems to be a problem when building the clickhouse endpoint url.

Thanks

voriol avatar Oct 25 '23 07:10 voriol

Something with the ClickHouse DNS isn't correct. It seems to be unable to parse.

Would it be possible for you to share your override values of the externalClickhouse section? Feel free to redact the sensitive information with dummy values which look identical in nature.

prashant-shahi avatar Oct 26 '23 12:10 prashant-shahi

For sure:

  ## External clickhouse configuration
  ## This is required when clickhouse.enabled is false
  ##
  externalClickhouse:
    # -- Host of the external cluster.
    host: hostname.domain
    # -- Name of the external cluster to run DDL queries on.
    cluster: external_cluster
    # -- Database name for the external cluster
    database: signoz_metrics
    # -- Clickhouse trace database (SigNoz Traces)
    traceDatabase: signoz_traces
    # -- User name for the external cluster to connect to the external cluster as
    user: "someUername"
    # -- Password for the cluster. Ignored if existingClickhouse.existingSecret is set
    password: "ignored"
    # -- Name of an existing Kubernetes secret object containing the password
    existingSecret: clickhouse-password
    # -- Name of the key pointing to the password in your Kubernetes secret
    existingSecretPasswordKey: clickhouse-password
    # -- Whether to use TLS connection connecting to ClickHouse
    secure: false
    # -- Whether to verify TLS connection connecting to ClickHouse
    verify: false
    # -- HTTP port of Clickhouse
    httpPort: 9999
    # -- TCP port of Clickhouse
    tcpPort: 9999

Thanks for all

voriol avatar Oct 26 '23 12:10 voriol

The issue is in the clickhouse.httpUrl variable. It is appending the port 8123 in the end by default

mayur2281 avatar Nov 09 '23 15:11 mayur2281

For sure:

  ## External clickhouse configuration
  ## This is required when clickhouse.enabled is false
  ##
  externalClickhouse:
    # -- Host of the external cluster.
    host: hostname.domain
    # -- Name of the external cluster to run DDL queries on.
    cluster: external_cluster
    # -- Database name for the external cluster
    database: signoz_metrics
    # -- Clickhouse trace database (SigNoz Traces)
    traceDatabase: signoz_traces
    # -- User name for the external cluster to connect to the external cluster as
    user: "someUername"
    # -- Password for the cluster. Ignored if existingClickhouse.existingSecret is set
    password: "ignored"
    # -- Name of an existing Kubernetes secret object containing the password
    existingSecret: clickhouse-password
    # -- Name of the key pointing to the password in your Kubernetes secret
    existingSecretPasswordKey: clickhouse-password
    # -- Whether to use TLS connection connecting to ClickHouse
    secure: false
    # -- Whether to verify TLS connection connecting to ClickHouse
    verify: false
    # -- HTTP port of Clickhouse
    httpPort: 9999
    # -- TCP port of Clickhouse
    tcpPort: 9999

Thanks for all

try it like this: tcpPort: "9999"

lwjamir avatar Nov 15 '23 09:11 lwjamir

But what if i dont want a custom port?

mayur2281 avatar Nov 15 '23 10:11 mayur2281