Telemetry follow-up: tier 2, endpoint hardening, retention

Abierto
#1,429 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
docker, python

Línea de trabajo

Read related issues #1106 and #1200, then inspect the /telemetry endpoint and carbonserver/docker/entrypoint.sh, especially its proxy-header configuration. Resolve the open tier-2 publication and token questions, choose an endpoint-hardening approach, define retention and its purge job, and replace the schema drift approach with one-way generation.

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

Descripción

enhancement

Is your feature request related to a problem? Please describe.

#1200 ships a reduced version of the telemetry proposed in #1106: only the minimal tier, sent once per process to an open /telemetry endpoint, with no API token and no coordinates. This issue tracks what was left out so #1200 could stay small.

Describe the solution you'd like

  1. Tier 2 (extensive). Reintroduce the usage fields from #1106 (integration, output methods, notebook/IDE/CI detection, energy and emissions summary). Open questions: are the fields sent to /telemetry only, or also published as runs and emissions in a public CodeCarbon experiment, as #1106 proposed? The second needs a write token, and a token shipped in an open-source package is public, so it must only be able to write to that one experiment.
  2. Endpoint hardening. The in-process per-IP limit on /telemetry (60 requests per minute) can be bypassed: uvicorn runs with --proxy-headers --forwarded-allow-ips=* (carbonserver/docker/entrypoint.sh), so a client can set its own X-Forwarded-For. It is also per process. Options: trust only the load balancer's addresses, or rate-limit at the proxy.
  3. Retention. Decide how long telemetry rows are kept, document it, and add the purge job.
  4. Schema generation. Generate the server schema from the client one (or the reverse) instead of relying on the drift test.

Describe alternatives you've considered

Keeping tier 2 in #1200. Dropped to get the minimal tier reviewed and deployed first.

Additional context

Related: #1106 (original proposal), #1200 (minimal tier).

Lenguaje dominante
Python
Estrellas
1.9k
Forks
351
Merge medio
3 d 12 h
PR fusionados (30 d)
22

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 mlco2/codecarbon

Todos los issues de mlco2/codecarbon

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.