Skip to content

fix(instrumentation-py): repair Ragas, Replicate, and Restate OTel 2.x spans - #390

Merged
fran3cc merged 1 commit into
respanai:mainfrom
Nightingalelyy:fix/otel2-py-ragas-replicate-restate
Aug 21, 2026
Merged

fix(instrumentation-py): repair Ragas, Replicate, and Restate OTel 2.x spans#390
fran3cc merged 1 commit into
respanai:mainfrom
Nightingalelyy:fix/otel2-py-ragas-replicate-restate

Conversation

@Nightingalelyy

Copy link
Copy Markdown
Contributor

Summary

  • Repair the Ragas, Replicate, and Restate Python instrumentations for the OTel 2.x span contract.
  • Add bounded/redacted serialization, canonical task/workflow/LLM content, precise error status, root/nested entity paths, and shared transactional lifecycle ownership.
  • Add real current-SDK exported-span regressions and one patch release intent for exactly these three packages.

Validation

  • Full source and paired-example diffs were audited against every applicable document under contribution/; canonical span fields, OTel attribute shapes, package boundaries, and release-intent/version ownership have no remaining package-owned violation.
  • Focused package tests pass: Ragas 12/12, Replicate 10/10, Restate 7/7 (29/29).
  • Root-scoped Ruff check and format-check pass for every changed package source and test file.
  • All three wheels build successfully: Ragas a3619789…a7d7c, Replicate fcacbdee…acaf9, Restate c384641e…6c46.
  • Release inventory, release-intent validation, and both repository diff checks pass.
  • Companion locally linked examples completed all 11 processes under exact marker otel2-fix-py-group-24-20260818T031547Z.
  • Respan MCP opened all 11 trace trees and all 30 full record details: one root per trace, exact parentage, 30 unique log IDs and span IDs, complete Ragas evaluation/experiment rows, one Replicate lifecycle LLM call, exact stream/error semantics, Restate handler content, exact markers, and no aliases, credentials, addresses, or duplicates.

External follow-ups

  • Decorated workflow roots above the failed Replicate 429 and Restate 500 children retain error messages but are projected as success/200; package children remain precisely failed and both traces report one error.
  • Full-detail ingestion omits canonical entity-path projection and reports the Replicate model owner as provider ID despite canonical gen_ai.system=replicate; no prohibited alias is added.
  • Replicate live-provider coverage remains credential-gated, and a real Restate server/protocol/replay boundary requires an external runtime.

Companion examples

@Nightingalelyy Nightingalelyy changed the title fix(instrumentation): repair Ragas, Replicate, and Restate OTel 2.x spans fix(instrumentation-py): repair Ragas, Replicate, and Restate OTel 2.x spans Aug 18, 2026
@Nightingalelyy
Nightingalelyy marked this pull request as ready for review August 19, 2026 15:59

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@fran3cc
fran3cc merged commit 360b805 into respanai:main Aug 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants