Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
nightingale
提交
b893483d
N
nightingale
项目概览
DiDi
/
nightingale
8 个月 前同步成功
通知
45
Star
7053
Fork
1161
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nightingale
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
b893483d
编写于
10月 18, 2022
作者:
Y
Yening Qin
提交者:
GitHub
10月 18, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
prom client support add header (#1203)
* prom client support add header
上级
4130a5df
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
33 addition
and
3 deletion
+33
-3
src/webapi/prom/prom.go
src/webapi/prom/prom.go
+32
-2
src/webapi/router/router_prometheus.go
src/webapi/router/router_prometheus.go
+1
-1
未找到文件。
src/webapi/prom/prom.go
浏览文件 @
b893483d
...
...
@@ -7,6 +7,7 @@ import (
"math/rand"
"net"
"net/http"
"sort"
"strings"
"sync"
"time"
...
...
@@ -120,7 +121,8 @@ type DSReply struct {
PrometheusUser
string
`json:"prometheus.user"`
PrometheusPass
string
`json:"prometheus.password"`
}
`json:"prometheus.basic"`
PrometheusTimeout
int64
`json:"prometheus.timeout"`
Headers
map
[
string
]
string
`json:"prometheus.headers"`
PrometheusTimeout
int64
`json:"prometheus.timeout"`
}
`json:"settings,omitempty"`
}
`json:"items"`
}
`json:"data"`
...
...
@@ -192,7 +194,8 @@ func loadClustersFromAPI() {
old
.
Opts
.
BasicAuthUser
!=
item
.
Settings
.
PrometheusBasic
.
PrometheusUser
||
old
.
Opts
.
BasicAuthPass
!=
item
.
Settings
.
PrometheusBasic
.
PrometheusPass
||
old
.
Opts
.
Timeout
!=
item
.
Settings
.
PrometheusTimeout
||
old
.
Opts
.
Prom
!=
item
.
Settings
.
PrometheusAddr
{
old
.
Opts
.
Prom
!=
item
.
Settings
.
PrometheusAddr
||
!
equalHeader
(
old
.
Opts
.
Headers
,
transformHeader
(
item
.
Settings
.
Headers
))
{
opt
:=
config
.
ClusterOptions
{
Name
:
item
.
Name
,
Prom
:
item
.
Settings
.
PrometheusAddr
,
...
...
@@ -201,6 +204,7 @@ func loadClustersFromAPI() {
Timeout
:
item
.
Settings
.
PrometheusTimeout
,
DialTimeout
:
5000
,
MaxIdleConnsPerHost
:
32
,
Headers
:
transformHeader
(
item
.
Settings
.
Headers
),
}
if
strings
.
HasPrefix
(
opt
.
Prom
,
"https"
)
{
...
...
@@ -260,3 +264,29 @@ func newClusterByOption(opt config.ClusterOptions) *ClusterType {
return
cluster
}
func
equalHeader
(
a
,
b
[]
string
)
bool
{
sort
.
Strings
(
a
)
sort
.
Strings
(
b
)
if
len
(
a
)
!=
len
(
b
)
{
return
false
}
for
i
:=
range
a
{
if
a
[
i
]
!=
b
[
i
]
{
return
false
}
}
return
true
}
func
transformHeader
(
header
map
[
string
]
string
)
[]
string
{
var
headers
[]
string
for
k
,
v
:=
range
header
{
headers
=
append
(
headers
,
k
)
headers
=
append
(
headers
,
v
)
}
return
headers
}
src/webapi/router/router_prometheus.go
浏览文件 @
b893483d
...
...
@@ -112,7 +112,7 @@ func prometheusProxy(c *gin.Context) {
headerCount
:=
len
(
cluster
.
Opts
.
Headers
)
if
headerCount
>
0
&&
headerCount
%
2
==
0
{
for
i
:=
0
;
i
<
len
(
cluster
.
Opts
.
Headers
);
i
+=
2
{
req
.
Header
.
Add
(
cluster
.
Opts
.
Headers
[
i
],
cluster
.
Opts
.
Headers
[
i
+
1
])
req
.
Header
.
Set
(
cluster
.
Opts
.
Headers
[
i
],
cluster
.
Opts
.
Headers
[
i
+
1
])
if
cluster
.
Opts
.
Headers
[
i
]
==
"Host"
{
req
.
Host
=
cluster
.
Opts
.
Headers
[
i
+
1
]
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录