小编Chr*_*hen的帖子

带有端点身份验证的普罗米修斯黑盒导出器?

我对 Prometheus 还很陌生,不确定如何通过身份验证来 ping 端点。不确定我的问题是否可以通过内置的普罗米修斯配置来解决,让我描述一下我想要实现的流程:

(1) 将带有 {用户名, 密码}的http POST发送到api端点company.com/auth

(2) 应检索不记名令牌类型的 {access_tokens, refresh_token...}

(3) 保存这个access_token并定向到其他页面。仅当 access_token 已存在且正确时,才应 ping 所有其他端点。

(4)身份验证后,它仍然应该以某种频率发送http请求并输出指标,就像blackbox-exporter一样。

基本上,我试图在 Postman 测试中模拟 API 调用序列的相同过程。我已经看到 basic_auth 和 bearer_token 的 blackbox-exporter 的配置,但不确定如何实际设置参数以及如何重定向到其他页面。

在此输入图像描述

(是否应该按照(1)设置basic_auth用户名和密码?token返回到哪里?是否应该将token替换为bearer_token?)

任何关于这方面的指导都会很棒!我对整个过程还很陌生,如果问题太基本或含糊不清,我很抱歉。预先感谢并非常感谢任何帮助!

authentication bearer-token prometheus prometheus-blackbox-exporter

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

React - useEffect 与异步 setState 导致额外的重新渲染

我这里有一个 React 钩子

export const useConfigDetails = (resourceName: string) => {
  const [isLoading, setLoading] = React.useState<boolean>(true);
  const [error, setError] = React.useState<AxiosError>(undefined);
  const [allEnvDetails, setAllEnvDetails] = React.useState<ResourceDetails[]>();


  React.useEffect(() => {
   const configPromises = ['dev', 'stage', 'prod'].map((environment: Environment) =>
    axios.get('someUrlGetEndpoint'));

    Promise.all(configPromises)
      .then((resp: ResourceDetails[]) => setAllEnvDetails(resp))
      .catch((err: AxiosError) => setError(err))
      .finally(() => setLoading(false));
  }, [resourceName]);

  return { allEnvDetails, isLoading };
};
Run Code Online (Sandbox Code Playgroud)

我想要实现的目标 - 每当resourceName发生更改时,它都需要刷新并调用所有不同的环境 ( dev, stage and prod),并返回最新的allEnvDetails。它应该避免其他重新渲染

理想情况下,axios.get对应于 3 个环境的调用应该只有 3个。但是,它被调用了 9 次(每个环境调用 3 …

promise reactjs react-hooks

5
推荐指数
1
解决办法
168
查看次数

pandas dataframe.apply - 将十六进制字符串转换为int数字

我对python和pandas都很新.我想知道如何将数据帧元素从十六进制字符串输入转换为整数,我也遵循以下解决方案:将pandas dataframe列从十六进制字符串转换为int

但是,它仍然无法正常工作.以下是我的代码:

df = pd.read_csv(filename, delim_whitespace = True, header = None, usecols = range(7,23,2))
for i in range(num_frame):
    skipheader = lineNum[header_padding + i*2]
    data = df.iloc[skipheader:skipheader + 164:2]
    data_numeric = data.apply(lambda x: int(x, 16))
    dataframe.append(data)
Run Code Online (Sandbox Code Playgroud)

数据变量如下所示: 数据变量(类型:DataFrame) 也是spyder中的控制台输出:在此处输入图像描述

错误发生在data_numeric = data.apply(lambda x: int(x, 16)) ,错误消息是

TypeError: ("int() can't convert non-string with explicit base", u'occurred at index 7')
Run Code Online (Sandbox Code Playgroud)

我也试过data_numeric = data.apply(pd.to_numeric, errors='coerce') 但是所有的十六进制数都变成了NaN,这不是我想要的.有什么建议?非常感谢提前!

python dataframe pandas

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