2222import static com .google .api .MetricDescriptor .ValueType .DISTRIBUTION ;
2323import static com .google .api .MetricDescriptor .ValueType .DOUBLE ;
2424import static com .google .api .MetricDescriptor .ValueType .INT64 ;
25+
26+ import com .google .monitoring .v3 .DroppedLabels ;
27+ import com .google .monitoring .v3 .SpanContext ;
28+ import com .google .protobuf .Any ;
29+ import com .google .protobuf .Timestamp ;
2530import static com .google .cloud .spanner .BuiltInMetricsConstant .GAX_METER_NAME ;
2631import static com .google .cloud .spanner .BuiltInMetricsConstant .GRPC_METER_NAME ;
2732import static com .google .cloud .spanner .BuiltInMetricsConstant .PROJECT_ID_KEY ;
@@ -103,8 +108,7 @@ static List<TimeSeries> convertToSpannerTimeSeries(
103108 metricData .getData ().getPoints ().stream ()
104109 .map (
105110 pointData ->
106- convertPointToSpannerTimeSeries (
107- metricData , pointData , monitoredResourceBuilder , projectId ))
111+ convertPointToSpannerTimeSeries (metricData , pointData , monitoredResourceBuilder ))
108112 .forEach (allTimeSeries ::add );
109113 }
110114 return allTimeSeries ;
@@ -113,8 +117,7 @@ static List<TimeSeries> convertToSpannerTimeSeries(
113117 private static TimeSeries convertPointToSpannerTimeSeries (
114118 MetricData metricData ,
115119 PointData pointData ,
116- MonitoredResource .Builder monitoredResourceBuilder ,
117- String projectId ) {
120+ MonitoredResource .Builder monitoredResourceBuilder ) {
118121 TimeSeries .Builder builder =
119122 TimeSeries .newBuilder ()
120123 .setMetricKind (convertMetricKind (metricData ))
@@ -210,8 +213,7 @@ private static Point createPoint(
210213 return builder
211214 .setValue (
212215 TypedValue .newBuilder ()
213- .setDistributionValue (
214- convertHistogramData ((HistogramPointData ) pointData , projectId ))
216+ .setDistributionValue (convertHistogramData ((HistogramPointData ) pointData ))
215217 .build ())
216218 .build ();
217219 case DOUBLE_GAUGE :
@@ -241,49 +243,6 @@ private static Distribution convertHistogramData(HistogramPointData pointData, S
241243 BucketOptions .newBuilder ()
242244 .setExplicitBuckets (Explicit .newBuilder ().addAllBounds (pointData .getBoundaries ())))
243245 .addAllBucketCounts (pointData .getCounts ())
244- .addAllExemplars (
245- pointData .getExemplars ().stream ()
246- .map (e -> mapExemplar (e , projectId ))
247- .collect (Collectors .toList ()))
248- .build ();
249- }
250-
251- private static Distribution .Exemplar mapExemplar (ExemplarData exemplar , String projectId ) {
252- double value = 0 ;
253- if (exemplar instanceof DoubleExemplarData ) {
254- value = ((DoubleExemplarData ) exemplar ).getValue ();
255- } else if (exemplar instanceof LongExemplarData ) {
256- value = ((LongExemplarData ) exemplar ).getValue ();
257- }
258-
259- Distribution .Exemplar .Builder exemplarBuilder =
260- Distribution .Exemplar .newBuilder ()
261- .setValue (value )
262- .setTimestamp (mapTimestamp (exemplar .getEpochNanos ()));
263- if (exemplar .getSpanContext ().isValid ()) {
264- exemplarBuilder .addAttachments (
265- Any .pack (
266- SpanContext .newBuilder ()
267- .setSpanName (
268- makeSpanName (
269- projectId ,
270- exemplar .getSpanContext ().getTraceId (),
271- exemplar .getSpanContext ().getSpanId ()))
272- .build ()));
273- }
274- if (!exemplar .getFilteredAttributes ().isEmpty ()) {
275- exemplarBuilder .addAttachments (
276- Any .pack (mapFilteredAttributes (exemplar .getFilteredAttributes ())));
277- }
278- return exemplarBuilder .build ();
279- }
280-
281- static final long NANO_PER_SECOND = (long ) 1e9 ;
282-
283- private static Timestamp mapTimestamp (long epochNanos ) {
284- return Timestamp .newBuilder ()
285- .setSeconds (epochNanos / NANO_PER_SECOND )
286- .setNanos ((int ) (epochNanos % NANO_PER_SECOND ))
287246 .build ();
288247 }
289248
0 commit comments