Skip to content

work-items: probe ccr.session.id in a routine OTEL run #7595

Closed

Description

@kyle-sexton

Parent

Refs #7578 (work-items). Source: PLAN Phase 1, topic poteto-review.

Depends on

  • none: on the frontier now

Outcome

A recorded answer: when a routine runs with OTEL_* set, does the collector receive
ccr.session.id? Cloud cost-per-item mapping (work-items slice h) waits on it.

Decisions

  • Cost per work item: lanes tag telemetry with the item URL, cloud lanes map ccr.session.id to
    items, /harness-ops:observability rolls up usage per item, never prices (D68, Q58, Q560). Origin:
    ours.

Key interfaces

Variation verdicts: "Telemetry sink and cost rollup: contain now; item URL tag, ccr.session.id map,
observability rollup; OTel read-back adapter deferred (Q58, Q560, D61)."

Done when

  • A Probe result: comment records the routine run, the OTEL_* variables set (names only, no
    values or endpoints with credentials), whether the collector received ccr.session.id, and the
    date.

Out of scope

  • Building the per-item rollup (work-items thread).
  • Recording any credential, endpoint secret or collector address.

Activity

  1. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 16, 2026
  2. added theissue type on Oct 16, 2026
  3. github-actions commented on Oct 16, 2026

    @github-actions
    Contributor

    Thanks for the report. Automated triage handed this issue to a maintainer.

    Proposed work class: work-class: read-only
    Basis: automated intake triage; a maintainer confirms or changes it.

    Automated triage. A maintainer reviews it.

  4. kyle-sexton commented on Oct 16, 2026

    @kyle-sexton
    MemberAuthor

    Probe result: the docs say yes. The live check moves to the cost-per-item slice (owner decision, 2026-10-16).

    • Docs read 2026-10-16: the standard attributes on monitoring-usage include ccr.session.id, "Cloud session identifier, the value of CLAUDE_CODE_REMOTE_SESSION_ID, on sessions that run in a cloud environment". On metrics it is controlled by OTEL_METRICS_INCLUDE_SESSION_ID (default true). The page also says "metrics and events from a cloud session carry the standard attributes, including session.id, ccr.session.id, and organization.id".
    • Routines run as cloud sessions in a cloud environment (routines). CLAUDE_CODE_ENABLE_TELEMETRY and the OTEL_* variables go in the environment's variables or in the env block of server-managed settings, not in the setup script (cloud-environments).
    • For the mapping design: the value starts with cse_, but session URLs use session_ (cloud-environments).
    • A live probe needs two things:
      • a public OTLP collector over HTTPS on port 443, with a publicly trusted certificate and no credential;
      • a cloud environment whose network access is set to Custom, allowing only that host. The default Trusted level returns 403 host_not_allowed.
    • No routine was run and no variables were set.
    • The live check moves to work-items slice h, the only consumer: plugins/harness-ops/skills/observability/otel/cc-otel.sql already reads the attribute.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.needs-specNeeds a Brief or plan before anyone can build it.

    Type

    Fields

    Work status

    needs-spec

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions