diff --git a/docs/admin/licensing/index.md b/docs/admin/licensing/index.md index e9d8531d44..bc9a9e932d 100644 --- a/docs/admin/licensing/index.md +++ b/docs/admin/licensing/index.md @@ -1,16 +1,10 @@ # Licensing -Some features are only accessible with a Premium or Enterprise license. See our -[pricing page](https://coder.com/pricing) for more details. To try Premium +Some features are only accessible with a Premium license or the [AI Governance Add-On](../../ai-coder/ai-governance.md). See our +[pricing page](https://coder.com/pricing) for more details. To try paid features, you can [request a trial](https://coder.com/trial) or [contact sales](https://coder.com/contact). - - -You can learn more about Coder Premium in the [Coder v2.16 blog post](https://coder.com/blog/release-recap-2-16-0) - - - ![Licenses screen shows license information and seat consumption](../../images/admin/licenses/licenses-screen.png) ## Adding your license key diff --git a/docs/admin/networking/index.md b/docs/admin/networking/index.md index bab7096ce3..4403617234 100644 --- a/docs/admin/networking/index.md +++ b/docs/admin/networking/index.md @@ -253,6 +253,10 @@ To improve latency and user experience: For help troubleshooting connection issues, including latency problems, refer to the [networking troubleshooting guide](./troubleshooting.md). +## External Network Access + +By default, Coder will access some external network endpoints in order to download dependencies and send usage data. However, all of these features can be disabled. Learn how to configure Coder for [air-gapped environments](../../install/airgap.md). + ## Up next - Learn about [Port Forwarding](./port-forwarding.md) diff --git a/docs/ai-coder/ai-governance.md b/docs/ai-coder/ai-governance.md index 75df0611ce..b4dd7a44a0 100644 --- a/docs/ai-coder/ai-governance.md +++ b/docs/ai-coder/ai-governance.md @@ -56,4 +56,6 @@ In the future, additional capabilities for managing agents (beyond Coder Tasks) Without proper controls and sandboxing, it is not recommended to open up Coder Tasks to a large audience in the enterprise. Coder Premium deployments include 1,000 Agent Workspace Builds, primarily for proof-of-concept use and basic workflows. -Our [AI Governance Add-On](./ai-governance.md) includes a shared usage pool of Agent Workspace Builds for automated workflows, along with limits that scale proportionately with user count. If you are approaching your deployment-wide limits, [contact us](https://coder.com/contact) to discuss your use case with our team. +Our [AI Governance Add-On](./ai-governance.md) includes a shared usage pool of Agent Workspace Builds for automated workflows, along with limits that scale proportionately with user count. Usage counts are measured and sent to Coder via [usage data reporting](./usage-data-reporting.md). Coder Tasks or other AI features do not break when you run over the limit. + +If you are approaching your deployment-wide limits, [contact us](https://coder.com/contact) to discuss your use case with our team. diff --git a/docs/ai-coder/usage-data-reporting.md b/docs/ai-coder/usage-data-reporting.md new file mode 100644 index 0000000000..029a8e7361 --- /dev/null +++ b/docs/ai-coder/usage-data-reporting.md @@ -0,0 +1,48 @@ +# Usage Data Reporting + +The [AI Governance Add-On](./ai-governance.md) 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 + +No user-identifiable information or additional metrics are sent to Tallyman. This information is also shared with [Metronome](https://metronome.com), a Stripe product and Coder partner for usage-based 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=.*`](../reference/cli/server.md#-l---log-filter)): + +```sh +[debu] published usage events to tallyman accepted=5 rejected=0 +``` + +Example of a request payload: + +```sh +POST /api/v1/events/ingest HTTP/1.1 +Host: tallyman-prod.coder.com +Content-Type: application/json +Coder-License-Key: # 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" + } + ] +} +``` + +Example of a failed request (e.g. Tallyman Server is blocked by your network): + +```sh +[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](https://coder.com/contact) to discuss alternative methods. diff --git a/docs/install/airgap.md b/docs/install/airgap.md index cb2f2340a6..30a4237e16 100644 --- a/docs/install/airgap.md +++ b/docs/install/airgap.md @@ -4,15 +4,16 @@ All Coder features are supported in air-gapped / behind firewalls / disconnected This is a general comparison. Keep reading for a full tutorial running Coder air-gapped with Kubernetes or Docker. -| | Public deployments | Air-gapped deployments | -|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) | -| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below | -| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) | -| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). | -| PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) | -| Telemetry | Telemetry is on by default, and [can be disabled](../reference/cli/server.md#--telemetry) | Telemetry [can be disabled](../reference/cli/server.md#--telemetry) | -| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../reference/cli/server.md#--update-check) | +| | Public deployments | Air-gapped deployments | +|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) | +| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below | +| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) | +| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). | +| PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) | +| Telemetry | Telemetry is on by default, and [can be disabled](../reference/cli/server.md#--telemetry) | Telemetry [can be disabled](../reference/cli/server.md#--telemetry) | +| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../reference/cli/server.md#--update-check) | +| AI Governance Usage Count | By default, deployments with the [AI Governance Add On](../ai-coder/ai-governance.md) report usage data | [Contact us](https://coder.com/contact) to request a license with usage reporting off. | ## Air-gapped container images diff --git a/docs/manifest.json b/docs/manifest.json index bbc0a0598a..ed486effb8 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1049,6 +1049,11 @@ "path": "./ai-coder/ai-bridge/reference.md" } ] + }, + { + "title": "Usage Data Reporting", + "description": "Configure AI usage data reporting", + "path": "./ai-coder/usage-data-reporting.md" } ] },