Sending logs
| Limit | Value |
|---|---|
| Request size (HTTP body or gRPC message) | 5 MiB, compressed |
| Request size, decompressed | 64 MiB |
| Record body | 64 KiB |
| Attributes per map (resource, scope or record) | 256 |
| Record event time | From the dataset’s retention (its total days) up to 1 day in the future |
| New environments | 10 an hour per project |
ezgh.metadata.* values |
1 to 63 characters, after trimming and lowercasing |
Over a size limit, the request is refused with 413. A record over a record limit is rejected in
partial_success while the rest are stored. Over the new-environments rate, the request is
refused with 429 and retried by the exporter. See Troubleshooting.
Rates
Your organization, and each dataset, has a rate of bytes and requests per second for sending
logs, with a burst above it. Over a rate, requests are refused with 429 / RESOURCE_EXHAUSTED
with a retry delay, and exporters retry them. The organization’s rate (applied to each project
too) counts each request’s decompressed size. A dataset’s rate counts the stored size of its
records, which differs from the request’s size. For traces, the rates count every span received,
including spans that trace sampling then drops.
ezgh obs limits getshows your organization’s rates and bursts, how many searches can run at once, the new-environment rate and the most datasets a project can have, and the effective limits of any dataset with its own (GetLimits). To raise a limit, contact support.
Datasets
| Quota ID | Name | Scope | Adjustable |
|---|---|---|---|
obs.datasets.perProject |
Datasets per project | Project | Yes, up to 100 |
A dataset create over the quota is 409 quota_exceeded, and over the platform’s ceiling of 100
datasets per project, 409 project_dataset_limit. A new environment’s records over either are
rejected in partial_success. ezgh quotas get obs.datasets.perProject --scope-key <project>
shows the limit and usage; see Service quotas.
Dashboards
| Quota ID | Name | Scope | Adjustable |
|---|---|---|---|
obs.dashboards.perProject |
Dashboards per project | Project | Yes, up to 1,000 |
A dashboard has at most 50 panels, 4 queries per panel, 10 variables and 256 KiB of spec, and its last 50 versions are kept. See Dashboards.
Services
| Quota ID | Name | Scope | Adjustable |
|---|---|---|---|
obs.services.perProject |
Services per project | Project | Yes, up to 5,000 |
A project’s service catalog keeps up to 1,000 services by default. Past the quota, new services aren’t cataloged; their data is still stored. Span metrics have their own caps; see Span metrics.
Trace sampling
A dataset’s sampling policy has at most 20 rules, 10 attribute filters per rule and 64 KiB in all, and a decision wait of 5 to 120 seconds.
Retention
| Class | Hot days | Total days |
|---|---|---|
7d-30d (the default) |
7 | 30 |
7d-90d |
7 | 90 |
14d-365d |
14 | 365 |
14d-395d (the default for metrics) |
14 | 395 |
cold-365d |
0 | 365 |
Records past their total days aren’t returned, and are deleted. Metrics’ limits and query budgets are on Metrics.
Search and async queries
| Limit | Value |
|---|---|
| Records per search page | 1 to 100 (default 50) |
| Reading a search’s next pages | Within 10 minutes of its first page |
| Datasets per search | 1 |
| Datasets per async query | 1 to 10, of one project |
| Records an async query keeps | 1 to 100,000 (default 10,000) |
| Groups an async group-by query returns | At most 10,000 |
| Rows per page of async results | 1 to 1,000 (default 100) |
| How long async results are kept | 24 hours by default (resultsExpireAt says when) |
A search has a budget of time and data read. A search over it is refused with
422 query_too_expensive, never cut short: run it as an async query instead.