func BuildCoverageRequest()

in container_images/concourse-metrics/pkg/requests/requests.go [135:171]


func BuildCoverageRequest(input CoverageArgs) (*monitoringpb.CreateTimeSeriesRequest, error) {
	// Provide a default for the endTimestamp if one was not provided.
	var endTimestamp int64
	if input.EndTimestamp == nil {
		endTimestamp = time.Now().UnixNano() / 1000000
	} else {
		endTimestamp = *input.EndTimestamp
	}

	return &monitoringpb.CreateTimeSeriesRequest{
		Name: "projects/" + input.ProjectID,
		TimeSeries: []*monitoringpb.TimeSeries{{
			Metric: &metricpb.Metric{
				Type: "custom.googleapis.com/" + input.MetricPath,
			},
			Resource: &monitoredres.MonitoredResource{
				Type: "generic_task",
				Labels: map[string]string{
					"package_name": input.PackageName,
				},
			},
			Points: []*monitoringpb.Point{{
				Interval: &monitoringpb.TimeInterval{
					EndTime: &timestamp.Timestamp{
						Seconds: endTimestamp / 1000,
					},
				},
				Value: &monitoringpb.TypedValue{
					Value: &monitoringpb.TypedValue_Int64Value{
						// Int64 value here is the coverage (in percent of statements).
						Int64Value: input.CoveragePercent,
					},
				},
			}},
		}},
	}, nil
}