Skip to content

Latest commit

 

History

History
84 lines (65 loc) · 3.39 KB

File metadata and controls

84 lines (65 loc) · 3.39 KB

Usage Data Reporting

AI Governance requires reporting usage data to Tallyman, a Coder-managed server for billing and reporting purposes. Coder only captures and sends the following information, related to your deployment ID:

  • number of agent workspace builds consumed
  • number of AI Governance seats consumed
  • total Coder Agent runtime consumed per hour, in milliseconds

No user-identifiable information or additional metrics are sent to Tallyman. This information is also shared with Metronome, a Stripe product and Coder partner for usage-based billing and reporting.

To send usage data, your Coder deployment must be able to make outbound HTTPS requests to https://tallyman-prod.coder.com. Usage data is sent approximately every 17 minutes and can be monitored via coderd logs.

Example of a successful request (requires debug logging enabled CODER_LOG_FILTER=.*):

[debu] published usage events to tallyman accepted=5 rejected=0

Example of a request payload:

POST /api/v1/events/ingest HTTP/1.1
Host: tallyman-prod.coder.com
Content-Type: application/json
Coder-License-Key: <license-jwt> # your license JWT for verification
Coder-Deployment-ID: 8a4e92f1-3b7c-4d5e-9f12-abc123def456 # your deployment ID

{
  "events": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000", # unique event ID generated by Coder
      "event_type": "dc_managed_agents_v1", # aka. agent workspace builds
      "event_data": {
        "count": 1
      },
      "created_at": "2025-01-15T14:30:00Z"
    },
    {
      "id": "hb_agent_runtime_v1:2025-01-15_14:00:00", # unique event ID generated by Coder
      "event_type": "hb_agent_runtime_v1", # aka. Coder Agent runtime
      "event_data": {
        "runtime_ms": 3600000
      },
      "created_at": "2025-01-15T14:00:00Z" # start of the hour the runtime was consumed in
    }
  ]
}

Example of a failed request (e.g. Tallyman Server is blocked by your network):

[warn] failed to send publish request to tallyman count=5 error="Post \"https://tallyman-prod.coder.com/api/v1/events/ingest\": dial tcp: lookup tallyman-prod.coder.com: no such host"

Note

Air-gapped deployments and/or those with legal restrictions around usage reporting can contact us to discuss alternative methods.

Agent runtime measurement

Total Coder Agent runtime is summed from per-message generation time (runtime_ms on chat messages).

A message's runtime is the wall-clock duration of the model invocation that produced its content, measured from just before the request to the model provider opens until the response is fully consumed.

What counts:

  • Assistant generation steps, in both top-level chats and sub-agent chats.
  • Context compaction (summarization) model calls.
  • Interrupted generation: the time streamed before the interrupt is kept on the partial assistant message.

What does not count:

  • Local tool execution, including waiting on sub-agents. A sub-agent is its own chat and records its own model invocations, so counting the parent's wait would double count.
  • Idle time: chats waiting for user input or external tool results.
  • Failed model calls whose output was discarded. Retried and errored attempts persist no content, so they record no runtime.
  • Ancillary model calls that produce no chat messages, such as title generation.