docs(telemetry): qualify invocation event delivery and note Composio connector_key scope

Wording-only: the connector README claimed invocation_completed is
emitted once per invocation; delivery is best-effort with duplicate and
lost events possible, per the existing delivery rule. Also states that
Composio-synced children report connector_key=custom because only the
catalog-validated sourceTemplateKey is read.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 992790e04fb87f9297934bade117e7b2b2f387fb)
This commit is contained in:
nguyenm7 authored and Bender (Paperclip) committed 2026-09-23 22:33:10 +00:00
1 parent c0646cb404
commit 2efc28a3c9
1 file changed
+8 -3
+8 -3
View File
@@ -119,12 +119,17 @@ durable rules are not expressible in the generated `string`/`number` types:
connection's `sourceTemplateKey` only when that key resolves to a reviewed
first-party catalog definition; every other connection emits the literal
`custom`. `connectorKeyForConnection()` in
`server/src/services/connector-telemetry.ts` owns this rule.
`server/src/services/connector-telemetry.ts` owns this rule. Composio-synced
child connections persist a `toolkitSlug` but no catalog
`sourceTemplateKey`, so they report `custom` too; raw toolkit or provider
strings are never exported.
- `connector.connection_created` and `connector.connection_updated` are
emitted only after the lifecycle write commits, from returned rows. Writes
that affect no rows and no-op changes do not emit.
- `connector.invocation_completed` is emitted once per invocation reaching a
terminal status. Its `origin` dimension separates setup tests (the Apps →
- `connector.invocation_completed` is emitted when an invocation reaches a
terminal status — best-effort, so duplicate and lost events are possible
(see the delivery rule below); do not read it as exactly one event per
invocation. Its `origin` dimension separates setup tests (the Apps →
Test tab) from agent and user calls using the durable test-origin columns.
`duration_seconds` is `completedAt - startedAt` rounded to whole seconds and
floored at zero; it is omitted when either timestamp is unavailable.