public static object WriteTimeSeriesData(string projectId)
{
// Create client.
MetricServiceClient metricServiceClient = MetricServiceClient.Create();
// Initialize request argument(s).
ProjectName name = new ProjectName(projectId);
// Prepare a data point.
Point dataPoint = new Point();
TypedValue salesTotal = new TypedValue();
salesTotal.DoubleValue = 123.45;
dataPoint.Value = salesTotal;
Timestamp timeStamp = new Timestamp();
timeStamp.Seconds = (long)(DateTime.UtcNow - s_unixEpoch).TotalSeconds;
TimeInterval interval = new TimeInterval();
interval.EndTime = timeStamp;
dataPoint.Interval = interval;
// Prepare custom metric.
Metric metric = new Metric();
metric.Type = "custom.googleapis.com/stores/daily_sales";
metric.Labels.Add("store_id", "Pittsburgh");
// Prepare monitored resource.
MonitoredResource resource = new MonitoredResource();
resource.Type = "global";
resource.Labels.Add("project_id", projectId);
// Create a new time series using inputs.
TimeSeries timeSeriesData = new TimeSeries();
timeSeriesData.Metric = metric;
timeSeriesData.Resource = resource;
timeSeriesData.Points.Add(dataPoint);
// Add newly created time series to list of time series to be written.
IEnumerable<TimeSeries> timeSeries = new List<TimeSeries> { timeSeriesData };
// Write time series data.
metricServiceClient.CreateTimeSeries(name, timeSeries);
Console.WriteLine("Done writing time series data:");
Console.WriteLine(JObject.Parse($"{timeSeriesData}").ToString());
return 0;
}