Skip to content

Commit 6e230f5

Browse files
committed
Add env vars for configuring the llm_metrics_v1 flush scheudler settings
1 parent c7d2706 commit 6e230f5

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

apps/webapp/app/env.server.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,6 +1288,10 @@ const EnvironmentSchema = z
12881288
LLM_PRICING_RELOAD_INTERVAL_MS: z.coerce.number().int().default(5 * 60 * 1000), // 5 minutes
12891289
LLM_PRICING_SEED_ON_STARTUP: BoolEnv.default(false),
12901290
LLM_PRICING_READY_TIMEOUT_MS: z.coerce.number().int().default(500),
1291+
LLM_METRICS_BATCH_SIZE: z.coerce.number().int().default(5000),
1292+
LLM_METRICS_FLUSH_INTERVAL_MS: z.coerce.number().int().default(2000),
1293+
LLM_METRICS_MAX_BATCH_SIZE: z.coerce.number().int().default(10000),
1294+
LLM_METRICS_MAX_CONCURRENCY: z.coerce.number().int().default(2),
12911295

12921296
// Bootstrap
12931297
TRIGGER_BOOTSTRAP_ENABLED: z.string().default("0"),

apps/webapp/app/v3/eventRepository/clickhouseEventRepository.server.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ export type ClickhouseEventRepositoryConfig = {
8686
* - "v2": Uses task_events_v2 (partitioned by inserted_at to avoid "too many parts" errors)
8787
*/
8888
version?: "v1" | "v2";
89+
/** LLM metrics flush scheduler config */
90+
llmMetricsBatchSize?: number;
91+
llmMetricsFlushInterval?: number;
92+
llmMetricsMaxBatchSize?: number;
93+
llmMetricsMaxConcurrency?: number;
8994
};
9095

9196
/**
@@ -123,13 +128,13 @@ export class ClickhouseEventRepository implements IEventRepository {
123128
});
124129

125130
this._llmMetricsFlushScheduler = new DynamicFlushScheduler({
126-
batchSize: 5000,
127-
flushInterval: 2000,
131+
batchSize: config.llmMetricsBatchSize ?? 5000,
132+
flushInterval: config.llmMetricsFlushInterval ?? 2000,
128133
callback: this.#flushLlmMetricsBatch.bind(this),
129134
minConcurrency: 1,
130-
maxConcurrency: 2,
131-
maxBatchSize: 10000,
132-
memoryPressureThreshold: 10000,
135+
maxConcurrency: config.llmMetricsMaxConcurrency ?? 2,
136+
maxBatchSize: config.llmMetricsMaxBatchSize ?? 10000,
137+
memoryPressureThreshold: config.llmMetricsMaxBatchSize ?? 10000,
133138
loadSheddingEnabled: false,
134139
});
135140
}

apps/webapp/app/v3/eventRepository/clickhouseEventRepositoryInstance.server.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ function initializeClickhouseRepository() {
6464
asyncInsertMaxDataSize: env.EVENTS_CLICKHOUSE_ASYNC_INSERT_MAX_DATA_SIZE,
6565
asyncInsertBusyTimeoutMs: env.EVENTS_CLICKHOUSE_ASYNC_INSERT_BUSY_TIMEOUT_MS,
6666
startTimeMaxAgeMs: env.EVENTS_CLICKHOUSE_START_TIME_MAX_AGE_MS,
67+
llmMetricsBatchSize: env.LLM_METRICS_BATCH_SIZE,
68+
llmMetricsFlushInterval: env.LLM_METRICS_FLUSH_INTERVAL_MS,
69+
llmMetricsMaxBatchSize: env.LLM_METRICS_MAX_BATCH_SIZE,
70+
llmMetricsMaxConcurrency: env.LLM_METRICS_MAX_CONCURRENCY,
6771
version: "v1",
6872
});
6973

@@ -97,6 +101,10 @@ function initializeClickhouseRepositoryV2() {
97101
waitForAsyncInsert: env.EVENTS_CLICKHOUSE_WAIT_FOR_ASYNC_INSERT === "1",
98102
asyncInsertMaxDataSize: env.EVENTS_CLICKHOUSE_ASYNC_INSERT_MAX_DATA_SIZE,
99103
asyncInsertBusyTimeoutMs: env.EVENTS_CLICKHOUSE_ASYNC_INSERT_BUSY_TIMEOUT_MS,
104+
llmMetricsBatchSize: env.LLM_METRICS_BATCH_SIZE,
105+
llmMetricsFlushInterval: env.LLM_METRICS_FLUSH_INTERVAL_MS,
106+
llmMetricsMaxBatchSize: env.LLM_METRICS_MAX_BATCH_SIZE,
107+
llmMetricsMaxConcurrency: env.LLM_METRICS_MAX_CONCURRENCY,
100108
version: "v2",
101109
});
102110

0 commit comments

Comments
 (0)