GPN Google Monitoring Worker
This internal Worker reads Google Cloud Monitoring request counters and returns them to the Places Worker for accounting reconciliation.
Generated at 2026-06-17T15:36:09.618Z.
Request counts
All Places API requests returned by Google Cloud Monitoring for this period.
86.69% success rate.
13.31% error rate including 4xx and 5xx.
Operational estimate based on successful 2xx requests.
| Field | Value |
|---|---|
| Period start | 2026-06-01T00:00:00.000Z |
| Period end | 2026-06-17T15:36:09.618Z |
| Last reported timestamp | 2026-06-17T15:36:09.618Z |
| Response classes | {"2xx":2280,"4xx":350} |
| Series count | 2 |
| Source | serviceruntime.googleapis.com/api/request_count |
Latest Cloud Monitoring data point end timestamp returned by Google for this request window.
Year / month / week / today summary
Browser timezone usage summary will load once after the page opens.
Status checks
What 2xx and 4xx mean
2xx
2xx means Google accepted and successfully handled the API request. For this Worker, these are counted as successful requests and are the best operational estimate for useful/billable Places calls.
4xx
4xx means Google rejected the request because of something on our side, such as an invalid parameter, invalid field mask, missing input, denied permission, quota/rate issue, or another client-side/API-side problem.
5xx
5xx means a server-side error at Google or upstream infrastructure. These should normally be rare and are useful to monitor separately from 4xx errors.
Multiple Google Places client Workers
Google Cloud Monitoring request-count data is reliable for project-level and service-level reconciliation, but it does not identify which separate Cloudflare Places Worker caused each request.
Best application-level option
Add a stable client_worker_id, site_id, environment, and request_uuid to the D1 accounting log in every Places Worker before calling Google.
Best Google-level option
Use a separate Google Cloud project per major client or environment when hard Google-side separation is required.
Practical setup
Use Cloud Monitoring as the total source of truth, then compare it with D1 counts grouped by client Worker. This gives total reconciliation plus per-client operational accounting.
Current safe settings
| Setting | Status |
|---|---|
| Worker | gpn-google-monitoring-worker |
| Resolved project ID | bluemarloc-june-2023 |
| Project ID source | GOOGLE_CLOUD_PROJECT_ID |
| GOOGLE_CLOUD_PROJECT_ID configured | Yes |
| GOOGLE_CLOUD_PROJECT_ID valid format | Yes |
| GOOGLE_CLOUD_PROJECT_ID note | valid |
| Service-account project_id available | Yes |
| Service-account project_id valid format | Yes |
| Service | places.googleapis.com |
| Method filter | No method filter configured |
| Version filter | No version filter configured |
| Internal API token configured | Yes |
| Service-account JSON configured | Yes |
| Temporary access token configured | No |
Secret values are never printed on this screen.
What this Worker is for
The Places Worker stores lead-generation and browser workspace data. This Monitoring Worker only handles operational accounting against Google Cloud Monitoring.
The intended flow is: browser → gpn-google-places-worker → gpn-google-monitoring-worker → Google Cloud Monitoring API.
This keeps GOOGLE_MONITORING_SERVICE_ACCOUNT_JSON out of the public-facing Places Worker and reduces the blast radius if the UI Worker has a bug.
Endpoints
| Endpoint | Purpose | Protection |
|---|---|---|
GET / | Human-readable status screen. | Public, no secrets shown. |
GET /api/health | Basic uptime check. | Public. |
GET /api/status | Machine-readable configuration status. | Bearer token required. |
GET /api/request-count | Cloud Monitoring request-count reconciliation. | Bearer token required. |
GET /api/usage-summary | Year/month/week/today summary for UTC and browser timezone. | Public, no secrets shown. |
GET /api/google-monitoring/request-count | Alias for request-count reconciliation. | Bearer token required. |
Protected API test
Paste the internal MONITORING_API_TOKEN only when testing this Worker directly. The normal production route is through the Places Worker, so the browser should not need this token.
No protected test has been run yet.