This repository has been archived by the owner on Oct 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 79
stats, metrics: deduplicate TimeSeries before making CreateTimeSeriesRequest-s #73
Comments
odeke-em
changed the title
metrics: deduplicate TimeSeries before making CreateTimeSeriesRequest-s
stats, metrics: deduplicate TimeSeries before making CreateTimeSeriesRequest-s
Jan 19, 2019
I've verified that this problem has plagued the stats exporter since day 1. PR coming up shortly. |
odeke-em
added a commit
that referenced
this issue
Jan 19, 2019
Since existence, the stats exporter was sending Stackdriver Metrics only split up by chunks of maxUploadSize of 200, but Metric-s with the exact same Type were still uploaded in the same CreateTimeSeriesRequest which would cause: err: rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: Field timeSeries[?] had an invalid value: Duplicate TimeSeries encountered. Only one point can be written per TimeSeries per request.: timeSeries[?] and the previous remedy just relied on a synchronization of SetReportingPeriod of 60+s which would aggregate stats/view.Data. This change now splits up such Metrics so even if uploads are made in less than 60s, CreateTimeSeriesRequest-s will be uniquely uploaded and won't cause Stackdriver's backend to trip up. Fixes #73
odeke-em
added a commit
that referenced
this issue
Jan 19, 2019
Since existence, the stats exporter was sending Stackdriver Metrics only split up by chunks of maxUploadSize of 200, but Metric-s with the exact same Type were still uploaded in the same CreateTimeSeriesRequest which would cause: err: rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: Field timeSeries[?] had an invalid value: Duplicate TimeSeries encountered. Only one point can be written per TimeSeries per request.: timeSeries[?] and the previous remedy just relied on a synchronization of SetReportingPeriod of 60+s which would aggregate stats/view.Data. This change now splits up such Metrics so even if uploads are made in less than 60s, CreateTimeSeriesRequest-s will be uniquely uploaded and won't cause Stackdriver's backend to trip up. Fixes #73
odeke-em
added a commit
that referenced
this issue
Jan 20, 2019
Since existence, the stats exporter was sending Stackdriver Metrics only split up by chunks of maxUploadSize of 200, but Metric-s with the exact same Type were still uploaded in the same CreateTimeSeriesRequest which would cause: err: rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: Field timeSeries[?] had an invalid value: Duplicate TimeSeries encountered. Only one point can be written per TimeSeries per request.: timeSeries[?] and the previous remedy just relied on a synchronization of SetReportingPeriod of 60+s which would aggregate stats/view.Data. This change now splits up such Metrics so even if uploads are made in less than 60s, CreateTimeSeriesRequest-s will be uniquely uploaded and won't cause Stackdriver's backend to trip up. Fixes #73
odeke-em
added a commit
that referenced
this issue
Jan 20, 2019
Since existence, the stats exporter was sending Stackdriver Metrics only split up by chunks of maxUploadSize of 200, but Metric-s with the exact same Type were still uploaded in the same CreateTimeSeriesRequest which would cause: err: rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: Field timeSeries[?] had an invalid value: Duplicate TimeSeries encountered. Only one point can be written per TimeSeries per request.: timeSeries[?] and the previous remedy just relied on a synchronization of SetReportingPeriod of 60+s which would aggregate stats/view.Data. This change now splits up such Metrics so even if uploads are made in less than 60s, CreateTimeSeriesRequest-s will be uniquely uploaded and won't cause Stackdriver's backend to trip up. Fixes #73
1 task
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
A bug/inadequecy that I've found while doing a live test with the OpenCensus Agent. If multiple metrics are streamed from multiple sources and more than one at export instance share the same name, we'll have an error from Stackdriver's backend. This is because per CreateTimeSeriesRequest, it expects unique metrics. This problem has plagued even the stats exporter for years and the advice/work-around was setting view.SetReportingPeriod but this just masked the problem, because it gave time for aggregation to occur within an exporting period.
In the case where you have metrics concurrently streamed in, all bets are off for example given this data
we get an error
because we've got both
and
have a metric with Type "custom.googleapis.com/opencensus/oce/dev/latency"
The text was updated successfully, but these errors were encountered: