Custom metrics exporter source code

Source code for custom Cloud Monitoring exporter.

Code sample


func exportMetric(stackdriverService *monitoring.Service, metricName string,
	metricValue int64, metricLabels map[string]string, monitoredResource string, resourceLabels map[string]string) error {
	dataPoint := &monitoring.Point{
		Interval: &monitoring.TimeInterval{
			EndTime: time.Now().Format(time.RFC3339),
		Value: &monitoring.TypedValue{
			Int64Value: &metricValue,
	// Write time series data.
	request := &monitoring.CreateTimeSeriesRequest{
		TimeSeries: []*monitoring.TimeSeries{
				Metric: &monitoring.Metric{
					Type:   "" + metricName,
					Labels: metricLabels,
				Resource: &monitoring.MonitoredResource{
					Type:   monitoredResource,
					Labels: resourceLabels,
				Points: []*monitoring.Point{
	projectName := fmt.Sprintf("projects/%s", resourceLabels["project_id"])
	_, err := stackdriverService.Projects.TimeSeries.Create(projectName, request).Do()
	return err

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser