Skip to content

Commit 864c098

Browse files
noamzbropencode-agent[bot]rekram1-node
authored
add experimental.open_telemetry config option to enable OTEL spans (anomalyco#4978)
Co-authored-by: noamzbr <noamzbr@users.noreply.github.com> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
1 parent cfbaf81 commit 864c098

5 files changed

Lines changed: 18 additions & 0 deletions

File tree

packages/opencode/src/agent/agent.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,15 @@ export namespace Agent {
222222
}
223223

224224
export async function generate(input: { description: string }) {
225+
const cfg = await Config.get()
225226
const defaultModel = await Provider.defaultModel()
226227
const model = await Provider.getModel(defaultModel.providerID, defaultModel.modelID)
227228
const language = await Provider.getLanguage(model)
228229
const system = SystemPrompt.header(defaultModel.providerID)
229230
system.push(PROMPT_GENERATE)
230231
const existing = await list()
231232
const result = await generateObject({
233+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
232234
temperature: 0.3,
233235
prompt: [
234236
...system.map(

packages/opencode/src/config/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,10 @@ export namespace Config {
670670
chatMaxRetries: z.number().optional().describe("Number of retries for chat completions on failure"),
671671
disable_paste_summary: z.boolean().optional(),
672672
batch_tool: z.boolean().optional().describe("Enable the batch tool"),
673+
openTelemetry: z
674+
.boolean()
675+
.optional()
676+
.describe("Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)"),
673677
primary_tools: z
674678
.array(z.string())
675679
.optional()

packages/opencode/src/session/compaction.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import z from "zod"
1010
import { SessionPrompt } from "./prompt"
1111
import { Flag } from "../flag/flag"
1212
import { Token } from "../util/token"
13+
import { Config } from "../config/config"
1314
import { Log } from "../util/log"
1415
import { ProviderTransform } from "@/provider/transform"
1516
import { SessionProcessor } from "./processor"
@@ -96,6 +97,7 @@ export namespace SessionCompaction {
9697
abort: AbortSignal
9798
auto: boolean
9899
}) {
100+
const cfg = await Config.get()
99101
const model = await Provider.getModel(input.model.providerID, input.model.modelID)
100102
const language = await Provider.getLanguage(model)
101103
const system = [...SystemPrompt.compaction(model.providerID)]
@@ -191,6 +193,7 @@ export namespace SessionCompaction {
191193
},
192194
],
193195
}),
196+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
194197
})
195198
if (result === "continue" && input.auto) {
196199
const continueMsg = await Session.updateMessage({

packages/opencode/src/session/prompt.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { Command } from "../command"
4242
import { $, fileURLToPath } from "bun"
4343
import { ConfigMarkdown } from "../config/markdown"
4444
import { SessionSummary } from "./summary"
45+
import { Config } from "../config/config"
4546
import { NamedError } from "@opencode-ai/util/error"
4647
import { fn } from "@/util/fn"
4748
import { SessionProcessor } from "./processor"
@@ -433,6 +434,7 @@ export namespace SessionPrompt {
433434
}
434435

435436
// normal processing
437+
const cfg = await Config.get()
436438
const agent = await Agent.get(lastUser.agent)
437439
msgs = insertReminders({
438440
messages: msgs,
@@ -613,6 +615,7 @@ export namespace SessionPrompt {
613615
},
614616
],
615617
}),
618+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
616619
})
617620
if (result === "stop") break
618621
continue
@@ -1418,6 +1421,7 @@ export namespace SessionPrompt {
14181421
input.history.filter((m) => m.info.role === "user" && !m.parts.every((p) => "synthetic" in p && p.synthetic))
14191422
.length === 1
14201423
if (!isFirst) return
1424+
const cfg = await Config.get()
14211425
const small =
14221426
(await Provider.getSmallModel(input.providerID)) ?? (await Provider.getModel(input.providerID, input.modelID))
14231427
const language = await Provider.getLanguage(small)
@@ -1464,6 +1468,7 @@ export namespace SessionPrompt {
14641468
],
14651469
headers: small.headers,
14661470
model: language,
1471+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
14671472
})
14681473
.then((result) => {
14691474
if (result.text)

packages/opencode/src/session/summary.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Provider } from "@/provider/provider"
2+
import { Config } from "@/config/config"
23
import { fn } from "@/util/fn"
34
import z from "zod"
45
import { Session } from "."
@@ -60,6 +61,7 @@ export namespace SessionSummary {
6061
}
6162

6263
async function summarizeMessage(input: { messageID: string; messages: MessageV2.WithParts[] }) {
64+
const cfg = await Config.get()
6365
const messages = input.messages.filter(
6466
(m) => m.info.id === input.messageID || (m.info.role === "assistant" && m.info.parentID === input.messageID),
6567
)
@@ -109,6 +111,7 @@ export namespace SessionSummary {
109111
],
110112
headers: small.headers,
111113
model: language,
114+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
112115
})
113116
log.info("title", { title: result.text })
114117
userMsg.summary.title = result.text
@@ -150,6 +153,7 @@ export namespace SessionSummary {
150153
},
151154
],
152155
headers: small.headers,
156+
experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry },
153157
}).catch(() => {})
154158
if (result) summary = result.text
155159
}

0 commit comments

Comments
 (0)