Skip to content

Commit 66b25ea

Browse files
authored
[Chore] Workers pricing partials (#16106)
* [Chore] Workers pricing partials * Add another file and remove table-wrap
1 parent 20e9277 commit 66b25ea

File tree

6 files changed

+49
-58
lines changed

6 files changed

+49
-58
lines changed

src/content/partials/durable-objects/durable-objects-pricing.mdx

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Durable Objects are only available on the [Workers Paid plan](/workers/platform/
1414
| | Paid plan |
1515
| -------------------- | ------------------------------------------------- |
1616
| Requests<sup>1</sup> | 1 million, + $0.15/million |
17-
| Duration<sup>2</sup> | 400,000 GB-s, + {props.one}2.50/million GB-s<sup>3,4</sup> |
17+
| Duration<sup>2</sup> | 400,000 GB-s, + $12.50/million GB-s<sup>3,4</sup> |
1818

1919

2020

@@ -34,57 +34,53 @@ These examples exclude the costs for the Workers calling the Durable Objects.
3434

3535
If a single Durable Object was called by a Worker 1.5 million times, and was active for 1,000,000 seconds in the month, the estimated cost in a month would be:
3636

37-
Total = \~$0.08 USD + Minimum {props.five}/mo usage = {props.five}.08
37+
Total = ~$0.08 USD + Minimum $5/mo usage = $5.08
3838

39-
* (1.5 million requests - included 1 million requests) x $0.15 / 1,000,000 = $0.075
40-
* 1,000,000 seconds \* 128 MB / 1 GB = 128,000 GB-s
41-
* (128,000 GB-s - included 400,000 GB-s) x {props.one}2.50 / 1,000,000 = $0.00
39+
- (1.5 million requests - included 1 million requests) x $0.15 / 1,000,000 = $0.075
40+
- 1,000,000 seconds \* 128 MB / 1 GB = 128,000 GB-s
41+
- (128,000 GB-s - included 400,000 GB-s) x $12.50 / 1,000,000 = $0.00
4242

4343
#### Example 2
4444

4545
If 100 Durable Objects each had 100 WebSocket connections established to each of them which sent approximately one message a minute for a month, the estimated cost in a month would be, if the messages overlapped so that the Objects were actually active for half the month:
4646

47-
Total = \~{props.six}4.65 USD + {props.two}02.36 USD + Minimum {props.five}/mo usage = {props.two}72.01
47+
Total = ~$64.65 USD + $202.36 USD + Minimum $5/mo usage = $272.01
4848

49-
* 100 requests to establish the WebSockets.
50-
* 100 messages per minute \* 100 Durable Objects \* 60 minutes \* 24 hours \* 30 days = 432,000,000 requests
51-
* (432 million requests - included 1 million requests) x $0.15 / 1,000,000 = {props.six}4.65
52-
* 100 Durable Objects \* 60 seconds \* 60 minutes \* 24 hours \* 30 days / 2 = 129,600,000 seconds
53-
* 129,600,000 seconds \* 128 MB / 1 GB = 16,588,800 GB-s
54-
* (16,588,800 GB-s - included 400,000 GB-s) x {props.one}2.50 / 1,000,000 = {props.two}02.36
49+
- 100 requests to establish the WebSockets.
50+
- 100 messages per minute \* 100 Durable Objects \* 60 minutes \* 24 hours \* 30 days = 432,000,000 requests
51+
- (432 million requests - included 1 million requests) x $0.15 / 1,000,000 = $64.65
52+
- 100 Durable Objects \* 60 seconds \* 60 minutes \* 24 hours \* 30 days / 2 = 129,600,000 seconds
53+
- 129,600,000 seconds \* 128 MB / 1 GB = 16,588,800 GB-s
54+
- (16,588,800 GB-s - included 400,000 GB-s) x $12.50 / 1,000,000 = $202.36
5555

5656
#### Example 3
5757

5858
If 100 Durable Objects each had a single WebSocket connection established to each of them, which sent one message a second for a month, and the messages overlapped so that the Objects were actually active for the entire month, the estimated cost in a month would be:
5959

60-
Total = \~{props.three}8.73 USD + {props.four}09.72 USD + Minimum {props.five}/mo usage = {props.four}53.45
60+
Total = ~$38.73 USD + $409.72 USD + Minimum $5/mo usage = $453.45
6161

62-
* 100 requests to establish the WebSockets.
63-
* 1 message per second \* 100 connections \* 60 seconds \* 60 minutes \* 24 hours \* 30 days = 259,200,000 requests
64-
* (259.2 million requests - included 1 million requests) x $0.15 / 1,000,000 = {props.three}8.73
65-
* 100 Durable Objects \* 60 seconds \* 60 minutes \* 24 hours \* 30 days = 259,200,000 seconds
66-
* 259,200,000 seconds \* 128 MB / 1 GB = 33,177,600 GB-s
67-
* (33,177,600 GB-s - included 400,000 GB-s) x {props.one}2.50 / 1,000,000 = {props.four}09.72
62+
- 100 requests to establish the WebSockets.
63+
- 1 message per second \* 100 connections \* 60 seconds \* 60 minutes \* 24 hours \* 30 days = 259,200,000 requests
64+
- (259.2 million requests - included 1 million requests) x $0.15 / 1,000,000 = $38.73
65+
- 100 Durable Objects \* 60 seconds \* 60 minutes \* 24 hours \* 30 days = 259,200,000 seconds
66+
- 259,200,000 seconds \* 128 MB / 1 GB = 33,177,600 GB-s
67+
- (33,177,600 GB-s - included 400,000 GB-s) x $12.50 / 1,000,000 = $409.72
6868

6969
## Transactional Storage API
7070

7171
The [Transactional Storage API](/durable-objects/api/transactional-storage-api/) is only accessible from within Durable Objects. Durable Objects do not have to use the Transactional Storage API, but if your code does call methods on `state.storage`, it will incur the following additional charges:
7272

73-
74-
7573
| | Paid plan |
7674
| -------------------------------- | -------------------------- |
7775
| Read request units<sup>1,2</sup> | 1 million, + $0.20/million |
78-
| Write request units<sup>1</sup> | 1 million, + {props.one}.00/million |
79-
| Delete requests<sup>3</sup> | 1 million, + {props.one}.00/million |
76+
| Write request units<sup>1</sup> | 1 million, + $1.00/million |
77+
| Delete requests<sup>3</sup> | 1 million, + $1.00/million |
8078
| Stored data<sup>4</sup> | 1 GB, + $0.20/ GB-month |
8179

80+
1. A request unit is defined as 4 KB of data read or written. A request that writes or reads more than 4 KB will consume multiple units. For example, a 9 KB write will consume three write request units.
81+
2. List operations are billed by read request units, based on the amount of data examined. For example, a list request that returns a combined 80 KB of keys and values will be billed 20 read request units. A list request that does not return anything is billed for one read request unit.
82+
3. Delete requests are unmetered. For example, deleting a 100 KB value will be charged one delete request.
83+
4. Objects will be billed for stored data until the data is removed. Once the data is removed, the object will be cleaned up automatically by the system.
84+
5. Each alarm write is billed as a single write request unit.
8285

83-
84-
1. A request unit is defined as 4 KB of data read or written. A request that writes or reads more than 4 KB will consume multiple units. For example, a 9 KB write will consume three write request units.
85-
2. List operations are billed by read request units, based on the amount of data examined. For example, a list request that returns a combined 80 KB of keys and values will be billed 20 read request units. A list request that does not return anything is billed for one read request unit.
86-
3. Delete requests are unmetered. For example, deleting a 100 KB value will be charged one delete request.
87-
4. Objects will be billed for stored data until the data is removed. Once the data is removed, the object will be cleaned up automatically by the system.
88-
5. Each alarm write is billed as a single write request unit.
89-
90-
Requests that hit the Durable Objects in-memory cache or that use the [multi-key versions of `get()`/`put()`/`delete()` methods](/durable-objects/api/transactional-storage-api/) are billed the same as if they were a normal, individual request for each key.
86+
Requests that hit the Durable Objects in-memory cache or that use the [multi-key versions of `get()`/`put()`/`delete()` methods](/durable-objects/api/transactional-storage-api/) are billed the same as if they were a normal, individual request for each key.

src/content/partials/workers/d1-pricing.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33

44
---
55

6-
import { Markdown } from "~/components"
6+
| | [Workers Free](/workers/platform/pricing/#workers) | [Workers Paid](/workers/platform/pricing/#workers) |
7+
| ------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------ |
8+
| Rows read | 5 million / day | First 25 billion / month included + $0.001 / million rows |
9+
| Rows written | 100,000 / day | First 50 million / month included + $1.00 / million rows |
10+
| Storage (per GB stored) | 5 GB (total) | First 5 GB included + $0.75 / GB-mo |
711

8-
| | [Workers Free](/workers/platform/pricing/#workers) | [Workers Paid](/workers/platform/pricing/#workers) |
9-
| ----------------------- | -------------------------------------------------- | ---------------------------------------------------------- |
10-
| Rows read | 5 million / day | First 25 billion / month included + $0.001 / million rows |
11-
| Rows written | 100,000 / day | First 50 million / month included + {props.one}.00 / million rows |
12-
| Storage (per GB stored) | 5 GB (total) | First 5 GB included + $0.75 / GB-mo |
1312

14-
### Definitions
1513

14+
### Definitions
1615
1. Rows read measure how many rows a query reads (scans), regardless of the size of each row. For example, if you have a table with 5000 rows and run a `SELECT * FROM table` as a full table scan, this would count as 5,000 rows read. A query that filters on an [unindexed column](/d1/build-with-d1/use-indexes/) may return fewer rows to your Worker, but is still required to read (scan) more rows to determine which subset to return.
1716
2. Rows written measure how many rows were written to D1 database. A query that `INSERT` 10 rows into a `users` table would count as 10 rows written.
1817
3. Row size or the number of columns in a row does not impact how rows are counted. A row that is 1 KB and a row that is 100 KB both count as one row.
@@ -21,3 +20,4 @@ import { Markdown } from "~/components"
2120
6. Storage is based on gigabytes stored per month, and is based on the sum of all databases in your account. Tables and indexes both count towards storage consumed.
2221
7. Free limits reset daily at 00:00 UTC. Monthly included limits reset based on your monthly subscription renewal date, which is determined by the day you first subscribed.
2322
8. There are no data transfer (egress) or throughput (bandwidth) charges for data accessed from D1.
23+
8. There are no data transfer (egress) or throughput (bandwidth) charges for data accessed from D1.

src/content/partials/workers/durable_objects_pricing.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import { Markdown } from "~/components"
77

88
[Durable Objects](/durable-objects/) are only available on the [Workers Paid plan](/workers/platform/pricing/#workers).
99

10-
| | Paid plan |
11-
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
12-
| Requests | 1 million, + $0.15/million<br/> Includes HTTP requests, RPC sessions<sup>1</sup>, WebSocket messages<sup>2</sup>, and alarm invocations |
13-
| Duration<sup>3</sup> | 400,000 GB-s, + {props.one}2.50/million GB-s<sup>4,5</sup> |
10+
| | Paid plan |
11+
| -------- | ------------------------------------------------- |
12+
| Requests | 1 million, + $0.15/million<br/> Includes HTTP requests, RPC sessions<sup>1</sup>, WebSocket messages<sup>2</sup>, and alarm invocations |
13+
| Duration<sup>3</sup> | 400,000 GB-s, + $12.50/million GB-s<sup>4,5</sup> |
1414

1515
<sup>1</sup> Each [RPC session](/workers/runtime-apis/rpc/lifecycle/) is billed as one request to your Durable Object. Every [RPC method call](/durable-objects/best-practices/create-durable-object-stubs-and-send-requests/#call-rpc-methods) on a [Durable Objects stub](/durable-objects/best-practices/create-durable-object-stubs-and-send-requests/#get-a-durable-object-stub) is its own RPC session and therefore a single billed request.
1616

src/content/partials/workers/kv_pricing.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Workers KV is included in both the Free and Paid [Workers plans](/workers/platfo
1010
| | Free plan<sup>1</sup> | Paid plan |
1111
| --------------- | --------------------- | --------------------------------- |
1212
| Read requests | 100,000 / day | 10 million/month, + $0.50/million |
13-
| Write requests | 1,000 / day | 1 million/month, + {props.five}.00/million |
14-
| Delete requests | 1,000 / day | 1 million/month, + {props.five}.00/million |
15-
| List requests | 1,000 / day | 1 million/month, + {props.five}.00/million |
13+
| Write requests | 1,000 / day | 1 million/month, + $5.00/million |
14+
| Delete requests | 1,000 / day | 1 million/month, + $5.00/million |
15+
| List requests | 1,000 / day | 1 million/month, + $5.00/million |
1616
| Stored data | 1 GB | 1 GB, + $0.50/ GB-month |
1717

18-
<sup>1</sup> The Workers Free plan includes limited Workers KV usage. All limits reset daily at 00:00 UTC. If you exceed any one of these limits, further operations of that type will fail with an error.
18+
<sup>1</sup> The Workers Free plan includes limited Workers KV usage. All limits reset daily at 00:00 UTC. If you exceed any one of these limits, further operations of that type will fail with an error.

src/content/partials/workers/transactional_storage_api_pricing.mdx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33

44
---
55

6-
import { Markdown } from "~/components"
7-
86
The Durable Objects [Transactional Storage API](/durable-objects/api/transactional-storage-api) is only accessible from within Durable Objects.
97

108
Durable Objects do not have to use the Transactional Storage API, but if your code does call methods on `state.storage`, it will incur the following additional charges:
119

1210
| | Paid plan |
1311
| -------------------------------- | -------------------------- |
1412
| Read request units<sup>1,2</sup> | 1 million, + $0.20/million |
15-
| Write request units<sup>3</sup> | 1 million, + {props.one}.00/million |
16-
| Delete requests<sup>4</sup> | 1 million, + {props.one}.00/million |
13+
| Write request units<sup>3</sup> | 1 million, + $1.00/million |
14+
| Delete requests<sup>4</sup> | 1 million, + $1.00/million |
1715
| Stored data<sup>5</sup> | 1 GB, + $0.20/ GB-month |
1816

1917
<sup>1</sup> A request unit is defined as 4 KB of data read or written. A request that writes or reads more than 4 KB will consume multiple units, for example, a 9 KB write will consume 3 write request units.

src/content/partials/workers/vectorize-pricing.mdx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,15 @@
33

44
---
55

6-
import { Markdown } from "~/components"
7-
8-
| | [Workers Paid](/workers/platform/pricing/#workers) | [Workers Free](/workers/platform/pricing/#workers) <sup>1</sup> |
9-
| ----------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------- |
10-
| **Total queried vector dimensions** | First 50 million queried vector dimensions / month included + $0.040 per million | 30 million queried vector dimensions / month |
11-
| **Total stored vector dimensions** | First 10 million stored vector dimensions + $0.040 per million | 5 million stored vector dimensions |
6+
| | [Workers Paid](/workers/platform/pricing/#workers) | [Workers Free](/workers/platform/pricing/#workers) <sup>1</sup> |
7+
| ------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
8+
| **Total queried vector dimensions** | First 50 million queried vector dimensions / month included + $0.040 per million | 30 million queried vector dimensions / month |
9+
| **Total stored vector dimensions** | First 10 million stored vector dimensions + $0.040 per million | 5 million stored vector dimensions |
1210

1311
<sup>1</sup> Vectorize will be available to developers on the Workers Free plan in the future.
14-
1512
### Calculating vector dimensions
1613

1714
To calculate your potential usage, calculate the sum of your stored + queried vectors, multiply by the dimension size, and multiply by the unit price (divided by 1 million). The formula is defined as `(stored vectors + queried vectors) * dimensions * ($0.040 / 1000000)`
1815

1916
* For example, inserting 10,000 vectors of 768 dimensions each, and querying those 1,000 times per day (30,000 times per month) would be calculated as `(30000 * 768) = 23,040,000` queried dimensions and `(10000 * 768) = 7,680,000` stored dimensions (within the included monthly allocation)
20-
* Separately, and excluding the included monthly allocation, this would be calculated as `(30,000+10,000) * 768 * ($0.040 / 1,000,000)` and sum to {props.one}.23 per month.
17+
* Separately, and excluding the included monthly allocation, this would be calculated as `(30,000+10,000) * 768 * ($0.040 / 1,000,000)` and sum to $1.23 per month.

0 commit comments

Comments
 (0)