in cloudprober/grpc_gpc_prober/spanner_probes.php [93:127]
function executeSql($client, &$metrics){
global $_DATABASE;
$createSessionRequest = new Google\Cloud\Spanner\V1\CreateSessionRequest();
$createSessionRequest->setDatabase($_DATABASE);
list($session, $status) = $client->CreateSession($createSessionRequest)->wait();
hardAssertIfStatusOk($status);
hardAssert($session !== null, 'Call completed with a null response');
# Probing ExecuteSql call
$time_start = microtime_float();
$executeSqlRequest = new Google\Cloud\Spanner\V1\ExecuteSqlRequest();
$executeSqlRequest->setSession($session->getName());
$executeSqlRequest->setSql('select * FROM users');
$result_set = $client->ExecuteSql($executeSqlRequest);
$lantency = (microtime_float() - $time_start) * 1000;
$metrics['execute_sql_latency_ms'] = $lantency;
// TODO: Error check result_set
# Probing ExecuteStreamingSql call
$partial_result_set = $client->ExecuteStreamingSql($executeSqlRequest);
$time_start = microtime_float();
$first_result = array_values($partial_result_set->getMetadata())[0];
$lantency = (microtime_float() - $time_start) * 1000;
$metrics['execute_streaming_sql_latency_ms'] = $lantency;
// TODO: Error Check for sreaming sql first result
$deleteSessionRequest = new Google\Cloud\Spanner\V1\DeleteSessionRequest();
$deleteSessionRequest->setName($session->getName());
$client->deleteSession($deleteSessionRequest);
}