OpsDesk AcademyGet the project Code · prompts · workflows
PART 4 OF 6 · ONE HOUR

Follow every action

Connect agent traces, app traces and operational logs.

YOUR DELIVERABLEA trace map, one exact Langfuse readback and a documented app/log correlation path.
EXTEND THE SAME APP

Start with: The same app with a verified model binding and usage display from Part 3.

Add now: Correlated OTel spans, Langfuse readback and an OCI app/log integration path.

Download Part 4 agent instructions (.md)
SAME APP · CHOOSE YOUR WORKFLOW

Choose the depth that fits you.

All three paths build the same capabilities. The explanation and implementation method change; the required app result does not.

No IT knowledge / C-level

Browser-first. Describe the outcome, use a builder and validate the result in plain language.

Explain the words in this route
Backend
The private part of the app that calls AI and runs approved lookups; your builder can generate it.
Tool evidence
Information returned by an actual permitted lookup, not a model’s guess.
Guardrail
A rule enforced by the app before an action can run.

Bring: An owned builder account, available build credits and an explicitly selected app AI/backend option. No terminal is required for this route.

YOUR NEXT CAPABILITYCorrelated OTel spans, Langfuse readback and an OCI app/log integration path.
  1. Create your own hosted Langfuse project or use your own existing installation. Keep its project keys private.
  2. Give the builder the instrumentation prompt. Store project keys in server secrets and disable content capture.
  3. Run one synthetic ticket action and find its actual trace ID in your own Langfuse project.
  4. Explain local recording, delivery and readback in plain language. APM/log integration is an optional separate setup.

Browser-first: no terminal commands are required in this route. Use supported builder backend features; access and credits remain prerequisites.

Prompt for your builder or coding assistant
Extend our existing OpsDesk app for Part 4: Correlated OTel spans, Langfuse readback and an OCI app/log integration path. Follow this No IT knowledge / C-level learner route. Explain the next action in plain language and use the builder UI; do not require me to run terminal commands. Implement backend checks in code, not just in a prompt. Use synthetic data and my explicitly selected backend. Never invent a successful answer, usage or trace. Keep keys in server secrets. Do not publish, buy credits, activate cloud services or change permissions without specific authority. Complete the route actions, verify actual results and report blockers honestly.
Check your route steps

0 of 4 steps checked · self-reported

Download this persona’s Part 4 instructions (.md)

Go deeper · what each link explains
ONE OBSERVED RUN · NOT A LIVE REPLAY

From one click to two model calls.

The real Lovable app inspector recorded this synthetic investigation on 31 October 2026. Bars use the reported event timestamps; the tool markers are events, because separate tool durations were not measured.

2 model calls2 synthetic tools952 reported tokens5.218 seconds elapsedCost: unknown

Browser-inspector observations, not Langfuse/APM readback or a benchmark. Timing granularity does not establish tool duration. No prompt, answer, account ID, trace ID or private endpoint is embedded in this chart. Read the actual rehearsal recipe.

SEE THE RESULT · PART 4

Find the same action in Langfuse

See what the agent actually did, while excluding personal data, secrets and prompt content from workshop telemetry.

Reviewed actual OpsDesk app capture for Find the same action in Langfuse
Actual Lovable rehearsal · synthetic data · reviewed pixels. Open image for detail.

Try this

Provide LANGFUSE_BASE_URL, LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY only through the app's server-side settings.

  1. Use the three-value instrumentation prompt with your current builder and existing LLM.
  2. Run one synthetic investigation and retain its actual trace/session identifiers privately.
  3. Find that exact trace in your own Langfuse project and check the root, authorization, actual generations and tools.

What it should look like

Your real Langfuse project shows a trace tree and reported usage. Until configured, the app explicitly displays Langfuse not configured; no imitation dashboard is presented as evidence.

What a good result says

Expected structure: agent root → authorization; generation 1 → tools; generation 2 → answer. Export acknowledgment and independent readback are separate results. OCI APM spans and Log Analytics events require their own configured destinations and readback.

Observed checkpoint

Native Lovable normal-run and zero-model policy traces independently verified in Langfuse by exact trace/session correlation. Final downloaded app source passes 49 isolated tests.

Still required

Repeat configuration and exact readback in your own project. OCI APM and Log Analytics require separate export and provider acceptance; they are not proved by these Langfuse checks.

App walkthrough and all expected results → · Reviewed evidence →

EXPLORE THE IDEA · SYNTHETIC ILLUSTRATION

No model call, permission decision, cloud action or telemetry export is performed by this illustration. Use your actual app and receipts for acceptance.
Shared engineering tasks · optional reference for the business route
00–15 MINUTES

1. Name the boundaries

Different signals answer different questions.

  1. Draw browser → app server → agent → model/tool.
  2. Add Langfuse for agent analysis, APM for application tracing and Log Analytics for structured log queries.
  3. Choose a trace ID field and service/run metadata; keep ticket content out by default.
EXPECTED RESULTThe map explains who records, exports and independently queries each signal.
If you get stuck

The local Studio enables Langfuse, not an automatic three-destination export. The OCI-backed runtime is a separate integration.

15–30 MINUTES

2. Enable metadata-only OTel

