小编Per*_*eus的帖子

打开查询日志文件时出错” file=/prometheus/queries.active err="open /prometheus/queries.active: 权限被拒绝

尝试使用非 root 用户运行 prometheus,并尝试了https://github.com/prometheus/prometheus/issues/5976中的许多建议后,它对我不起作用,我得到:

level=error ts=xxxxxxxx caller=query_logger.go:87 component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"
level=error ts=xxxxxxx caller=query_logger.go:87 component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"
    
panic: Unable to create mmap-ed active query log
    panic: Unable to create mmap-ed active query log
Run Code Online (Sandbox Code Playgroud)

下面是我的 Dockerfile:

FROM <xxxx>

ARG PROMETHEUS_VERSION=2.17.2

# Dependencies
RUN apk add --update --no-cache \
    ruby=~2 \
    curl=~7

# Download prometheus
RUN curl -k -LSs --output /tmp/prometheus.tar.gz \
    https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz && \ …
Run Code Online (Sandbox Code Playgroud)

prometheus

7
推荐指数
0
解决办法
2万
查看次数

接受函数和列表并返回布尔值的函数

我是Haskell和函数式编程的新手.我正在尝试执行以下任务:

创建一个接受函数和列表的函数,如果函数对列表中的至少一个项返回true,则返回true,否则返回false.应该多态地工作.

我已经搜索了许多方法,包括Prelude和any函数

any :: Foldable t => (a -> Bool) -> t a -> Bool
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力实施它们.这就是我所拥有的:

list = [2,3,45,17,78]

checkMatch :: Int -> Bool 
checkMatch x 
    | x `elem` list = True
    | otherwise = False

main = do
    print (checkMatch 45)
Run Code Online (Sandbox Code Playgroud)

有关如何使用Prelude或任何函数执行此任务的任何帮助.不要只是提供答案,请解释程序.问候.

haskell functional-programming function

3
推荐指数
1
解决办法
752
查看次数

使用 zip() 替换 Python 字符串字母

我正在经历一些 Python 挑战,这个特别的挑战一直困扰着我,并认为值得解释一下。它写道:

让函数 LetterChanges(str) 获取传递的 str 参数并使用以下算法对其进行修改。用字母表中紧随其后的字母替换字符串中的每个字母(即,c 变为 d,z 变为 a)。然后将这个新字符串 (a, e, i, o, u) 中的每个元音大写,最后返回这个修改后的字符串。

例子:

Input: "fun times!"
Output: gvO Ujnft!
Run Code Online (Sandbox Code Playgroud)

编码:

def LetterChanges(str):
  letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW"
  changes = "bcdEfghIjklmnOpqrstUvwxyzABCDEFGHIJKLMNOPQRSTUVWZ"
  mapping = { k:v for (k,v) in zip(str+letters,str+changes) }
  return "".join([ mapping[c] for c in str ])
Run Code Online (Sandbox Code Playgroud)

我知道它需要两个字符串、字母和更改。它使用 zip() 函数接受迭代器并“压缩”它们,形成字典形式的迭代器。k:v for (k,v)这是一个字典理解。

我的疑问是:

究竟发生了什么str+letters,str+changes以及为什么必须这样做?

[ mapping[c] for c in str ] 为什么通过这样做,我们完成了用其值替换每个键或在挑战描述中说:“用字母表中紧随其后的字母替换字符串中的每个字母”

python python-3.x

0
推荐指数
1
解决办法
286
查看次数