graphprotocol / graphprotocol/graph-node

Add exponentional back-off algorithm and addtional error reporting for firehose/stubstreams connections

Abierto
#4,036 1 comentario 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

firehose Stale
Lenguaje dominante
Rust
Estrellas
3.2k
Forks
1.1k
Merge medio
4 d 1 h
PR fusionados (30 d)
1

Descripción

Do you want to request a feature or report a bug?

bug

What is the current behavior?

When there is an error (eg timeout) on firehose, graph-node waits 2 minutes and then tries again. If the error happens again, it again waits 2 minutes, and so on. If the error is due to software, then this just keeps load on the firehose server forever.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.

There was error in firehose code that demonstrates this problem. The problem has since been fixed in firehose, but can reproduced using the old version. Basically can reproduced by simply having firehose never return any data and drop the connection after a while.

What is the expected behavior?

graph-node to have an exponential retry algorithm (eg 30s, 1m, 2m, 4m, 8m, 16m) instead of the hard-coded 2min.

Additionally there the prometheus exporter in graph-node should be improved to report connections retry interval (so alerts can be generated on problem connections)

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Comienza por el manejo de reintentos de conexión de graph-node con firehose/stubstreams y por el Prometheus exporter. Reproduce el caso descrito de conexión interrumpida/sin datos y, después, sigue el tiempo de espera fijo actual de dos minutos y las métricas de conexión existentes. El trabajo estará terminado cuando los reintentos utilicen intervalos crecientes y el exporter exponga información sobre el intervalo de reintento adecuada para las alertas.

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

Evaluación

Stack tecnológico
prometheus, rust
Área
backend, networking, observability
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.