我在Influxdb中有一些时间序列,这些时间序列是从Linux /proc
文件系统每10秒收集的 - 例如硬盘上的I / O操作。
这些值根据定义严格增加,我想将它们转换为I / O操作每秒(iops)并在Grafana中显示它们。
这是我到目前为止最接近的:
SELECT difference(last("value")) / 10 FROM "disk_write" [WHERE <stuff>] GROUP BY time(10s)
我无法找到一种方法来在Grafana中使用变量组按时间间隔定义此查询。
问题是,我无法将/ 10
块中的SELECT
替换为/ $interval
(包含10s
),这使得此查询非常慢,如果我显示一个巨大的时间窗口。
如何正确定义?
答案 0 :(得分:2)
您想要使用DERIVATIVE()。
这样的事情:
public function getPeopleVisits($id)
{
$host = "localhost";
$user = "root";
$password = "root";
$database = "myDB";
$connection = mysqli_connect($host, $user, $password);
if(!$connection){
die("Could not connect: " . mysqli_connect_error());}
$connection->select_db($database);
$sql = "SELECT p.id, p.firstname, p.lastname, s.statename, p.food, v.date_visited
FROM Visits v
INNER JOIN People p ON v.p_id = p.id
INNER JOIN States s ON v.s_id = s.id
WHERE v.p_id =" . $id;
$query = mysqli_query ($connection, $sql) or die(mysqli_error($connection));
$row = mysqli_fetch_array($query);
$id = $row["id"];
$firstName = $row["firstname"];
$lastName = $row["lastname"];
$foodName = $row["food"];
$stateName = $row["statename"];
$dateVisit = $row["date_visited"];
$resultArray[] =
[
'id' => $id,
'firstname' => $firstName,
'lastname' => $lastName,
'food' => $foodName,
'statename' => $stateName,
'date_visited' => $dateVisit
];
echo json_encode($resultArray, JSON_PRETTY_PRINT);
}