// NewProtobufDataPointWithType creates a new datapoint from SignalFx's protobuf definition (backwards compatable with old API) func NewProtobufDataPointWithType(dp *com_signalfx_metrics_protobuf.DataPoint, mType com_signalfx_metrics_protobuf.MetricType) *datapoint.Datapoint { var mt com_signalfx_metrics_protobuf.MetricType if dp.MetricType != nil { mt = dp.GetMetricType() } else { mt = mType } dims := make(map[string]string, len(dp.GetDimensions())+1) if dp.GetSource() != "" { dims["sf_source"] = dp.GetSource() } dpdims := dp.GetDimensions() for _, dpdim := range dpdims { dims[dpdim.GetKey()] = dpdim.GetValue() } return datapoint.New(dp.GetMetric(), dims, NewDatumValue(dp.GetValue()), fromMT(mt), fromTs(dp.GetTimestamp())) }