Skip to content

[Service] Implement Cloud Monitoring / Metrics (gRPC + REST) #45

Description

@hectorvent

Summary

Implement Cloud Monitoring (Metrics) — custom metric ingestion + read. Complements Cloud Logging for observability assertions in tests.

Protocol / transport

gRPC google.monitoring.v3.MetricService + REST.

Authoritative reference

  • Proto: local/google/googleapis/google/monitoring/v3/metric_service.proto (+ google/api/metric.proto, monitored_resource.proto in common protos)
  • SDK: local/google/google-cloud-java/java-monitoring

Scope (MVP)

  • CreateMetricDescriptor, GetMetricDescriptor, ListMetricDescriptors, DeleteMetricDescriptor
  • CreateTimeSeries, ListTimeSeries
  • ListMonitoredResourceDescriptors
  • Store time series keyed by project + metric type + label set

Parity notes

  • TimeSeries points = interval + typed value; validate metricKind / valueType.
  • ListTimeSeries filter + (basic) aggregation/alignment subset.

Test plan

java-monitoring: create a custom metric descriptor, write a TimeSeries, ListTimeSeries back, assert points + labels.


Implementation guidance: Follow the google-parity workflow — read the authoritative proto/SDK under local/google/* before implementing, mirror the wire shape exactly, and validate with GCP SDK-based compatibility tests (compatibility-tests/sdk-test-java). See AGENTS.md → "Adding a New GCP Service". Keep storage namespaced by project ID via StorageFactory.

Upstream references (mirrored locally under local/google/*):

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmissing gcp servicesRequest for a GCP service not yet implemented in floci-gcpmonitoringCloud Monitoring

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions