graphprotocol / graphprotocol/graph-node
Add exponentional back-off algorithm and addtional error reporting for firehose/stubstreams connections
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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