Instrument the operation that actually happens.

  1. Read OTEL-LANGFUSE.md and use your own private project key references.
  2. Enable export in your own private config; keep capture_content false.
  3. After configuration is ready, run one bounded synthetic task.
Prompt for your coding assistant
Add Langfuse visibility to this existing working AI app without rebuilding it.
I will supply only LANGFUSE_BASE_URL, LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY
through the platform's server-side secret/environment settings. Never ask me to
paste keys in this chat, expose them in browser code, use a public-prefixed env
variable, or create a new model/provider connection. Keep the app's current LLM.

Inspect the actual server execution path and any existing OpenTelemetry setup.
Reuse it; do not add duplicate spans/exporters. Use current official Langfuse
SDK/OTLP documentation and a version compatible with the selected server/runtime.
Current JS/TS SDK v6 and Python SDK v5 require Langfuse v4.59.0+; for older self-hosted
servers use a compatible supported SDK or OTLP path. Record exact dependency
versions. Do not copy a legacy ingestion API example into a new Cloud integration.

Instrument actual work: one agent root/trace per app action; a random server-owned
session label for conversation grouping; authorization; one generation for each
actual model call; validated tool calls with their actual success/failure. Record
model ID and provider-reported usage, or unknown if not available. Keep the
explicit change-intent stop before model construction and show zero generations
on that path. Do not expose hidden chain-of-thought.

Export metadata only: no names, emails, account/tenant IDs, ticket text,
prompts/answers, tool payloads, keys or private endpoints. Filter attributes before
export, including attributes added automatically by framework integrations.
Use a deliberate allowed-host destination and server-only project credentials.
Wait/flush appropriately in the actual server runtime, but do not claim that
flush success proves backend readback. Report telemetry failure separately from
AI outcome; never replace a real answer with a fake success or retry AI just to
repair a trace.

Make configuration simple: missing values display 'Langfuse not configured';
saving secrets does not run inference. After one real synthetic app action, show
the actual trace ID, export outcome and a link to the correct Langfuse project
trace when available. Independently find that exact trace/session and expected
observations in the intended project before marking 'verified'. Do not invent
IDs, screenshots, costs or delivered traces.

Test the app's existing happy path, a zero-generation change stop, a dependency
failure and missing/rejected telemetry config. Keep raw receipts private. Give me
one short setup checklist and explain exactly where the three values belong in
this platform. Do not publish, purchase, alter account-wide permissions or send
telemetry to an unapproved destination.
EXPECTED RESULTThe local receipt has actual span IDs and an exporter result.
If you get stuck

Do not add duplicate automatic instrumentation around the same model call. Export failure must not become a fake delivered trace.

30–45 MINUTES

3. Verify the exact trace

A successful flush is only one checkpoint.

  1. Use the same runtime session to request verification of its exact trace.
  2. Inspect your Langfuse project for that trace and the expected observations.
  3. Preserve a sanitized acceptance checklist; keep raw receipts private.
PYTHONPATH=src .venv/bin/python -m unittest discover -s tests -p 'test_trace_walkthrough.py' -v
EXPECTED RESULTThe expected session, generation/tool observations and exact trace are found, or the missing checkpoint is named.
If you get stuck

For 401/403 check destination/auth and the responding service; for delay use bounded readback, not repeated paid inference.

45–60 MINUTES

4. Join application and log evidence

One incident spans more than an LLM call.

  1. For the OCI extension, inspect the existing Observer/runtime export configuration and your authorized destinations.
  2. Use a configured APM trace and a structured log carrying its trace ID.
  3. Query the exact identifier within a bounded time window; discover actual Log Analytics fields first.
Prompt for your coding assistant
Prepare a correlation checklist for one synthetic request across agent OTel, OCI APM and Log Analytics. Identify the existing runtime modules and exporter paths, trace ID propagation and actual parser fields needed. Separate source/configuration from provider readback. Do not create resources or send data until a destination is explicitly configured.
EXPECTED RESULTLive acceptance requires independent readback from each configured destination. Without OCI, submit a clearly labelled correlation design.
If you get stuck

Do not paste a guessed Log Analytics query or claim that a Langfuse span proves APM/log ingestion. Keep credentials and identifiers off the public course.

COMPLETE THIS PART ONLY WHEN

Good questions. Short answers.

What is the difference between a session and a trace?

A session groups a conversation. One action has its own trace, with child spans for actual generations, tools and policy decisions. Use the exact trace ID to connect one action to its evidence.

Follow one action →
Why three receipts?

Local recording, exporter delivery and independent destination readback answer different questions. A flushed batch does not prove the trace can be queried in the intended project.

Read the verification contract →
Do Langfuse, APM and Log Analytics receive the same thing?

They serve different investigation views. Configure each supported path deliberately, propagate an identifier and verify each destination separately. The local Studio does not automatically enable all three.

View the signal boundaries →

Explain it back

Does finding a trace in Langfuse prove the app logs reached Log Analytics?

Check the explanation

No. Each destination needs its own exact identifier/time-bound readback.

No answer is uploaded or graded. Your Markdown download contains the full agent instructions plus your optional notes; review it before sharing.

0 tasks checked · self-reported, reset on reload

Primary references

Continue to Part 5 →