presto cli 设置history file
0.207 还不支持设置history file,只能是 HOME目录下的.presto_history
Central Repository: com/facebook/presto/presto-cli/0.207 (maven.org)
1 2 3 4 |
private static MemoryHistory getHistory() { return getHistory(new File(getUserHome(), ".presto_history")); } |
较新的版本(如: 0.284 )就可以通过环境变量 PRESTO_HISTORY_FILE 来设置了:
1 2 3 4 5 6 7 8 9 10 11 12 |
private static MemoryHistory getHistory() { String historyFilePath = System.getenv("PRESTO_HISTORY_FILE"); File historyFile; if (isNullOrEmpty(historyFilePath)) { historyFile = new File(getUserHome(), ".presto_history"); } else { historyFile = new File(historyFilePath); } return getHistory(historyFile); } |
查看presto版本号:
1 2 |
$ presto --version Presto CLI 0.207-dirty |
build.gradle学习
MacOS 电池模式下,过几分钟就自动休眠的问题
MacOS 电池模式下,过几分钟就自动休眠,使用键盘或电源键也无法唤醒,合上盖子等几秒钟再打开就可以唤醒了。
解决办法:
new 与 malloc的异同
经典回答
- 都是用来分配内存的
- new 会自动执行构造函数,malloc不会
另一种回答
- new是关键字,给编译器看的,编译器会把new解释成想要的东西
- malloc不是关键字,是应该运行时调用的函数,编译器眼里和其它函数没区别
xcode 15
Xcode升级后,大概释放了7G的磁盘空间,但是还需要安装iOS17.0相关支持,需要7G的磁盘空间;安装失败
点击OK后,重新安装,授权后就可以了
MacOS 升级到 14之后,Xcode必须升级到15才能使用
然后appcode也需要升级:
alertstate的几种状态firing、resolved、pending分别代表什么意思?
在Prometheus中,alertstate字段表示报警的状态,有以下几种可能的取值:
- firing:表示报警处于触发状态。当报警规则的条件满足时,报警状态会变为firing,表示触发了报警。通常情况下,报警会发送给相关的接收器或通知渠道,以便进行处理。
- resolved:表示报警已解决。当报警规则的条件不再满足时,报警状态会变为resolved,表示报警已经解决。这意味着报警规则所监控的指标已经恢复到正常状态,不再需要进一步的处理。
- pending:表示报警处于等待状态。当报警规则的条件满足时,报警状态会从firing变为pending,表示报警处于等待状态。在报警状态从firing到resolved之间的过渡期间,报警可能会处于pending状态,这通常是因为报警规则定义了一些延迟或滞后的条件。
这些报警状态的含义可以根据你的具体配置和需求进行调整和解释。在实际使用中,你可以根据报警状态来判断报警的状态和处理情况,以便及时采取相应的措施。
在Prometheus中,报警状态从firing变为pending通常是由于报警规则定义了一些延迟或滞后的条件。这些条件可以是以下几种情况之一:
- For:指定了报警规则需要持续满足条件的时间。当报警规则的条件首次满足时,报警状态会变为firing。然后,报警规则会继续检查条件是否持续满足一定的时间。只有在这段时间内持续满足条件,报警状态才会保持为firing。如果在持续时间内条件不再满足,报警状态会变为pending。
- Wait:指定了报警规则在触发后等待一段时间。当报警规则的条件首次满足时,报警状态会变为firing。然后,报警规则会等待一段时间,以确保条件仍然满足。如果在等待时间结束后条件仍然满足,报警状态会保持为firing。否则,报警状态会变为pending。
这些条件的具体配置可以在Prometheus的报警规则中进行定义和调整。通过设置适当的延迟或滞后条件,可以避免一些短暂的异常情况导致不必要的报警触发。这样可以减少误报警和降低报警的噪音。具体的配置和调整应根据你的监控需求和实际情况来进行。
以下是一个具有for和wait条件的报警规则配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<span class="hljs-attr">groups:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">example</span> <span class="hljs-attr">rules:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">alert:</span> <span class="hljs-string">HighErrorRate</span> <span class="hljs-attr">expr:</span> <span class="hljs-string">sum(rate(http_requests_total{status="500"}[5m]))</span> <span class="hljs-string">></span> <span class="hljs-number">100</span> <span class="hljs-attr">for:</span> <span class="hljs-string">5m</span> <span class="hljs-attr">labels:</span> <span class="hljs-attr">severity:</span> <span class="hljs-string">critical</span> <span class="hljs-attr">annotations:</span> <span class="hljs-attr">summary:</span> <span class="hljs-string">High</span> <span class="hljs-string">error</span> <span class="hljs-string">rate</span> <span class="hljs-string">detected</span> <span class="hljs-attr">description:</span> <span class="hljs-string">The</span> <span class="hljs-string">error</span> <span class="hljs-string">rate</span> <span class="hljs-string">has</span> <span class="hljs-string">been</span> <span class="hljs-string">above</span> <span class="hljs-number">100</span> <span class="hljs-string">requests</span> <span class="hljs-string">per</span> <span class="hljs-string">second</span> <span class="hljs-string">for</span> <span class="hljs-number">5</span> <span class="hljs-string">minutes.</span> <span class="hljs-attr">wait:</span> <span class="hljs-string">10m</span> |
在这个示例中,我们定义了一个名为”HighErrorRate”的报警规则。该规则的表达式是检测最近5分钟内HTTP请求中状态码为500的速率是否超过100次/秒。如果满足这个条件,报警状态会变为firing。
接下来,我们设置了两个条件:
- for: 5m:这个条件表示报警规则需要持续满足条件的时间为5分钟。如果在5分钟内持续满足条件,报警状态会保持为firing。如果在5分钟内条件不再满足,报警状态会变为pending。
- wait: 10m:这个条件表示在报警状态变为firing后,报警规则会等待10分钟。这段时间用于确保条件仍然满足。如果在等待时间结束后条件仍然满足,报警状态会保持为firing。否则,报警状态会变为pending。
在这个示例中,如果HTTP请求中状态码为500的速率超过100次/秒持续5分钟,并且在之后的10分钟内仍然满足这个条件,那么报警状态会保持为firing。否则,报警状态会变为pending。
这只是一个示例,具体的报警规则配置应根据你的监控需求和实际情况进行调整。你可以根据需要设置不同的for和wait条件来满足特定的报警逻辑和条件。
android – 在 Android Jetpack Compose 中使用 State 时出现 java.lang.IllegalStateException – IT工具网
android studio下载慢问题解决办法
android studio总是更新,还总是慢,怎么办呢?
在 ~/.gradle 下面创建 init.gradle 文件,内容如下,重启android studio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
allprojects{ repositories { def MY_ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/nexus/content/groups/public' def MY_ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/nexus/content/repositories/jcenter' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository {repo.url} replaced by $MY_ALIYUN_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $MY_ALIYUN_JCENTER_URL." remove repo } } } maven { url MY_ALIYUN_REPOSITORY_URL url MY_ALIYUN_JCENTER_URL } } } |
另外,还要注意一下自己有没有配置代理,参考 .gradle/gradle.properties,因为走阿里云就可以不用代理就能很快了。
我的init.gradle 文件在 d:\.gradle 目录下