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.

✓ Ready

Request counts

Total requests
2,630

All Places API requests returned by Google Cloud Monitoring for this period.

Successful 2xx
2,280

86.69% success rate.

Client errors 4xx
350

13.31% error rate including 4xx and 5xx.

Likely useful/billable
2,280

Operational estimate based on successful 2xx requests.

FieldValue
Period start2026-06-01T00:00:00.000Z
Period end2026-06-17T15:36:09.618Z
Last reported timestamp2026-06-17T15:36:09.618Z
Response classes{"2xx":2280,"4xx":350}
Series count2
Sourceserviceruntime.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

Worker is running
The status page was rendered by the monitoring Worker.
Google Cloud project
Resolved project ID from GOOGLE_CLOUD_PROJECT_ID.
Internal bearer token
MONITORING_API_TOKEN is configured.
Google Monitoring authentication
Service-account JSON is configured.
Monitored API service
Using places.googleapis.com.

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

SettingStatus
Workergpn-google-monitoring-worker
Resolved project IDbluemarloc-june-2023
Project ID sourceGOOGLE_CLOUD_PROJECT_ID
GOOGLE_CLOUD_PROJECT_ID configuredYes
GOOGLE_CLOUD_PROJECT_ID valid formatYes
GOOGLE_CLOUD_PROJECT_ID notevalid
Service-account project_id availableYes
Service-account project_id valid formatYes
Serviceplaces.googleapis.com
Method filterNo method filter configured
Version filterNo version filter configured
Internal API token configuredYes
Service-account JSON configuredYes
Temporary access token configuredNo

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-workergpn-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

EndpointPurposeProtection
GET /Human-readable status screen.Public, no secrets shown.
GET /api/healthBasic uptime check.Public.
GET /api/statusMachine-readable configuration status.Bearer token required.
GET /api/request-countCloud Monitoring request-count reconciliation.Bearer token required.
GET /api/usage-summaryYear/month/week/today summary for UTC and browser timezone.Public, no secrets shown.
GET /api/google-monitoring/request-countAlias 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.

Open /api/health
No protected test has been run yet.