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

オープン
#1,429 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
docker, python

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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).

主要言語
Python
スター
1.9k
フォーク
351
平均マージ
3日 12時間
マージ済み PR(30日)
22

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

mlco2/codecarbon のほかの issue

mlco2/codecarbon の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。