Prometheus 发送 HTTP 请求来获取监控值。我的自定义导出支持各种客户端(以监视系统状态)。有一个通用的 REST API 可以获取监视器列表:
/api/v1/monitor/find
Run Code Online (Sandbox Code Playgroud)
输出结果取决于 header 中的 Accept 属性。默认接受值为 application/json。
我在 API 中添加了新的 mime 类型以支持 prometheus(例如 application/prometheus)。
但是,如何配置 Prometheus 添加自定义标头(接受:application/prometheus)?
我在 PHPUnit 中有几个测试单元,但 PHPUnit 与 php8 不兼容。我正在寻找一种在 PHP8 上运行旧测试的方法。PHPUnit 是否有任何包装器可以与 PHP8 一起使用?
顺便说一句,这是 Composer 安装时出现的错误:
- phpunit/phpunit 9.1.1 requires php ^7.3 -> your PHP version (8.0.1) does not satisfy that requirement.
Run Code Online (Sandbox Code Playgroud)
它可以通过从 PHPUnit 编写器文件中删除该要求来工作。
我有一个属性如下:
#[Attribute]
class State{
public function __constractor(
public string $name
){}
}
Run Code Online (Sandbox Code Playgroud)
我想将多个状态添加到我的类中,如下所示:
#[
State('a'),
State('b')
]
class StateMachine{}
Run Code Online (Sandbox Code Playgroud)
一切都很好,我可以访问属性列表,如下所示:
$attrs = $classReflection->getAttributes(State::class);
Run Code Online (Sandbox Code Playgroud)
但问题是,每当我尝试即时其中一个时,都会引发错误:
$instance = $attrs[0]->newInstance();
Run Code Online (Sandbox Code Playgroud)
错误是:
Error: Attribute "State" must not be repeated
Run Code Online (Sandbox Code Playgroud)
任何想法?
假设有一个固定行数的数据框,例如
a <- as.data.frame(c(1:7))
Run Code Online (Sandbox Code Playgroud)
还有另一个行数较少(或较多)的向量:
b <- c(1:4)
Run Code Online (Sandbox Code Playgroud)
那么就不可能将 b 作为新列添加到 a 中:
a <- cbind(a, b)
Run Code Online (Sandbox Code Playgroud)
这是输出:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 7, 4
Run Code Online (Sandbox Code Playgroud)
预期结果如下:
1 1 1
2 2 2
3 3 3
4 4 4
5 5 NA
6 6 NA
7 7 NA
Run Code Online (Sandbox Code Playgroud) 我想序列和反序列日期如下:
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formater.setTimeZone(TimeZone.getTimeZone("UTC"));
// Data is
Date date = new Date();
// Serial
String sdate = formater.format(date);
// Deserial
Date newDate = formater.parse(sdate);
// Check
assertEquals(newDate, date);
Run Code Online (Sandbox Code Playgroud)
但是,结果(newDate)不等于原始日期?!有什么不对吗?