Deprecate --collect-tokens-histogram, auto-collect with --enable-metrics (#23595)
This commit is contained in:
@@ -470,7 +470,6 @@ class TokenizerManager(TokenizerControlMixin, TokenizerManagerScoreMixin):
|
||||
bucket_time_to_first_token=self.server_args.bucket_time_to_first_token,
|
||||
bucket_e2e_request_latency=self.server_args.bucket_e2e_request_latency,
|
||||
bucket_inter_token_latency=self.server_args.bucket_inter_token_latency,
|
||||
collect_tokens_histogram=self.server_args.collect_tokens_histogram,
|
||||
)
|
||||
|
||||
start_cpu_monitor_thread("tokenizer")
|
||||
|
||||
@@ -1151,13 +1151,11 @@ class TokenizerMetricsCollector:
|
||||
bucket_time_to_first_token: Optional[List[float]] = None,
|
||||
bucket_inter_token_latency: Optional[List[float]] = None,
|
||||
bucket_e2e_request_latency: Optional[List[float]] = None,
|
||||
collect_tokens_histogram: bool = False,
|
||||
) -> None:
|
||||
# We need to import prometheus_client after setting the env variable `PROMETHEUS_MULTIPROC_DIR`
|
||||
from prometheus_client import Counter, Histogram
|
||||
|
||||
self.labels = labels or {}
|
||||
self.collect_tokens_histogram = collect_tokens_histogram
|
||||
|
||||
self.prompt_tokens_total = Counter(
|
||||
name="sglang:prompt_tokens_total",
|
||||
@@ -1171,56 +1169,55 @@ class TokenizerMetricsCollector:
|
||||
labelnames=labels.keys(),
|
||||
)
|
||||
|
||||
if collect_tokens_histogram:
|
||||
default_bucket_prompt_tokens = [
|
||||
100,
|
||||
300,
|
||||
500,
|
||||
700,
|
||||
1000,
|
||||
1500,
|
||||
2000,
|
||||
3000,
|
||||
4000,
|
||||
5000,
|
||||
6000,
|
||||
7000,
|
||||
8000,
|
||||
9000,
|
||||
10000,
|
||||
12000,
|
||||
15000,
|
||||
20000,
|
||||
22000,
|
||||
25000,
|
||||
30000,
|
||||
35000,
|
||||
40000,
|
||||
66000,
|
||||
99000,
|
||||
132000,
|
||||
300000,
|
||||
600000,
|
||||
900000,
|
||||
1100000,
|
||||
]
|
||||
self.prompt_tokens_histogram = Histogram(
|
||||
name="sglang:prompt_tokens_histogram",
|
||||
documentation="Histogram of prompt token length.",
|
||||
labelnames=labels.keys(),
|
||||
buckets=generate_buckets(
|
||||
server_args.prompt_tokens_buckets, default_bucket_prompt_tokens
|
||||
),
|
||||
)
|
||||
self.generation_tokens_histogram = Histogram(
|
||||
name="sglang:generation_tokens_histogram",
|
||||
documentation="Histogram of generation token length.",
|
||||
labelnames=labels.keys(),
|
||||
buckets=generate_buckets(
|
||||
server_args.generation_tokens_buckets,
|
||||
default_bucket_prompt_tokens,
|
||||
),
|
||||
)
|
||||
default_bucket_prompt_tokens = [
|
||||
100,
|
||||
300,
|
||||
500,
|
||||
700,
|
||||
1000,
|
||||
1500,
|
||||
2000,
|
||||
3000,
|
||||
4000,
|
||||
5000,
|
||||
6000,
|
||||
7000,
|
||||
8000,
|
||||
9000,
|
||||
10000,
|
||||
12000,
|
||||
15000,
|
||||
20000,
|
||||
22000,
|
||||
25000,
|
||||
30000,
|
||||
35000,
|
||||
40000,
|
||||
66000,
|
||||
99000,
|
||||
132000,
|
||||
300000,
|
||||
600000,
|
||||
900000,
|
||||
1100000,
|
||||
]
|
||||
self.prompt_tokens_histogram = Histogram(
|
||||
name="sglang:prompt_tokens_histogram",
|
||||
documentation="Histogram of prompt token length.",
|
||||
labelnames=labels.keys(),
|
||||
buckets=generate_buckets(
|
||||
server_args.prompt_tokens_buckets, default_bucket_prompt_tokens
|
||||
),
|
||||
)
|
||||
self.generation_tokens_histogram = Histogram(
|
||||
name="sglang:generation_tokens_histogram",
|
||||
documentation="Histogram of generation token length.",
|
||||
labelnames=labels.keys(),
|
||||
buckets=generate_buckets(
|
||||
server_args.generation_tokens_buckets,
|
||||
default_bucket_prompt_tokens,
|
||||
),
|
||||
)
|
||||
|
||||
self.cached_tokens_total = Counter(
|
||||
name="sglang:cached_tokens_total",
|
||||
@@ -1413,11 +1410,10 @@ class TokenizerMetricsCollector:
|
||||
if has_grammar:
|
||||
self.num_so_requests_total.labels(**labels).inc(1)
|
||||
self.histogram_e2e_request_latency.labels(**labels).observe(float(e2e_latency))
|
||||
if self.collect_tokens_histogram:
|
||||
self.prompt_tokens_histogram.labels(**labels).observe(float(prompt_tokens))
|
||||
self.generation_tokens_histogram.labels(**labels).observe(
|
||||
float(generation_tokens)
|
||||
)
|
||||
self.prompt_tokens_histogram.labels(**labels).observe(float(prompt_tokens))
|
||||
self.generation_tokens_histogram.labels(**labels).observe(
|
||||
float(generation_tokens)
|
||||
)
|
||||
self.num_retractions.labels(**labels).observe(retraction_count)
|
||||
|
||||
def observe_time_to_first_token(self, labels: Dict[str, str], value: float):
|
||||
|
||||
@@ -420,7 +420,6 @@ class ServerArgs:
|
||||
bucket_time_to_first_token: Optional[List[float]] = None
|
||||
bucket_inter_token_latency: Optional[List[float]] = None
|
||||
bucket_e2e_request_latency: Optional[List[float]] = None
|
||||
collect_tokens_histogram: bool = False
|
||||
prompt_tokens_buckets: Optional[List[str]] = None
|
||||
generation_tokens_buckets: Optional[List[str]] = None
|
||||
gc_warning_threshold_secs: float = 0.0
|
||||
@@ -4803,9 +4802,8 @@ class ServerArgs:
|
||||
)
|
||||
parser.add_argument(
|
||||
"--collect-tokens-histogram",
|
||||
action="store_true",
|
||||
default=ServerArgs.collect_tokens_histogram,
|
||||
help="Collect prompt/generation tokens histogram.",
|
||||
action=DeprecatedAction,
|
||||
help="Deprecated. Token histograms are now automatically collected when --enable-metrics is set.",
|
||||
)
|
||||
bucket_rule = (
|
||||
"Supports 3 rule types: 'default' uses predefined buckets; 'tse <middle> <base> <count>' "
|
||||
|
||||
Reference in New Issue
Block a user