Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Metric chart with aggFn increase and a multi-column group-by fails: toString() gets several arguments

Abierto Apto para principiantes
#3,477 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@CG-5228 ya está trabajando en esto.

Desde el 26/10/2026.

  • #3478 de @CG-5228 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
clickhouse, typescript

Línea de trabajo

Empieza en packages/common-utils/src/core/renderChartConfig.ts, especialmente en la ruta de filtrado de agrupación por increase descrita en el issue, y compárala con el tratamiento de la CTE de límite de series para las columnas group-by separadas por comas. Revisa las pruebas cercanas de increase con métricas agrupadas y añade cobertura para dos columnas proporcionadas como una cadena separada por comas. Se considera terminado cuando la consulta acepta la agrupación por varias columnas y devuelve una serie por cada par de columnas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

external

What happened?

A metric chart on a Sum metric with aggFn: increase and a group-by of two or more columns, given as a comma-separated string, fails with:

An incorrect number of arguments was specified for function 'toString'. Expected 1 argument, got 2 arguments: In scope SELECT tuple(Attributes['destination_service_name'], Attributes['response_code']) AS group, sum(Rate) AS bucket_value FROM Bucketed WHERE (Attributes['destination_service_name'], ((Attributes['response_code']) IS NOT NULL) AND (toString(Attributes['destination_service_name'], Attributes['response_code']) != '')) GROUP BY group, __hdx_time_bucket2.

Expected: one series per (destination_service_name, response_code) pair, the same as with a single group-by column.

What we checked on the same metric and time range:

  • increase with one group-by column works.
  • sum with the same two-column group-by works.
  • increase with two columns fails both with Map expressions (Attributes['a'], Attributes['b']) and with plain MATERIALIZED columns (`col_a`, `col_b`).

As far as we can tell, the cause is in the top-N ranking added for increase + group-by (packages/common-utils/src/core/renderChartConfig.ts at 7752c88):

Splitting the string group-by the same way before building groupByEmptyFilter should fix it. The tuple(${groupBySql}) parts already work with the comma-separated form.

Steps to reproduce

Reproduces on play.hyperdx.io? Didn't try. We hit it through the MCP tools on our own deployment.

  1. Use a Metric source whose sum table has a counter with two attributes, for example Istio's istio_requests_total (destination_service_name, response_code).
  2. Call the MCP tool clickstack_table with:
    • select: [{"aggFn": "increase", "metricType": "sum", "metricName": "istio_requests_total"}]
    • groupBy: "Attributes['destination_service_name'], Attributes['response_code']"
  3. It fails with the error above.
  4. Change aggFn to sum, or drop the second group-by column. It works.

We haven't checked the UI chart editor. It renders through the same renderChartConfig, so we expect a two-column group-by on an increase chart to fail the same way there.

How are you running HyperDX?

Helm (ClickStack chart 2.1.0) with the hyperdx:2-nightly image, which is 2.42.0 plus the Node bump from #3456. Our own ClickHouse 26.2.5.45.

Where does it show up?

The API: the MCP tool clickstack_table.

Debug info

N/A. We saw this through the API's MCP tools, not the UI.

Logs

The error is quoted above.


Written with help from an AI assistant (Claude Code). The behaviour and the error come from our own deployment.

Lenguaje dominante
TypeScript
Estrellas
10k
Forks
501
Merge medio
2 d 7 h
PR fusionados (30 d)
153

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de hyperdxio/hyperdx

Todos los issues de hyperdxio/hyperdx

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.