feat(examples): kotlin-koog-engram-cloud-demo (re-target to main)#5
feat(examples): kotlin-koog-engram-cloud-demo (re-target to main)#5
Conversation
…Jet OTLP A Kotlin/Spring Boot reference demo showing how a Koog agent (JetBrains' Kotlin agent framework) ships traces to JamJet Cloud via OTLP/JSON. The headline file is cloud/JamjetCloudExporter.kt: a single extension function on Koog's OpenTelemetryConfig that mirrors the addDatadogExporter / addLangfuseExporter pattern shipped by Koog itself. Drop it into any Koog agent's install(OpenTelemetry) block and JamJet sees every LLM span, tool span, and cost rollup. The demo wires: - Koog 0.8.0 AIAgent with singleRunStrategy + ToolRegistry - koog-spring-boot-starter — autoconfigures OpenAI MultiLLMPromptExecutor - agents-features-opentelemetry-jvm — the OpenTelemetry feature - engram-spring-boot-starter — autoconfigures EngramClient - MemoryTools as a Koog ToolSet with @tool / @LLMDescription methods backed by Engram for durable memory across chat turns - A custom OTLP/JSON SpanExporter (Java OTel SDK has protobuf only in 1.37, JamJet's intake is JSON-only) Smoke-tested end to end against the local JamJet stack: 8 traces ingested, each tagged service.name=kotlin-koog-engram-demo, with LLM + tool spans and cost data populated correctly. Standalone Maven module — not registered in root pom <modules>.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (15)
✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Re-introduces the Kotlin Koog + Engram + JamJet Cloud demo to
main. The original PR #4 was merged into PR #3's feature branch after PR #3 had already merged intomain, so this commit (32c8a9b) never landed onmain. This PR fixes that — same single commit, no drift, additive only (15 files / +1370 LOC underexamples/kotlin-koog-engram-cloud-demo/).What's in it
JamjetCloudExporter.kt(~165 LOC) — Koog 0.8.0 OpenTelemetry feature extensionaddJamjetCloudExporter(...)that ships spans to JamJet via OTLP/JSON. Includes a custom OTLP/JSON marshaler since published Koog 0.8.0 doesn't ship one.PreflightCheck.kt— validates env vars + Engram/healthbefore the server accepts requestsdocker-compose.yml+.env.examplecovering the cross-platform run flowapi.jamjet.dev/v1/otlp/v1/traces, deployed 2026-05-08), so the demo points at prod by default.Why now
OTLP/JSON intake (jamjet-cloud PR #15) shipped to prod today, which is what makes this demo land cleanly — Koog → OTLP exporter →
api.jamjet.dev→ dashboard atcloud.jamjet.dev/dashboard/graph(alias ofapp.jamjet.dev). Without the OTLP route this demo couldn't reach prod.Test plan
cd examples/kotlin-koog-engram-cloud-demo && docker compose up -d && ./gradlew bootRuncurl -X POST localhost:8181/chat?session=alice -d '{"message":"my favorite color is teal"}'cloud.jamjet.dev/dashboard/graphtaggedservice.name=kotlin-koog-engram-demoFollowups (not blocking this PR)
addJamjetCloudExporterasai.koog:agents-features-opentelemetry-jamjet