use Google\Cloud\Monitoring\V3\MetricServiceClient;
use Google\Api\LabelDescriptor;
use Google\Api\MetricDescriptor;
/**
* Create a new metric in Stackdriver Monitoring.
* Example:
* ```
* create_metric($projectId);
* ```
*
* @param string $projectId Your project ID
*/
function create_metric($projectId)
{
$metrics = new MetricServiceClient([
'projectId' => $projectId,
]);
$projectName = $metrics->projectName($projectId);
$descriptor = new MetricDescriptor();
$descriptor->setDescription('Daily sales records from all branch stores.');
$descriptor->setDisplayName('Daily Sales');
$descriptor->setType('custom.googleapis.com/stores/daily_sales');
$descriptor->setMetricKind(MetricDescriptor\MetricKind::GAUGE);
$descriptor->setValueType(MetricDescriptor\ValueType::DOUBLE);
$descriptor->setUnit('{USD}');
$label = new LabelDescriptor();
$label->setKey('store_id');
$label->setValueType(LabelDescriptor\ValueType::STRING);
$label->setDescription('The ID of the store.');
$labels = [$label];
$descriptor->setLabels($labels);
$descriptor = $metrics->createMetricDescriptor($projectName, $descriptor);
printf('Created a metric: ' . $descriptor->getName() . PHP_EOL);
}
# Your Google Cloud Platform project ID
# project_id = "YOUR_PROJECT_ID"
# Example metric type
# metric_type = "custom.googleapis.com/my_metric"
client = Google::Cloud::Monitoring.metric_service
project_name = client.project_path project: project_id
descriptor = Google::Api::MetricDescriptor.new(
type: metric_type,
metric_kind: Google::Api::MetricDescriptor::MetricKind::GAUGE,
value_type: Google::Api::MetricDescriptor::ValueType::DOUBLE,
description: "This is a simple example of a custom metric."
)
result = client.create_metric_descriptor name: project_name,
metric_descriptor: descriptor
p "Created #{result.name}"
p result