我已经仔细阅读了Prometheus文档,但是对我来说仍然不清楚,所以我在这里是对我的理解的确认。
(请注意,为了尽可能简单的示例,我在废品间隔时间范围中使用了1秒-即使实际上不可能这样做)
尽管我们每秒都废品一个计数器并且该计数器的值为30。为此,我们有以下时间序列:
second counter_value increase calculated by hand(call it ICH from now)
1 1 1
2 3 2
3 6 3
4 7 1
5 10 3
6 14 4
7 17 3
8 21 4
9 25 4
10 30 5
Run Code Online (Sandbox Code Playgroud)
我们要对该数据集运行一些查询。
1.rate()
官方文档指出:
“ rate(v范围向量):计算范围向量中时间序列的每秒平均增长率。”
用外行术语来说,这意味着我们将获得每秒的增量,而给定秒的值将是给定范围内的平均增量?
这是我的意思:
rate(counter [1s]):将与ICH匹配,因为平均值将仅根据一个值计算。
rate(counter [2s]):将从2秒的增量中获取平均值,并将其分配到秒数中。
因此,在前2秒中,我们获得了总计3的增量,这意味着平均值为1.5 / sec。最后结果:
second result
1 1,5
2 1,5
3 2
4 2
5 3,5
6 3,5
7 3,5
8 3,5
9 …Run Code Online (Sandbox Code Playgroud) 我对这两种技术完全陌生(顺便说一句,我知道 docker 和 kubernetes)。
没有找到太多关于这个比较主题的网络。我已经读到 Openshift 被更多公司使用,但是安装、价格昂贵和升级数据丢失的噩梦可能会发生。但没有别的。
使用哪个用于 kubernete 集群编排的决定因素应该是什么?
是否可以以某种方式在 Testcontainers 中仅运行特定服务DockerComposeContainer?
按照官方文档的例子,我们可以只启动Redis吗?对我来说,所有服务始终启动(并且我是否使用该withExposedService方法并不重要)。
我的意思是这样的方法:
new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
.composeUpService("redis_1")
Run Code Online (Sandbox Code Playgroud) 当在 url 中添加 msofficeuri 前缀时,基本身份验证不再起作用,并且应用程序会要求输入用户名和密码。
例子:
将凭据附加到 url 效果非常好:
https://user:pass@someurl.com/webdav/somefile.docx
Run Code Online (Sandbox Code Playgroud)
但是一旦我使用 msword urischeme,MsWord 就会一直要求输入密码:
ms-word:ofe|u|https://user:pass@someurl.com/webdav/somefile.docx
Run Code Online (Sandbox Code Playgroud)
官方文档没有多大帮助,甚至没有提到身份验证。
我想要实现的只是不应该提示用户输入登录凭据。
这是一个似乎仍未解决的常见问题:
ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
Run Code Online (Sandbox Code Playgroud)
我正在尝试在 RKE 设置的集群上运行它。我开始以开箱即用的方式使用它,意味着仅将它用作依赖项:
dependencies:
- name: elasticsearch
version: 7.6.2
repository: https://helm.elastic.co
Run Code Online (Sandbox Code Playgroud)
它马上就失败了。
我知道并关注了相应的 github 问题,例如:
https://github.com/elastic/helm-charts/issues/429
https://github.com/elastic/helm-charts/issues/137
https:// github.com/elastic/helm-charts/issues/388
https://github.com/elastic/helm-charts/issues/258
我还尝试在 'initresources' 中手动对其进行 cmod-ing,我玩过 fsgroup,并且我还尝试使用 Rancher Local Path Provisioner(在问题 429 中提到)。
根本没有成功,每次都会出现同样的异常。
任何想法?
我现在正在尝试使用 KeyManager 和 TrustManager 的 SSL 配置,除了 HostNameVerifier 部分外,我觉得一切都很清楚。
我已阅读以下内容:
https : //docs.oracle.com/javase/7/docs/api/javax/net/ssl/HostnameVerifier.html
https://lightbend.github.io/ssl-config/HostnameVerification.html
所以基本上它在请求的 URL 和证书中的 URL 不匹配时生效。
处理这个问题的最佳做法是什么?
new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
// some code
}
};
Run Code Online (Sandbox Code Playgroud)
从安全性(如中间人攻击)的角度来看,我认为它必须一直返回 false。但在这种情况下,这整个事情的目的是什么?
然而,大部分时间在互联网上冲浪时,我都会遇到返回原始“真实”的解决方案(没有对参数进行任何工作)。
所以我什么时候、为什么以及如何使用它让我感到困惑。
你能详细说明一下吗?
用例:
从事件的 EventListenerProvider 内部,我想对我们的 keycloak 安全服务之一进行经过身份验证的 REST 调用。为此我需要一个令牌。
首先我只是测试打印令牌以检查是否成功。
public void onEvent(final Event event) {
Keycloak k = Keycloak.getInstance("http://localhost:8080/auth", "myrealm", "myemail@gmail.com", "password", "myclient");
AccessTokenResponse t = k.tokenManager().getAccessToken();
logger.info(t.getSessionState());
logger.info(t.getToken());
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,session_state 和 token 都是 NULL。
所有数据都是正确的,网址、领域等。否则我们就会知道这一点。Keycloak 不记录任何内容,只是默默地返回 null。
最重要的是,我可以从其他任何地方使用上面的代码并且它可以工作!我可以从普通的 java main() 方法中使用它并且仍然有效。通过邮递员手动获取令牌也可以。
Keycloak Provider 有什么问题?如何获取特定用户的访问令牌?
我有一个基本文件 .gitlab-ci.yml:
include:
- project: 'my-group/my-project'
file: 'test1.yml'
Run Code Online (Sandbox Code Playgroud)
测试1.yml:
stages:
-test_stage1
test_stage1:
stage: test_stage1
script: //some script
Run Code Online (Sandbox Code Playgroud)
它工作正常,test_stage1 运行成功。
现在,如果我还想包含其他文件:
include:
- project: 'my-group/my-project'
file: 'test1.yml'
- project: 'my-group/my-project'
file: 'test2.yml'
Run Code Online (Sandbox Code Playgroud)
测试2.yml:
stages:
-test_stage2
test_stage2:
stage: test_stage2
script: //some script
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
此 GitLab CI 配置无效:test_stage 作业:stage 参数应为 test_stage2
所以我必须明确添加阶段:
include:
- project: 'my-group/my-project'
file: 'test1.yml'
- project: 'my-group/my-project'
file: 'test2.yml'
stages:
-test_stage1
-test_stage2
Run Code Online (Sandbox Code Playgroud)
它有效。
这是为什么?
我是否能够以某种方式仅包含多个文件并完成所有阶段而不声明它们?
我们可以通过这种方式访问索引:
{{- range $i, $s := (some list) }}
{{$i}}
{{-end }}
output:
0
1
..etc
Run Code Online (Sandbox Code Playgroud)
但是,当列表是字符串拆分的结果时,索引将以下划线作为前缀
{{- range $i, $s := (split "X" "aaXbbXcc") }}
{{$i}}
{{-end }}
output:
_0
_1
..etc
Run Code Online (Sandbox Code Playgroud)
为什么?
我刚刚开始尝试 Helm kubernetes 包管理器。但图表与模板主题对我来说似乎有点令人困惑。
据我所知,通过模板我将创建 kubernetes yaml,它将创建对象并安装它们。然而,图表也是如此,但后者是对 yaml 的抽象。./Charts 包含独立图表,而 ./templates 仅对基本图表有效。所以我知道这一点。但是我什么时候应该包含其他图表或只是创建一个模板?
通过网络寻找不同类型的图表,我仍然不知道该使用哪个。
假设我有一个名为 MyApp 的项目,其中有一个名为 MyServer 的组件,它将与 MySql 进行通信。
所以我创建了一个图表并将 MyServer 作为模板放入其中:
./MyApp/templates/MyServer.yaml
我应该如何使用 MySql?我在不同的项目中看到了两种解决方案,其中一个只是创建了另一个模板:
./MyApp/templates/MySQL.yaml
在其他项目上,我从图表存储库中看到了 MySql 的图表:
./MyApp/charts/mysql-version.tgz
最重要的是,我看到了一个大数据项目(hdfs、kafka、zookeeper、ELK、 oracle db..etc),一个组件作为图表包含在 ./charts 中,其他组件作为模板创建在 ./templates 中。
图表和模板之间的整个决定对我来说似乎是随机且令人困惑的。
您能解释一下什么时候使用哪个吗?
我正在读一本书,它说通过遍历的正常删除是O(n).好吧,这很容易.但后来它说,如果你只是将数据从下一个节点复制到我们的节点,它将使它成为O(1).
在Stackoverflow上我读了另一个解释,但我仍然不明白.我们还不必定位节点吗?
以下是节点,存储的数据位于括号中:
N("cop")->N("cat")->N("dog")->N("snake")->N("soldier")->N("camel")->N("ghost")->N("rock")
Run Code Online (Sandbox Code Playgroud)
如何在O(1)中完成"士兵"删除节点(或从下一个节点移动数据)?怎么可能只指向它并说它是士兵节点?